// Ignore Spelling: Zarin using Newtonsoft.Json; using RestSharp; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ZarinPal { public static class ZarinPalHelper { public static NewPurchaseResult CreateRequest(string callbackUrl,long amount,string merchantId,string desc) { var client = new RestClient("https://www.zarinpal.com/pg/rest/WebGate/PaymentRequest.json"); var request = new RestRequest("", Method.Post) { RequestFormat = RestSharp.DataFormat.Json, }; request.AddJsonBody(new ZarinPalPaymentRequestModel { Amount = amount, MerchantID = merchantId, Description = desc, CallbackURL = callbackUrl }); var response = client.Execute(request); var paymentStartResult = JsonConvert.DeserializeObject(response.Content); if (paymentStartResult.Status == 100) { return new NewPurchaseResult { Authority = paymentStartResult.Authority, Success = true }; } return new NewPurchaseResult { Success = false }; } public static ConfirmResult Confirm(long amount,string merchantId,string auth) { var client = new RestClient("https://www.zarinpal.com/pg/rest/WebGate/PaymentVerification.json"); var request = new RestRequest("", Method.Post) { RequestFormat = RestSharp.DataFormat.Json, }; request.AddJsonBody(new ZarinPalConfirmModel { Amount = amount, MerchantID = merchantId, Authority = auth, }); var response = client.Execute(request); ZarinPalPaymentResponse paymentStartResult = JsonConvert.DeserializeObject(response.Content); if (paymentStartResult.Status == 100) { return new ConfirmResult { Ref = paymentStartResult.RefID, Successful = true }; } return new ConfirmResult { Successful = false }; } } }