コード例 #1
0
        public IActionResult Callback(int id, string authority, string status)
        {
            var viewModel = new MessageModel();

            if (status == "NOK")
            {
                viewModel.IsError = true;
                viewModel.Text    = "Transaction unsuccessful.";
            }
            else if (status == "OK")
            {
                var product = TestDatabase.GetById(id);
                var request = new ZarinpalModel.PaymentVerification.Request
                {
                    MerchantId = TestMerchantIdV1,
                    Authority  = authority,
                    Amount     = product.Amount
                };

                var response = RestApi.PaymentVerification(request);

                if (response.Status == 100)
                {
                    viewModel.IsError = false;
                    viewModel.Text    = $"Transaction successful. RefId: {response.RefId}";
                }
                else
                {
                    viewModel.IsError = true;
                    viewModel.Text    = $"Transaction unsuccessful. Status: {response.Status}";
                }
            }

            return(RedirectToAction("ShowResult", viewModel));
        }
コード例 #2
0
ファイル: RestApi.cs プロジェクト: vira1368/Zarinpal-Rest-Api
        public static ZarinpalModel.PaymentVerification.Response PaymentVerification(ZarinpalModel.PaymentVerification.Request request)
        {
            HttpClient.DefaultRequestHeaders.Accept.Clear();
            HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpClient.DefaultRequestHeaders.Add("User-Agent", "ZarinPal Rest Api v1");

            var serializeObject = JsonConvert.SerializeObject(request);

            var stringContent = new StringContent(serializeObject, Encoding.UTF8, "application/json");

            var httpResponseMessage = HttpClient.PostAsync($"{BaseUrl}/pg/rest/WebGate/PaymentVerification.json", stringContent).Result;

            var result = httpResponseMessage.Content.ReadAsStringAsync().Result;

            return(JsonConvert.DeserializeObject <ZarinpalModel.PaymentVerification.Response>(result));
        }