public IActionResult Payment(int id) { var product = TestDatabase.GetById(id); var request = new ZarinpalModel.Payment.Request { MerchantId = TestMerchantIdV1, Amount = product.Amount, // V1 in Toman CallbackUrl = $"{Request.Scheme}://{Request.Host}/Home/Callback/{product.Id}", Description = $"Pay for {product.Name} product." }; var response = RestApi.PaymentRequest(request); if (response.Status == 100) { //For debug and test. return(Redirect($"https://sandbox.zarinpal.com/pg/StartPay/{response.Authority}")); //For publish. //return Redirect($"https://www.zarinpal.com/pg/StartPay/{response.Authority}"); } TempData["Message"] = response.Status; return(View("Index")); }
private static readonly string BaseUrl = "https://sandbox.zarinpal.com";//For debug and test. //private static readonly string BaseUrl = "https://www.zarinpal.com";//For publish. public static ZarinpalModel.Payment.Response PaymentRequest(ZarinpalModel.Payment.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/PaymentRequest.json", stringContent).Result; var result = httpResponseMessage.Content.ReadAsStringAsync().Result; return(JsonConvert.DeserializeObject <ZarinpalModel.Payment.Response>(result)); }