예제 #1
0
        public override Task <PaymentResult> ChargeAsync(Payment payment)
        {
            var chargeRequest = new InHandsChargeRequest(payment);

            if (!AcceptsPartialPayments && (payment.ReceivedValue < payment.NeededValue))
            {
                return(Task.FromResult(PaymentResult.Failed()));
            }
            return(chargeRequest.SendAsync());
        }
예제 #2
0
        public IActionResult OnGetCallBack([FromQuery] string authority, [FromQuery] string status,
                                           [FromQuery] long oId)
        {
            var orderAmount          = _orderApplication.GetAmountBy(oId);
            var verificationResponse =
                _zarinPalFactory.CreateVerificationRequest(authority,
                                                           orderAmount.ToString(CultureInfo.InvariantCulture));

            var result = new PaymentResult();

            if (status == "OK" && verificationResponse.Status >= 100)
            {
                var issueTrackingNo = _orderApplication.PaymentSucceeded(oId, verificationResponse.RefID);
                Response.Cookies.Delete("cart-items");
                result = result.Succeeded("پرداخت با موفقیت انجام شد.", issueTrackingNo);
                return(RedirectToPage("/PaymentResult", result));
            }

            result = result.Failed(
                "پرداخت با موفقیت انجام نشد. درصورت کسر وجه از حساب، مبلغ تا 24 ساعت دیگر به حساب شما بازگردانده خواهد شد.");
            return(RedirectToPage("/PaymentResult", result));
        }