- 🏠 简介
- 🔌 api接口
-
🔧 插件开发
- 介绍
- 插件优势
- 新建插件
- 技术栈
- 插件开发规范
- 插件目录结构
- model 层开发
- service 层开发
- api 接口开发
- menu 菜单开发
-
event 事件钩子开发
- 开发指南
- 常用事件
- SiteInit 站点初始化事件
- AddSiteAfter 站点创建后事件
- MemberRegister 会员注册后事件
- MemberLogin 会员登录后事件
- PayCreate 支付创建事件
- PaySuccess 支付成功事件
- RefundSuccess 退款成功事件
- TransferSuccess 转账成功事件
- BottomNavigation 底部导航事件
- NoticeData 消息模板数据内容事件
- GetQrcodeOfChannel 创建二维码事件
- ExportDataType 导出数据类型事件
- ExportData 导出数据源事件
- GetPosterType 海报类型事件
- GetPosterData 海报数据事件
- ShowCustomer 应用管理加载事件
- GetWechatTransferTradeScene 微信支付转账场景事件
- ThemeColor 主题风格事件
- initWap 手机端初始化加载事件
- dict 数据字典开发
- layout 自定义布局开发
- job 消息队列和计划任务开发
- notice 消息发送开发
- printer 小票打印模板开发
- export 数据导出开发
- diy 自定义组件/页面装修开发
- diy 自定义表单组件开发
- poster 自定义海报开发
- icon 引入图标
- 支付方式开发
- upgrade 插件版本升级
- 打包插件
- 授权信息变更回调通知
- 官网上架
- 📝 二次开发须知
- 👨💻 二次开发指导
-
🎬 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
授权信息变更回调通知

接口说明
当授权信息发生变更时,系统会向开发者配置的回调地址发送 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)
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)
-
失败:其他任何状态码或超时未响应
日志记录
建议您在接收端打印详细日志以便调试和追踪问题,包括但不限于:
-
收到的原始请求体
-
解析出的具体参数
-
校验签名的结果
-
最终处理逻辑是否正常完成