/// <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); } }
/// <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); }
/// <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)); }
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); } }
/// <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); }