Skip to content

授权信息变更回调通知

接口说明

当授权信息发生变更时,系统会向开发者配置的回调地址发送 HTTP POST 请求,通知授权变更情况。

请求参数

参数名称类型必填描述
typestring变更类型,如:created(新增), updated(变更)
site_addressstring站点地址
company_namestring公司名称
contact_namestring联系人姓名
mobilestring手机号码
app_namestring应用名称
auth_codestring授权码
auth_secretstring授权秘钥
app_keystring应用标识
auth_expire_timedatetime授权更新到期时间
timestampint时间戳(秒级)
signaturestring签名值,用于验证消息来源合法性

签名算法

为确保请求来自可信源,防止伪造请求,我们采用 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)

  • 失败:其他任何状态码或超时未响应

日志记录

建议您在接收端打印详细日志以便调试和追踪问题,包括但不限于:

  • 收到的原始请求体

  • 解析出的具体参数

  • 校验签名的结果

  • 最终处理逻辑是否正常完成

基于 MIT 协议发布