/// <summary> /// 功能描述:RUI的参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="key">加密字段</param> /// <returns></returns> public string ProcessingRUI(Dictionary <string, string> parameter, string key) { RulePayBehavior PayBehavior = new RulePayBehavior(); //得到异步通知地址 string async_url = parameter["async_notify_url"].ToString(); parameter["amount"] = (decimal.Parse(parameter["amount"]) * 100).ToString("F0"); //删除异步地址和同步地址 进行签名 parameter.Remove("async_notify_url"); parameter.Remove("notify_url"); //得到一个字符串 string ascdict = PayBehavior.GetParamsStr(parameter); //java 私钥转.net xml string xmlprivateKey = RSAExtensions.ConvertToXmlPrivateKey(key); //私钥加密 string sign = RSAUtil.PrivateKeyEncrypt(xmlprivateKey, ascdict); //添加 同步地址 异步地址 签名 parameter.Add("notify_url", async_url); parameter.Add("async_notify_url", async_url); parameter.Add("sign", Utils.UrlEncode(sign)); string jsontext = PayBehavior.GetParamsStr(parameter); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }
/// <summary> /// 功能描述:亿点的代付参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="key">加密字段</param> /// <returns></returns> public string ProcessingYDSub(Dictionary <string, string> parameter, string key) { RulePayBehavior PayBehavior = new RulePayBehavior(); //得到一个字符串 parameter["transferMoney"] = (decimal.Parse(parameter["transferMoney"]) * 100).ToString("F0"); string[] listkey = new string[] { "version", "merchantNum", "nonce_str", "merMark", "user_ip", "method", "transferId", "transferMoney", "bankCard", "bankllh" }; string ascdict = ""; foreach (string item in listkey) { ascdict += item + "=" + parameter[item] + "&"; } //添加key ascdict = ascdict + "key=" + key; //md5加密 string sign = PayBehavior.EncryptionMd5(ascdict); parameter.Add("sign", sign); string jsontext = PayBehavior.GetParamsStr(parameter); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }
/// <summary> /// 功能描述:亿动的参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="key">加密字段</param> /// <returns></returns> public string ProcessingYD(Dictionary <string, string> parameter, string key) { RulePayBehavior PayBehavior = new RulePayBehavior(); //得到一个字符串 parameter["amount"] = (decimal.Parse(parameter["amount"]) * 100).ToString("F0"); string[] listkey = new string[] { "version", "merchantNum", "nonce_str", "merMark", "client_ip", "payType", "orderNum", "amount", "body" }; string ascdict = ""; foreach (string item in listkey) { ascdict += item + "=" + parameter[item] + "&"; } //添加key ascdict = ascdict + "key=" + key; //md5加密 string sign = PayBehavior.EncryptionMd5(ascdict); parameter.Add("signType", "MD5"); parameter.Add("sign", sign); string jsontext = PayBehavior.GetParamsStr(parameter); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }
/// <summary> /// 功能描述:海付查询参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="encstring">加密字段</param> /// <returns></returns> public string ProcessingHFselect(Dictionary <string, string> parameter, string encstring) { RulePayBehavior PayBehavior = new RulePayBehavior(); //参与签名的字段 string[] listkey = new string[] { "userid" }; //签名的字典表 Dictionary <string, string> singdict = new Dictionary <string, string>(); string ascdict = ""; foreach (string item in listkey) { singdict.Add(item, parameter[item].ToString()); } //排序得到字符 ascdict = PayBehavior.AsciiDesc(singdict); //添加key ascdict = ascdict + "key=" + encstring; //md5加密 string sign = PayBehavior.EncryptionMd5(ascdict, "x2"); parameter.Add("sign", sign); string jsontext = PayBehavior.GetParamsStr(parameter); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }
/// <summary> /// 功能描述:海付的代付参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="key">加密字段</param> /// <returns></returns> public string ProcessingHFSub(Dictionary <string, string> parameter, string key) { RulePayBehavior PayBehavior = new RulePayBehavior(); //参与签名的字段 string[] listkey = new string[] { "userid", "amount", "bankCode", "cardName", "cardNo", "mobile", "customerType", "accountTypeCode", "province", "city", "issueBankName", "notifyUrl" }; //签名的字典表 Dictionary <string, string> singdict = new Dictionary <string, string>(); string ascdict = ""; foreach (string item in listkey) { singdict.Add(item, parameter[item].ToString()); } //排序得到字符 ascdict = PayBehavior.AsciiDesc(singdict); //添加key ascdict = ascdict + "key=" + key; //md5加密 string sign = PayBehavior.EncryptionMd5(ascdict, "x2"); parameter.Add("sign", sign); string jsontext = PayBehavior.GetParamsStr(parameter); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }
/// <summary> /// 功能描述:亿点的查询参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="key">加密字段</param> /// <returns></returns> public string ProcessingYDSelect(Dictionary <string, string> parameter, string key) { RulePayBehavior PayBehavior = new RulePayBehavior(); //得到一个字符串 string[] listkey = new string[] { "method", "transferId", "merchantNum", "nonce_str" }; string ascdict = ""; foreach (string item in listkey) { ascdict += item + "=" + parameter[item] + "&"; } //添加key ascdict = ascdict + "key=" + key; //md5加密 string sign = PayBehavior.EncryptionMd5(ascdict); parameter.Add("sign", sign); string jsontext = PayBehavior.GetParamsStr(parameter); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }
/// <summary> /// 功能描述:汇通参数 /// </summary> /// <param name="parameter">参数</param> /// <param name="key">加密字段</param> /// <param name="type">类型</param> /// <returns></returns> public string ProcessingHT(Dictionary <string, string> parameter, string key, string type) { RulePayBehavior PayBehavior = new RulePayBehavior(); //得到加密方式 string SignMethod = parameter["SignMethod"].ToString(); string Amount = ""; if (type == "0") { Amount = "Amount"; } else { Amount = "Payment_amt"; } //金额乘以100 if (parameter.ContainsKey(Amount)) { parameter[Amount] = (decimal.Parse(parameter[Amount]) * 100).ToString("F0"); } //删除异步地址和同步地址 进行签名 parameter.Remove("SignMethod"); //排序 string paixu = PayBehavior.AsciiDesc(parameter).TrimEnd('&'); //排序后的字符串加上key paixu = paixu + key; //加密字符串 string sign = PayBehavior.EncryptionMd5(paixu, "x2"); //添加 加密方式和sign parameter.Add("SignMethod", SignMethod); parameter.Add("Signature", sign); //对特殊参数先进行Base64编码然后把其中的”+”替换为“%2b” String[] base64Keys = new String[] { "CodeUrl", "ImgUrl", "Token_Id", "PayInfo", "sPayUrl", "PayUrl", "NotifyUrl", "ReturnUrl" }; Dictionary <string, string> keyValuePairs = PayBehavior.stringtobase64(parameter, base64Keys); ////对所有的值进行encode string[] arrKeynew = keyValuePairs.Keys.ToArray(); for (int i = 0; i < arrKeynew.Length; i++) { keyValuePairs[arrKeynew[i].ToString()] = HttpUtility.UrlEncode(keyValuePairs[arrKeynew[i].ToString()], System.Text.Encoding.UTF8); } //string jsontext = PayBehavior.GetParamsStr(keyValuePairs); string jsontext = PayBehavior.GetParamsStr(keyValuePairs); //string jsontext = JsonHelper.SerializeObject(parameter); return(jsontext); }