using Nop.Core.Domain.Orders; namespace Nop.Services.Payments; /// /// Payment service interface /// public partial interface IPaymentService { /// /// Process a payment /// /// Payment info required for an order processing /// /// A task that represents the asynchronous operation /// The task result contains the process payment result /// Task ProcessPaymentAsync(ProcessPaymentRequest processPaymentRequest); /// /// Post process payment (used by payment gateways that require redirecting to a third-party URL) /// /// Payment info required for an order processing /// A task that represents the asynchronous operation Task PostProcessPaymentAsync(PostProcessPaymentRequest postProcessPaymentRequest); /// /// Gets a value indicating whether customers can complete a payment after order is placed but not completed (for redirection payment methods) /// /// Order /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task CanRePostProcessPaymentAsync(Order order); /// /// Gets an additional handling fee of a payment method /// /// Shopping cart /// Payment method system name /// /// A task that represents the asynchronous operation /// The task result contains the additional handling fee /// Task GetAdditionalHandlingFeeAsync(IList cart, string paymentMethodSystemName); /// /// Gets a value indicating whether capture is supported by payment method /// /// Payment method system name /// /// A task that represents the asynchronous operation /// The task result contains a value indicating whether capture is supported /// Task SupportCaptureAsync(string paymentMethodSystemName); /// /// Captures payment /// /// Capture payment request /// /// A task that represents the asynchronous operation /// The task result contains the capture payment result /// Task CaptureAsync(CapturePaymentRequest capturePaymentRequest); /// /// Gets a value indicating whether partial refund is supported by payment method /// /// Payment method system name /// /// A task that represents the asynchronous operation /// The task result contains a value indicating whether partial refund is supported /// Task SupportPartiallyRefundAsync(string paymentMethodSystemName); /// /// Gets a value indicating whether refund is supported by payment method /// /// Payment method system name /// /// A task that represents the asynchronous operation /// The task result contains a value indicating whether refund is supported /// Task SupportRefundAsync(string paymentMethodSystemName); /// /// Refunds a payment /// /// Request /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task RefundAsync(RefundPaymentRequest refundPaymentRequest); /// /// Gets a value indicating whether void is supported by payment method /// /// Payment method system name /// /// A task that represents the asynchronous operation /// The task result contains a value indicating whether void is supported /// Task SupportVoidAsync(string paymentMethodSystemName); /// /// Voids a payment /// /// Request /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task VoidAsync(VoidPaymentRequest voidPaymentRequest); /// /// Gets a recurring payment type of payment method /// /// Payment method system name /// /// A task that represents the asynchronous operation /// The task result contains a recurring payment type of payment method /// Task GetRecurringPaymentTypeAsync(string paymentMethodSystemName); /// /// Process recurring payment /// /// Payment info required for an order processing /// /// A task that represents the asynchronous operation /// The task result contains the process payment result /// Task ProcessRecurringPaymentAsync(ProcessPaymentRequest processPaymentRequest); /// /// Cancels a recurring payment /// /// Request /// /// A task that represents the asynchronous operation /// The task result contains the result /// Task CancelRecurringPaymentAsync(CancelRecurringPaymentRequest cancelPaymentRequest); /// /// Gets masked credit card number /// /// Credit card number /// Masked credit card number string GetMaskedCreditCardNumber(string creditCardNumber); /// /// Serialize CustomValues of ProcessPaymentRequest /// /// Request /// Serialized CustomValues string SerializeCustomValues(ProcessPaymentRequest request); /// /// Deserialize CustomValues of Order /// /// Order /// Serialized CustomValues CustomValues Dictionary DeserializeCustomValues(Order order); /// /// Generate an order GUID /// /// Process payment request Task GenerateOrderGuidAsync(ProcessPaymentRequest processPaymentRequest); }