/// <inheritdoc /> public override async Task <IPaymentVerifyResult> VerifyAsync(VerifyContext context, CancellationToken cancellationToken = default) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var callbackResult = ParsianHelper.CreateCallbackResult(context, _httpContextAccessor.HttpContext.Request, _messageOptions.Value); if (!callbackResult.IsSucceed) { return(callbackResult.Result); } var account = await GetAccountAsync(context.Payment).ConfigureAwaitFalse(); var data = ParsianHelper.CreateVerifyData(account, callbackResult); var responseMessage = await _httpClient .PostXmlAsync(ParsianHelper.VerifyServiceUrl, data, cancellationToken) .ConfigureAwaitFalse(); var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); return(ParsianHelper.CreateVerifyResult(response, callbackResult, _messageOptions.Value)); }
public virtual async Task <IPaymentRefundResult> RefundAsync(Payment payment, Money amount, CancellationToken cancellationToken = default) { if (payment == null) { throw new ArgumentNullException(nameof(payment)); } var data = ParsianHelper.CreateRefundData(_options.Value, payment, amount); var responseMessage = await _httpClient .PostXmlAsync(ParsianHelper.RefundServiceUrl, data, cancellationToken) .ConfigureAwaitFalse(); var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); return(ParsianHelper.CreateRefundResult(response, _messageOptions.Value)); }
public virtual async Task <IPaymentRequestResult> RequestAsync(Invoice invoice, CancellationToken cancellationToken = default) { if (invoice == null) { throw new ArgumentNullException(nameof(invoice)); } var data = ParsianHelper.CreateRequestData(_options.Value, invoice); var responseMessage = await _httpClient .PostXmlAsync(ParsianHelper.RequestServiceUrl, data, cancellationToken) .ConfigureAwaitFalse(); var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwaitFalse(); return(ParsianHelper.CreateRequestResult(response, _httpContextAccessor, _messageOptions.Value)); }