# 接口规范 # 一、请求格式 # 二、AppId、AppKey 和 AppSercet - 由双方协定,或由我平台提供 - AppId:商户号 - AppKey:长度为16位 - AppSecret:长度为32位 - 用于 - 卡券、卡密类订单的数据的加密 - 签名时的补充数据 - *AppSercet需考虑定期更换* # 三、请求接口公共参数 ***可选参数在对接时,请联系对接方,非特殊说明情况下,默认不传递*** # 四、请求签名规则 **注意:签名前,需双方协定或由厂商提供AppSecret** sign签名时 1. 去掉空格:剔除参数名和参数值的前后空格,包括\\n和\\r等空值 2. 剔除空值:如果参数没有值,不参与签名 3. **sign不参与签名,其他字段均参与签名** 4. 排序生成待签名串: 1. 所有参数名**按照ascii顺序**进行排序 2. 并且参数名与参数值**通过a=1\&b=2的方式**将所有参数进行组合 3. 生成新的字符串后在字符串后**加上请求的方式** 4. 再**加上AppSecret**后获得待签名字符串 5. 进行加密 1. 默认进行MD5加密 2. 将第三步的待签名字符串进行utf8编码 3. 再进行md5操作后得到字符串 4. 最后转小写后为签名字符串 ```JSON // 假定 AppSercet 为 ac9fa79db418fd2c61d9bd4c60956f2d5db3a6d781d6f91f2e96327c74dfaccd // 假定是下订单的接口 POST // 待签名参数 { // 公共参数 app_id: '15945681 ', timestamp: 1740916504, // 业务参数 charge_account: '18888888888', buy_num: 2, customer_price: 1.21, customer_order_no: 'DD202507010010208888', product_id: '66668888' } // 上述参数的签名字符串(去掉空值、去掉空格;最后加上请求方法和AppSecret) app_id=15945681&buy_num=2&charge_account=18888888888& customer_order_no=DD202507010010208888&customer_price=1.21& product_id=66668888×tamp=1740916504 POSTac9fa79db418fd2c61d9bd4c60956f2d5db3a6d781d6f91f2e96327c74dfaccd // MD5后转小写,签名字符串为: 4087a959f3488ecb13efe6ef58e3bc67 ``` # 五、响应公共信息 **响应签名规则请参考“请求签名规则”** **sign不参与签名,其他字段均参与签名**