## 接口调用请求说明
#### 请求Url:
http://zk.mschong.com/addons/execute/api-api-addUserScore.html
#### 请求类型:
POST
### 请求参数
| 字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 商户账号appid | appid | 是 | czxj5869 | String(128) | 申请商户号的appid |
| 随机字符串 | nonce\_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
| 签名 | sign | 是 | C380BEC2BFD727A4B6845133519F3AD6 | String(32) | 签名,详见[签名算法] |
| 用户绑定的手机号码 | phone | 是 | 15759116288 | String(11) | 户绑定的手机号码 |
| 请求时间戳 | time | 是 | 1574409580 | int(12) | 时间戳(格林威治时间) |
| 充值的积分额度 | score | 是 | 88 | int(10) | 充值的积分额度 |
**签名算法**
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即`key1=value1&key2=value2…`)拼接成字符串`stringA`。
第二步,在`stringA`最后拼接上`key`得到`stringSignTemp`字符串,并对`stringSignTemp`进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值`signValue`。
**举例:**
假设传送的参数如下:
```
appid: czxj5869
nonce_str: oebnwVHQwo
phone:18065921051
time:157441127
score:88
```
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
```
stringA="appid=czxj5869&nonce_str=oebnwVHQwo&phone=18065921051&score=10&time=157441127";
```
第二步:拼接API密钥:
```
stringSignTemp=stringA+"&key=192006250b4c09247ec02edce69f6a2d"//注:key为商户平台设置的密钥key
sign=MD5(stringSignTemp).toUpperCase()="14CADF2DAB1871B2D23AD901453C12CC"//注:MD5签名方式
sign=hash_hmac("sha256",stringSignTemp,key).toUpperCase()="6A9AE1657590FD6257D693A078E1C3E4BB6BA4DC30B23E0EE2496E54170DACD6"//注:HMAC-SHA256签名方式
```
### 返回参数
| 字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 返回状态码 | code | 是 | 1 | int(10) | 状态码,只有状态码为1的时候成功,其它均为失败,请根据提示进行修改 |
| 返回信息 | msg | 是 | 签名失败 | String(128) | 返回信息,如非空,为错误原因 |
| 返回数据 | data | 是 | 数据 | String(1000) | 成功时返回操作相关的数据 |