Пример #1
0
        /// <summary>
        /// 万通签到
        /// </summary>
        /// <returns></returns>
        public static Boolean WantongSign()
        {
            try
            {
                //签到
                SignParam      param                   = WantongBLL.sign();
                PayAccess      access                  = new PayAccess();
                SignResultInfo signResultInfo          = access.SignAcc(param);
                Dictionary <string, string> signResult = signResultInfo.data;
                if (signResult == null)
                {
                    return(false);
                }
                log.Write("万通签到返回码:" + signResult["39"]);
                SysStateParam.wtSignInfo = "返回码:" + signResult["39"];
                //键盘安装工作秘钥
                string _62 = signResult["62"];


                if (signResult["39"].Trim().Equals("00"))
                {
                    //获取44域中的密文密钥
                    string mackeyExpress = _62.Substring(_62.Length - 40, 40);

                    string pinKeyExpress = _62.Substring(0, 40);

                    bool ret = Sign(1, mackeyExpress, pinKeyExpress);
                    return(ret);
                }
                return(false);
            }
            catch { return(false); }
        }
Пример #2
0
        /// <summary>
        /// 签到
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public SignResultInfo SignAcc(SignParam param)
        {
            SignResultInfo signResultInfo          = null;
            Dictionary <String, String> parameters = new Dictionary <String, String>();

            parameters.Add("tr.message_type", "1");
            parameters.Add("tr.shop_type", param.shop_type);
            parameters.Add("tr.t_id", ConfigurationManager.AppSettings["MechineNo"]);
            parameters.Add("tr.data", param.data);
            string jsonText = HttpHelper.getHttp(SysConfigHelper.readerNode("signName"), parameters, null);

            log.Write("error:签到返回:" + jsonText);
            signResultInfo = JsonConvert.DeserializeObject <SignResultInfo>(jsonText);
            return(signResultInfo);
        }
Пример #3
0
        /// <summary>
        /// 生产签名
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public static string GenerateSignature(SignParam param, string json)
        {
            var signStr = string.Concat(param.AppKey, "access_token", accessToken, "app_key", appKey,
                                        "method", method, "param_json", paramJson, "timestamp", timestamp, "v", version, appSecret);



            // 第三步:使用MD5加密
            var md5   = MD5.Create();
            var bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(signStr));

            // 第四步:把二进制转化为大写的十六进制
            StringBuilder result = new StringBuilder();

            for (int i = 0; i < bytes.Length; i++)
            {
                result.Append(bytes[i].ToString("X2"));
            }
            return(result.ToString());

            return(Sign(content));
        }
Пример #4
0
 public static Boolean LakalaSign()
 {
     try
     {
         SignParam      param                   = LKLProcedure.sign();
         PayAccess      access                  = new PayAccess();
         SignResultInfo signResultInfo          = access.SignAcc(param);
         Dictionary <string, string> signResult = signResultInfo.data;
         if (signResult == null)
         {
             return(false);
         }
         log.Write("拉卡拉签到返回码:" + signResult["39"]);
         SysStateParam.lklSignInfo = "返回码:" + signResult["39"];
         if (signResult["39"].Trim().Equals("00"))
         {
             string _44 = signResult["44"];
             //获取44域中的密文密钥
             string mackeyExpress = _44.Substring(_44.Length - 16, 16);
             string pinKeyExpress = _44.Substring(0, 32);
             LKLProcedure.RebuildBatchNo();//批次号+1
             bool ret = Sign(0, mackeyExpress, pinKeyExpress);
             if (ret)
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
         else
         {
             log.Write("拉卡拉签到失败!");
         }
         return(false);
     }
     catch { return(false); }
 }
Пример #5
0
        /// <summary>
        /// 签到
        /// </summary>
        /// <returns></returns>
        public static SignParam sign()
        {
            //签到
            Dictionary <int, string> data = new Dictionary <int, string>();

            data.Add(3, "000000");
            data.Add(41, SysConfigHelper.readerNode("ClientNo")); //终端代码
            data.Add(42, SysConfigHelper.readerNode("ShopNo"));   //商户代码
            data.Add(63, "01");
            byte[] result = EncryptWT.EncryptData("0800", "6000000000", EncryptWT.encryptLKL(data, null));
            if (result == null || result.Length <= 0)
            {
                return(null);
            }
            SignParam param = new SignParam();

            param.data      = BCDUtil.byteArrToString(result);
            param.shop_type = "1";
            //Console.WriteLine();
            //AnalysisBaseWT lk = new AnalysisBaseWTSign();
            //Dictionary<string, ResultData> rd = lk.analysis(result);
            return(param);
        }