订阅方操作指引

添加订阅

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

subscribe02

启用订阅

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

subscribe03

subscribe04

申请事件授权

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

subscribe05

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

subscribe06

查看订阅日志

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

subscribe07

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

查看事件推送内容

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

image-20210329163011341

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

image-20210329163131892

image-20210329163234513

参数说明:

参数名 参数类型 描述
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 :

image-20210329165731217

image-20210329165755306

results matching ""

    No results matching ""