Ejemplo n.º 1
0
        public ActionResult PaymentResult(string status, string token)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(status))
                {
                    ModelState.AddModelError("ServerError", "پاسخی از سمت درگاه دریافت نشد");
                    return(View());
                }

                if (status != "success")
                {
                    ModelState.AddModelError("ServerError", status);
                    return(View());
                }

                if (string.IsNullOrWhiteSpace(token))
                {
                    ModelState.AddModelError("ServerError", "توکن از سمت سرور ارسال نشد");
                    return(View());
                }

                int    amount;
                string invoiceReference = GetReference(token, out amount);

                if (string.IsNullOrWhiteSpace(invoiceReference))
                {
                    ModelState.AddModelError("ServerError", "شماره فاکتور یافت نشد");
                    return(View());
                }

                var verifyRequest = new WalletaVerifyRequestModel(MerchantCode, token, invoiceReference, amount);

                var verifyResult = WalletaPaymentService.VerifyPayment(verifyRequest);

                if (verifyResult == null)
                {
                    ModelState.AddModelError("ServerError", "پاسخ تایید تراکنش از سمت درگاه دریافت نشد");
                    return(View());
                }

                ViewData["VerifyJsonResponse"] = new JavaScriptSerializer().Serialize(verifyResult);
                return(View(verifyResult));
            }
            finally
            {
                RemoveReferece(token);
            }
        }
Ejemplo n.º 2
0
        public WalletaVerifyResponseModel VerifyPayment(WalletaVerifyRequestModel verifyRequest)
        {
            const string methodName = "payment/verify.json";

            string serviceAddress = GetServiceAddress(methodName);

            var    httpClient  = new HttpClient();
            string jsonBody    = JavaScriptSerializer.Serialize(verifyRequest);
            var    jsonContent = new StringContent(jsonBody, Encoding.UTF8, "application/json");


            Logger.Info($"Trace: {LogTraceID.ToString()} | Sending request to {serviceAddress} | Data: {jsonBody}");
            var httpResponse = httpClient.PostAsync(serviceAddress, jsonContent).Result;

            string jsonResponse = ReadJsonBody(httpResponse);

            Logger.Info($"Trace: {LogTraceID.ToString()} | Received response from {serviceAddress} | Data: {jsonResponse}");

            var walletaVerifyResult = JavaScriptSerializer.Deserialize <WalletaVerifyResponseModel>(jsonResponse);

            return(walletaVerifyResult);
        }