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