public async Task <PaymentRequestResult> PaymentRequestAsync(PaymentRequestConfig requestConfig) { var zp = GetService(); var paymentRequestRequest = GetPaymentRequestRequest(requestConfig); var response = await zp.PaymentRequestAsync(paymentRequestRequest); await zp.CloseAsync(); CheckStatus(response); var authority = response.Body.Authority; var paymentId = await zarinPalPaymentRepository.InsertAsync(requestConfig.Amount, authority); var paymentUrl = paymentUrlBase + authority; var result = new PaymentRequestResult() { PaymentId = paymentId, PaymentURL = paymentUrl }; return(result); }
private PaymentRequestRequest GetPaymentRequestRequest(PaymentRequestConfig requestConfig) { var request = new PaymentRequestRequest() { Body = new PaymentRequestRequestBody() { Amount = requestConfig.Amount, CallbackURL = callbackURL, Description = requestConfig.Name, Email = requestConfig.Email, MerchantID = merchantId, Mobile = requestConfig.PhoneNumber } }; return(request); }