/// <inheritdoc /> public override async Task <IPaymentRefundResult> RefundAsync(VerifyContext context, Money amount, CancellationToken cancellationToken = default) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (amount == null) { throw new ArgumentNullException(nameof(amount)); } var account = await GetAccountAsync(context.Payment).ConfigureAwaitFalse(); var data = PasargadHelper.CreateRefundData(context, amount, account); var responseMessage = await _httpClient.PostFormAsync( PasargadHelper.RefundPaymentPageUrl, data, cancellationToken) .ConfigureAwaitFalse(); var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); return(PasargadHelper.CreateRefundResult(response, _messageOptions.Value)); }
public virtual Task <IPaymentRequestResult> RequestAsync(Invoice invoice, CancellationToken cancellationToken = default) { if (invoice == null) { throw new ArgumentNullException(nameof(invoice)); } return(PasargadHelper.CreateRequestResult(invoice, _httpContextAccessor, _options.Value) .ToInterfaceAsync()); }
/// <inheritdoc /> public override async Task <IPaymentRequestResult> RequestAsync(Invoice invoice, CancellationToken cancellationToken = default) { if (invoice == null) { throw new ArgumentNullException(nameof(invoice)); } var account = await GetAccountAsync(invoice).ConfigureAwaitFalse(); return(PasargadHelper.CreateRequestResult(invoice, _httpContextAccessor, account)); }
/// <inheritdoc /> public override async Task <IPaymentVerifyResult> VerifyAsync(VerifyContext context, CancellationToken cancellationToken = default) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var callbackResult = PasargadHelper.CreateCallbackResult(_httpContextAccessor.HttpContext.Request, _messageOptions.Value); if (!callbackResult.IsSucceed) { return(callbackResult.Result); } var responseMessage = await _httpClient.PostFormAsync( PasargadHelper.CheckPaymentPageUrl, callbackResult.CallbackCheckData, cancellationToken) .ConfigureAwaitFalse(); var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); var account = await GetAccountAsync(context.Payment).ConfigureAwaitFalse(); var checkCallbackResult = PasargadHelper.CreateCheckCallbackResult( response, account, callbackResult, _messageOptions.Value); if (!checkCallbackResult.IsSucceed) { return(checkCallbackResult.Result); } var data = PasargadHelper.CreateVerifyData(context, account, callbackResult); responseMessage = await _httpClient.PostFormAsync( PasargadHelper.VerifyPaymentPageUrl, data, cancellationToken) .ConfigureAwaitFalse(); response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); return(PasargadHelper.CreateVerifyResult(response, callbackResult, _messageOptions.Value)); }
public override bool IsValid(object value) { return(!(value is string privateKey) || PasargadHelper.IsPrivateKeyValid(privateKey)); }