Beispiel #1
0
        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);
        }
Beispiel #4
0
        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;
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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>
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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"]);
        }
Beispiel #11
0
        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"]);
        }
Beispiel #12
0
 public LiqPayRequest WithBasicApiParams(LiqPayRequest requestParams)
 {
     requestParams.PublicKey = _publicKey;
     requestParams.Version   = LiqPayConsts.ApiVersion;
     return(requestParams);
 }
Beispiel #13
0
        protected LiqPayRequest WithSandboxParam(LiqPayRequest requestParams)
        {
            requestParams.IsSandbox = IsCnbSandbox;

            return(requestParams);
        }