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()); }
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)); }