1. 新媒体云服务平台接口中心对接加密方式
1.1. 调用接口中心API必须遵循规则
- 提交方式:采用POST方法提交
- 数据返回:统一采用Json格式
- 数据格式:数据格式为array
- 字符编码:统一采用UTF-8字符编码
- 签名算法: MD5
1.2. 调用接口中心API必须字段
| 字段名 | 说明 |
|---|---|
| appId | 管理员分配给应用的appId |
| timeStamp | 当前时间戳(10位) |
| nonceStr | 随机生成的32位字符串 |
| method | 请求的接口名称(RPC方式调用可不填写) |
| sign | 签名 |
1.3. 安全规范
1.3.1. 签名生成的通用步骤如下
- 设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则
- 参数名ASCII码从小到大排序(字典序);
- 如果参数的值为空不参与签名;
- 参数名区分大小写
- 接口可能增加字段,验证签名时必须支持增加的扩展字段
- 在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
举例:
假设传送的参数如下:
appId: wxd220e335a2258f4f;
timeStamp: 10000100;
method: XXXXX;
nonceStr: 12sadfsdfskwehrwekjfhwefwejkhf;
对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
$stringA=”appId=wxd930ea5d5a258f4f&method=userAuth&nonceStr=12sadfsdfskwehrwekjfhwefwejkhf&timeStamp=10000100”;拼接API密钥,生成sign:
$stringSignTemp=$stringA.”&key=192006250b4c09247ec02edce69f6a2d” $sign = strtoupper(md5($stringSignTemp));
最终得到最终发送的数据(数组):
appId: wxd220e335a2258f4f;
timeStamp: 10000100;
method: XXXXX;
nonceStr: 12sadfsdfskwehrwekjfhwefwejkhf;
sign:{$sign};