第三方平台
接口说明

消息加解密

最后更新于 2021-06-25

文档介绍

在服务商开发运维授权小程序过程中,会收到第三方平台服务器推送的系统消息。出于安全考虑,第三方平台服务器会向第三方应用发送加密后的消息,因此,服务商需要解密后才能查看具体信息。

目前第三方平台服务器会向第三方应用【授权事件接收 URL】以 HTTP POST 方式推送:

  • component_ticket;
  • 授权成功通知、授权解除通知、第三方应用找回授权码通知;

会向第三方应用【消息与事件接收 URL】以 HTTP POST 方式推送:

  • 代授权小程序提审代码的审核结果;
  • 代授权小程序修改名称、图标、简介、服务类目等基本信息的审核结果;
  • 代授权小程序申请短视频挂载、抖音直播组件、获取用户手机号等能力的审核结果;

这种系统事件推送通知,格式均为 json,并且接收到后需要直接返回字符串 success

验证消息签名

目的是保证消息是来自于第三方平台服务器。

消息格式为:

{
  "Nonce": "4464221",
  "TimeStamp": "1535551395",
  "Encrypt": "Encrypt xxxx",
  "MsgSignature": "ba394c04acece6c2c0edee058c5dddf82474b8ee"
}

Nonce 为随机数,TimeStamp 时间戳,Encrypt 加密消息体,MsgSignature 为消息签名。

可以使用 VerifyByteDanceServerUtil 类的 verify 方法。根据【消息验证 TOKEN】、Nonce、TimeStamp、Encrypt 获取签名,和 MsgSignature 比较,如果相同则证明来源于第三方平台服务器。

我们提供了 java,php,go 三种语言的示例代码(点击下载,请运行示例代码前先阅读 readme 文件),每种语言的类名和接口名均一致。

解密消息

上面的消息中,Encrypt 字段为加密消息体,可以使用【消息加密解密 KEY】调用 AesDecryptUtil 类的 decrypt 方法进行解密。

我们提供了 java,php,go 三种语言的示例代码(点击下载,请运行示例代码前先阅读 readme 文件),每种语言的类名和接口名均一致。

注意:

  • 上述提到的【授权事件接收 URL】、【消息与事件接收 URL】、【消息验证 TOKEN】、【消息加密解密 KEY】,均为服务商在创建第三方应用时填写的。
  • 服务商接收到第三方平台服务器推送给第三方应用的消息后必须直接返回字符串 success,不是 "success",否则第三方平台服务器会认为推送失败,从而进行多次重试(重试 3 次)。
点击纠错
评价此篇文档