订阅方点击【新增订阅】按钮,选择订阅所属应用,填写基本信息:


订阅添加完后需要启用才会收到事件消息,启用操作在订阅管理界面点击【更多】-【启用】完成:


订阅可以接收那些事件的消息,通过【申请事件授权】确定:

选择订阅需要接收那些事件的事件消息:

发布方发布消息后订阅方可以从【订阅详情】-【已授权事件】界面查看【订阅日志】,目前只记录订阅失败日志,成功推送的消息请订阅方自行记录。

对于失败的订阅可以进行重试(注意:目前系统不保持重试记录):

【订阅详情】-【已授权事件】点击事件id可以跳到事件详情界面:

点击【事件消息模版】可以查看发布方推送过来的消息内容模版:


参数说明:
| 参数名 | 参数类型 | 描述 |
|---|---|---|
| event_id | string | 事件唯一标识 |
| event_name | string | 事件名称 |
| event_object | string | 事件对象 |
| event_type | string | 事件类型 |
| app_code | string | 事件所属应用编码 |
| app_name | string | 事件所属应用名称 |
| timestamp | int | 发布时间戳 |
| data | string | 用户业务数据 |
注意:发布方推送过来的数据不一定按照时间顺序推送,可以通过发布时间戳确认消息推送先后顺序。
订阅方可校验请求头中的签名X-Moas-Signature验证来源可信:
// 算法:请求体中增加签名键值对'x-signature-key' = 小写(md5(分配的密钥)) 进行sha1计算并与签名值进行比较
// 以 php 为例
$key = '分配的密钥';
$body = json_decode($requestBody, true);
$body['x-signature-key'] = strtolower(md5($key));
$signValue = sha1(json_encode($body, JSON_UNESCAPED_UNICODE));
$signValue === \Yii::$app->getRequest()->getHeaders()->get('X-Moas-Signature') ? '签名相同' : '签名不同';
其中,密钥$key取订阅方所属应用的 AppSecret :

