签名算法
所有发放请求必须在请求头 Authorization 中携带签名。签名字段必须与 Body 完全一致,Body 改了必须重签。timestamp 建议用字符串形式的 Unix 秒级时间戳。
请求头
| Header | 必填 | 说明 |
|---|---|---|
Content-Type |
是 | application/json |
Authorization |
是 | MD5 签名字符串,算法见本页 |
返回参数
| 参数 | 类型 | 说明 |
|---|---|---|
code |
int | 0 成功,-1 失败 |
success |
bool | 接口是否已处理,失败时也可能为 true |
message |
string | success 或 fail |
data |
object / string | 成功时为业务对象,失败时为错误原因 |
data.account |
string | 请求中的收款账号 |
data.voucher_id |
string | 支付宝红包 ID |
data.amount |
number | 实际发放金额(元) |
data.activity_id |
string | 活动 ID |
data.callback_url |
string | 贵方配置的异步通知地址 |
计算步骤
将请求 JSON 所有字段按 key 字典序排序,拼成 key=value,用 & 连接,末尾追加 &token=商户token,再对整串做 MD5(小写 32 位),结果放入请求头 Authorization。
- 1. 将请求 JSON 所有字段按 key 字典序排序。
- 2. 拼成 key=value,用 & 连接。
- 3. 末尾追加 &token=商户token。
- 4. 对整串做 MD5(小写 32 位),写入 Authorization。
拼接示例
下面是一次发放请求的签名原文。Authorization 等于这段文本的 MD5。
原始字段: account=13800138000 activity_id=ACT027ACV04398670 shop_id=demo_app_001 timestamp=1710000000 排序后拼接: account=13800138000&activity_id=ACT027ACV04398670&shop_id=demo_app_001×tamp=1710000000&token=你的token Authorization = md5(上面整串)