🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### :-: 签名算法 签名生成的通用步骤如下: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序) 第二步,将ASCII排序后的参数取参数值拼接起来(即`value1value2value3`)拼接成字符串stringA。 特别注意以下重要规则: ◆ 参数名ASCII码从小到大排序(字典序); ◆ 如果参数的值为空不参与签名; ◆ 参数名区分大小写; ◆ 参数名区分大小写; 第三步,在stringA拼接上payKey得到stringSignTemp字符串,并对stringSignTemp进行MD5运算(32位小写),将结果赋值给Sign。 ◆ payKey获取路径:ISPAY商户平台([https://www.ispay.cn]())-->开发者-->应用配置-->商户密钥 举例: 假设传送的参数: ``` payId:10000 payChannel:wxpay Subject:测试标题 Money:100 orderNumber:201702080118441263011007 attachData:test ``` 第一步:按照参数名ASCII字典序排序: ``` Money:100 Subject:测试标题 attachData:test orderNumber:201702080118441263011007 payChannel:wxpay payId:10000 ``` 第二步:将ASCII字典序排序后的参数取参数值依次拼接成字符串: ``` stringA = "100测试标题test201702080118441263011007wxpay10000" ``` 第三步:拼接商户密钥(payKey)并完成MD5加密: ``` stringSignTemp = stringA + payKey //注:payKey为商户密钥在后台获取 Sign = md5(stringSignTemp) ``` 得到最终发送的数据: ``` payId:10000 payChannel:wxpay Subject:测试标题 Money:100 orderNumber:201702080118441263011007 attachData:test Sign:d03a67eda097c2ecfaceb170a8527035 ```