internal static async Task <IPaymentRefundResult> CreateRefundResult(HttpResponseMessage responseMessage, FanAvaCallbackResultModel callbackResult, MessagesOptions messagesOptions) { var response = await responseMessage.Content.ReadAsStringAsync(); var refundResult = JsonConvert.DeserializeObject <FanAvaVerifyResultModel>(response); if (!refundResult.IsSucceed) { return(PaymentRefundResult.Failed(messagesOptions.InvalidDataReceivedFromGateway)); } return(new PaymentRefundResult { IsSucceed = refundResult.IsSucceed, Amount = Money.Parse(refundResult.Amount), TrackingNumber = long.Parse(refundResult.InvoiceNumber), Status = PaymentRefundResultStatus.Succeed }); }
internal static FanAvaVerifyRequestModel CreateRefundRequest(InvoiceContext context, FanAvaCallbackResultModel callbackResult, FanAvaCheckResultModel checkResult) { return(new FanAvaVerifyRequestModel { WSContext = callbackResult.CallbackCheckData.WSContext, Token = callbackResult.CallbackCheckData.Token, Amount = checkResult.Amount, InvoiceNumber = callbackResult.InvoiceNumber }); }
internal static async Task <IPaymentRefundResult> CreateRefundResult(HttpResponseMessage responseMessage, FanAvaCallbackResultModel callbackResult, MessagesOptions messagesOptions) { var refundResult = await responseMessage.Content.ReadFromJsonAsync <FanAvaVerifyResultModel>() .ConfigureAwaitFalse(); var isSucceed = refundResult.Result == "erSucceed"; if (!isSucceed) { return(PaymentRefundResult.Failed(messagesOptions.InvalidDataReceivedFromGateway)); } return(new PaymentRefundResult { IsSucceed = isSucceed, Amount = Money.Parse(refundResult.Amount), TrackingNumber = long.Parse(refundResult.InvoiceNumber), Status = PaymentRefundResultStatus.Succeed }); }
internal static async Task <FanAvaCheckResultModel> CreateCheckResult(HttpResponseMessage responseMessage, FanAvaGatewayAccount account, FanAvaCallbackResultModel callbackResult, MessagesOptions messagesOptions) { var response = await responseMessage.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <FanAvaCheckResultModel>(response); bool isSucceed; PaymentVerifyResult verifyResult = null; if (!result.IsSucceed) { isSucceed = false; verifyResult = PaymentVerifyResult.Failed(messagesOptions.InvalidDataReceivedFromGateway); } else { isSucceed = result.Result.Equals("erSucceed", StringComparison.OrdinalIgnoreCase) && result.InvoiceNumber == callbackResult.InvoiceNumber; if (!isSucceed) { verifyResult = PaymentVerifyResult.Failed(messagesOptions.PaymentFailed); } } return(new FanAvaCheckResultModel { IsSucceed = isSucceed, VerifyResult = verifyResult }); }
internal static async Task <FanAvaCheckResultModel> CreateCheckResult(HttpResponseMessage responseMessage, FanAvaGatewayAccount account, FanAvaCallbackResultModel callbackResult, MessagesOptions messagesOptions) { var result = await responseMessage.Content.ReadFromJsonAsync <FanAvaCheckResultModel>(); bool isSucceed; PaymentVerifyResult verifyResult = null; if (!result.IsSucceed) { isSucceed = false; verifyResult = PaymentVerifyResult.Failed(messagesOptions.InvalidDataReceivedFromGateway); } else { isSucceed = result.Result.Equals("erSucceed", StringComparison.OrdinalIgnoreCase) && result.InvoiceNumber == callbackResult.InvoiceNumber; if (!isSucceed) { verifyResult = PaymentVerifyResult.Failed("پرداخت موفقيت آميز نبود و يا توسط خريدار کنسل شده است"); } } return(new FanAvaCheckResultModel() { IsSucceed = isSucceed, VerifyResult = verifyResult }); }