💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 1、签名算法 **[(签名校验工具)](https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=20_1)** 签名生成的通用步骤如下: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。 特别注意以下重要规则: 1. 参数名ASCII码从小到大排序(字典序); 2. 如果参数的值为空不参与签名; 3. 参数名区分大小写; 4. 验证调用返回或主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。 5. 接口可能增加字段,验证签名时必须支持增加的扩展字段 第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。 第三步,对发送的`数组`数据进行`json`化后`post`请求 **示例:** 假设传送的参数如下: ``` phone : 15890100000 amount : 100 panterid : 00002352 order_sn : 6998371888800015881 ``` 第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下: ~~~ stringA="amount=100&order_sn=6998371888800015881&panterid=00002352&phone=15890100000" ~~~ 第二步:拼接API密钥: ``` stringSignTemp=stringA+"&key=9f6a2d" sign=strtoupper(md5(stringSignTemp))="700D4E0883F6321482200011B4777FF2" ``` 最终得到最终发送的数据: ``` {"phone":"15890100000","amount":"100","panterid":"00002352","order_sn":"6998371888800015881","sign":"700D4E0883F6321482200011B4777FF2"} ```