自定义消息API
自定义API
消息开放接口,白标对接说明
适用场景
对于MultiMarket不支持的发送通道(邮件、短信),白标可以自己对接发送通道,并提供对外接口,与MultiMarket进行对接,MultiMarket平台将会按照此文档规范调用此接口;
MultiMarket提供一套接口对接API,白标需要按此规范提供接口,api规范详见下文。
然后在白标管理后台页面(短信账号、邮箱账号页面),新增时选择“自定义”,并配置接口url、公钥(鉴权用)。
公私钥规则
非对称加密算法RSA算法,密钥长度1024。
示例:
API规范
我方的调用方式为http post
参数使用json格式。
需要对参数进行鉴权
以下具体说明短信、邮件的参数,以及鉴权方式。
邮件参数
参数说明
参数 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
pushType | String | 非必填 | 信息推送渠道类型 |
pushId | String | 非必填 | 信息推送账号ID |
toUser | String | 必填 | 邮件接收人 |
trace | String | 必填 | 全局链路唯一标志 |
sign | String | 必填 | 签名 |
title | String | 必填 | 标题 |
content | String | 必填 | 内容 |
timestamp | long | 必填 | 请求发送时间,时间戳,毫秒 |
短信参数
参数说明
参数 | 类型 | 是否必填项 | 描述 |
---|---|---|---|
pushType | String | 非必填 | 信息推送渠道类型 |
pushId | String | 非必填 | 信息推送账号ID |
toUser | String | 必填 | 短信接收人 |
trace | String | 必填 | 全局链路唯一标志 |
sign | String | 必填 | 签名 |
content | String | 必填 | 内容 |
timestamp | long | 必填 | 请求发送时间,时间戳,毫秒 |
鉴权
对请求参数sign解密,得到结果记为signContent: 1)从请求参数中获取sign字段的值,记为data; 2)使用自己的私钥,记为privateKey; 3) 对data、privateKey进行base64解码:Base64.decodeBase64(data)、Base64.decodeBase64(privateKey); 4)使用上步base64解码后的两个数据,进行RSA解密,得到字节数组,转为String,记为signContent;
根据请求参数,获取加密原文,记为signContentSource 1)邮件的加密原文:signContentSource=toUser@timestamp@trace; 1)短信的加密原文:signContentSource=toUser@timestamp@trace;
将加密原文(signContentSource)、解密结果(signContent)进行比较:相等则鉴权通过。
成功响应数据
Last updated