public async Task <LiqPayResponse> RequestAsync(string path, LiqPayRequest requestParams) { var data = PrepareRequestData(requestParams); string response = await LiqPayClientHelper.PostAsync(LiqPayConsts.LiqpayApiUrl + path, data, Proxy); return(JsonConvert.DeserializeObject <LiqPayResponse>(response)); }
public void CheckCnbParams(LiqPayRequest requestParams) { if (requestParams.Amount <= 0) throw new NullReferenceException("incorrect amount"); if (string.IsNullOrEmpty(requestParams.Description)) throw new NullReferenceException("description can't be null"); }
public string CNBForm(LiqPayRequest requestParams) { CheckCnbParams(requestParams); var jsonString = JsonConvert.SerializeObject(WithSandboxParam(WithBasicApiParams(requestParams)), _jsonSettings); var data = jsonString.ToBase64String(); var signature = CreateSignature(data); return RenderHtmlForm(data, requestParams.Language ?? LiqPayConsts.DefaultLanguage, signature); }
public KeyValuePair <string, string> GenerateDataAndSignature(LiqPayRequest requestParams) { CheckCnbParams(requestParams); var jsonString = SerializeToJson(WithSandboxParam(WithBasicApiParams(requestParams))); var data = jsonString.ToBase64String(); var signature = CreateSignature(data); return(new KeyValuePair <string, string>(data, signature)); }
public Dictionary<string, string> PrepareRequestData(LiqPayRequest requestParams) { var jsonString = JsonConvert.SerializeObject(WithBasicApiParams(requestParams), _jsonSettings); string data = jsonString.ToBase64String(); var apiData = new Dictionary<string, string>(); apiData.Add("data", data); apiData.Add("signature", CreateSignature(data)); return apiData; }
public Dictionary <string, string> PrepareRequestData(LiqPayRequest requestParams) { LiqPayRequest withApiParams = WithBasicApiParams(requestParams); string jsonString = SerializeToJson(withApiParams); string data = jsonString.ToBase64String(); var apiData = new Dictionary <string, string>(); apiData.Add("data", data); apiData.Add("signature", CreateSignature(data)); return(apiData); }
private string SerializeToJson(LiqPayRequest requestParams) { var json = JObject.FromObject(requestParams, new JsonSerializer { NullValueHandling = _jsonSettings.NullValueHandling }); foreach (var key in requestParams.OtherParams.Keys) { json.Add(key, requestParams.OtherParams[key]); } var jsonString = json.ToString(); return(jsonString); }
private Dictionary <string, string> CreateDefaultTestRequest() { var invoiceParams = new LiqPayRequest { Version = 3, PublicKey = "i20223994800", Action = LiqPayRequestAction.Pay, Amount = 1, Currency = "UAH", Description = "Test Description", IsSandbox = true }; //return invoiceParams; return(lp.PrepareRequestData(invoiceParams)); //Dictionary<string, string> }
public async Task LiqPay(User u, Rent r) { double price = (r.EndTime - r.StartTime).Value.Hours * 30; price = price == 0 ? 30 : price; var invoiceRequest = new LiqPayRequest { Email = u.Email, Amount = price, Currency = "UAH", OrderId = r.RentId.ToString(), Action = LiqPayRequestAction.InvoiceSend, Language = LiqPayRequestLanguage.RU }; var liqPayClient = new LiqPayClient("sandbox_i33754480935", "sandbox_H2hSOXg3sjkkhpV42jcSVTWvNTiwtjbKvfFYr2n6"); //liqPayClient.IsCnbSandbox = true; var response = await liqPayClient.RequestAsync("request", invoiceRequest); }
public void LiqPayTest_GenerateData() { var invoiceParams = new LiqPayRequest { Email = "*****@*****.**", Amount = 200, Currency = LiqPayCurrency.USD.GetAttributeOfType <EnumMemberAttribute>().Value, OrderId = "order_id_1", Goods = new List <LiqPayRequestGoods> { new LiqPayRequestGoods { Amount = 100, Count = 2, Unit = "un.", Name = "phone" } } }; var generated = lp.PrepareRequestData(invoiceParams); Assert.AreEqual("hrXopoo2eyDAtknnZn3Ez4VEka0=", generated["signature"]); Assert.AreEqual("ew0KICAidmVyc2lvbiI6IDMsDQogICJwdWJsaWNfa2V5IjogInB1YmxpY0tleSIsDQogICJhbW91bnQiOiAyMDAuMCwNCiAgImN1cnJlbmN5IjogIlVTRCIsDQogICJvcmRlcl9pZCI6ICJvcmRlcl9pZF8xIiwNCiAgImVtYWlsIjogImNsaWVudC1lbWFpbEBnbWFpbC5jb20iLA0KICAiZ29vZHMiOiBbDQogICAgew0KICAgICAgImFtb3VudCI6IDEwMC4wLA0KICAgICAgImNvdW50IjogMiwNCiAgICAgICJ1bml0IjogInVuLiIsDQogICAgICAibmFtZSI6ICJwaG9uZSINCiAgICB9DQogIF0NCn0=", generated["data"]); }
public void LiqPayTest_GenerateData() { var invoiceParams = new LiqPayRequest { Email = "*****@*****.**", Amount = 200, Currency = LiqPayCurrency.USD.GetAttributeOfType <EnumMemberAttribute>().Value, OrderId = "order_id_1", Goods = new List <LiqPayRequestGoods> { new LiqPayRequestGoods { Amount = 100, Count = 2, Unit = "un.", Name = "phone" } } }; var generated = lp.PrepareRequestData(invoiceParams); Assert.AreEqual("ep8wax2+ELYPDoW8U9Vg3hG8IYY=", generated["signature"]); Assert.AreEqual("eyJ2ZXJzaW9uIjozLCJwdWJsaWNfa2V5IjoicHVibGljS2V5IiwiYW1vdW50IjoyMDAuMCwiY3VycmVuY3kiOiJVU0QiLCJvcmRlcl9pZCI6Im9yZGVyX2lkXzEiLCJlbWFpbCI6ImNsaWVudC1lbWFpbEBnbWFpbC5jb20iLCJnb29kcyI6W3siYW1vdW50IjoxMDAuMCwiY291bnQiOjIsInVuaXQiOiJ1bi4iLCJuYW1lIjoicGhvbmUifV19", generated["data"]); }
public LiqPayRequest WithBasicApiParams(LiqPayRequest requestParams) { requestParams.PublicKey = _publicKey; requestParams.Version = LiqPayConsts.ApiVersion; return(requestParams); }
protected LiqPayRequest WithSandboxParam(LiqPayRequest requestParams) { requestParams.IsSandbox = IsCnbSandbox; return(requestParams); }