Esempio n. 1
0
        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
            });
        }
Esempio n. 2
0
 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
     });
 }
Esempio n. 3
0
        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
            });
        }
Esempio n. 4
0
        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
            });
        }
Esempio n. 5
0
        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
            });
        }