授权信息变更回调通知

接口说明
当授权信息发生变更时,系统会向开发者配置的回调地址发送 HTTP POST 请求,通知授权变更情况。
请求参数
| 参数名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| type | string | 是 | 变更类型,如:created(新增), updated(变更) |
| site_address | string | 否 | 站点地址 |
| company_name | string | 否 | 公司名称 |
| contact_name | string | 否 | 联系人姓名 |
| mobile | string | 否 | 手机号码 |
| app_name | string | 是 | 应用名称 |
| auth_code | string | 是 | 授权码 |
| auth_secret | string | 是 | 授权秘钥 |
| app_key | string | 是 | 应用标识 |
| auth_expire_time | datetime | 是 | 授权更新到期时间 |
| timestamp | int | 是 | 时间戳(秒级) |
| signature | string | 是 | 签名值,用于验证消息来源合法性 |
签名算法
为确保请求来自可信源,防止伪造请求,我们采用 MD5 对请求参数进行签名
步骤说明
准备数据
将除 signature 外的所有参数放入一个数组中
添加 secret 字段,其值为开发者在平台上设置的 Token
过滤与排序
移除所有值为空(null 或 '')的字段
按照参数名ASCII码升序排列键值对
构造待签字符串
使用 http_build_query() 方法将排序后的参数转换成查询字符串形式
在末尾追加 &secret=xxx (其中 xxx 是开发者令牌 key)
生成签名
对上述字符串执行一次 MD5 加密,得到最终签名值
示例代码(PHP)
php
function generateSignature(array $params, string $secret): string {
// 过滤空值
$filteredParams = array_filter($params, function ($value) {
return !is_null($value) && $value !== '';
});
// 按键排序
ksort($filteredParams);
// 构造待签名字符串
$queryString = http_build_query($filteredParams);
$signString = $queryString . '&secret=' . $secret;
// 返回MD5签名
return md5($signString);
}注意事项
签名校验时需排除 signature 自身
时间戳误差不能超过一定范围(建议 ±5 分钟内)以增强安全性
响应要求
接收到通知后,请返回以下任意一种响应状态码表示处理结果:
成功:HTTP Status Code 介于 200 至 299 之间(例如 200 OK)
失败:其他任何状态码或超时未响应
日志记录
建议您在接收端打印详细日志以便调试和追踪问题,包括但不限于:
收到的原始请求体
解析出的具体参数
校验签名的结果
最终处理逻辑是否正常完成
