Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            string text = "100-13579-26&5000&0&1676473&c550eb5d-cad1-4e01-a98e-2dc702e3b630&927138ef-f298-4631-9727-248bcb5dd565&false&14400&card&none&SHOP_TOKEN&SHOP_SEC_KEY";

            // ответ 0DB584FB679B0D9DC2EBBD9D4B2E9191
            //Проверка шифрования

            Console.WriteLine("Расчёт со строки: " + HashText.CkassaMD5(text));

            //проверка всего алгоритма
            //string[] proverka = new string[] {"111aaaa", "222aaaa", "333aaaa", "4444aaaa"};
            string[] proverka = new string[]
            {
                "100-13579-26",
                "5000",
                "0",
                "1676473",
                "c550eb5d-cad1-4e01-a98e-2dc702e3b630",
                "927138ef-f298-4631-9727-248bcb5dd565",
                "false",
                "14400",
                "card",
                "none"
            };
            SignatureGeneration sg = new SignatureGeneration(shopToken: "SHOP_TOKEN", shopSecKey: "SHOP_SEC_KEY");

            Console.WriteLine("Расчёт классом:   " + sg.GetSign(proverka));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Для итогового формирования подписи.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public string GetSign(string[] data)
        {
            string rezult         = "";
            string pullShopTiken  = "";
            string pullShopSecKey = "";

            //string pullShopAndTik = "";

            for (int i = 0; i < data.Length; i++)
            {
                if (!string.IsNullOrEmpty(data[i]))
                {
                    if (data.Length != i + 1)
                    {
                        rezult += data[i] + "&";
                    }
                    else
                    {
                        rezult += data[i];
                    }
                }
            }

            //В ответах, внезапно, не всегда есть ShopToken  и ShopSecKey потому параметр делаем необязательный (см. пример ответов в документации)

            if (!string.IsNullOrEmpty(ShopToken))
            {
                pullShopTiken = "&" + ShopToken;
            }
            if (!string.IsNullOrEmpty(ShopSecKey))
            {
                pullShopSecKey = "&" + ShopSecKey;
            }
            //if (!string.IsNullOrEmpty(ShopSecKey) && !string.IsNullOrEmpty(ShopToken)) pullShopAndTik = "&";
            //string result = rezult + pullShopTiken + pullShopAndTik + pullShopSecKey; что я курил?
            string result = rezult + pullShopTiken + pullShopSecKey;

            return(HashText.CkassaMD5(result));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Получаем специальный MD5
 /// </summary>
 /// <param name="inputHashText">Текст для оработки</param>
 /// <returns></returns>
 public static string CkassaMD5(string inputHashText) => HashText.Md5hash(HashText.Md5hash(inputHashText)).ToUpper();