1 package org.petify.funding.service.payment; 2 3 import org.petify.funding.dto.PaymentRequest; 4 import org.petify.funding.dto.PaymentResponse; 5 import org.petify.funding.dto.WebhookEventDto; 6 7 public interface PaymentProviderService { 8 9 PaymentResponse createPayment(PaymentRequest request); 10 11 PaymentResponse getPaymentStatus(String externalId); 12 13 PaymentResponse cancelPayment(String externalId); 14 15 PaymentResponse refundPayment(String externalId, java.math.BigDecimal amount); 16 17 void handleWebhook(String payload, String signature); 18 19 WebhookEventDto parseWebhookEvent(String payload, String signature); 20 21 boolean supportsPaymentMethod(org.petify.funding.model.PaymentMethod method); 22 23 boolean supportsCurrency(org.petify.funding.model.Currency currency); 24 25 java.math.BigDecimal calculateFee(java.math.BigDecimal amount, 26 org.petify.funding.model.Currency currency); 27 }