Skip to content

HAI-Notice(通知中心)对接文档V2.0-三个一网系统对接

HAI-Notice(通知中心) 对接文档V2.0

数字海南有限公司

Digital Hainan Co., Ltd

版本修订记录

序号** 日期**** 更改内容**** 版次**** 起草或修订人**** 批准人**
12024-01-11第一版1.0梁其良梁其良

范围

本指南提供了通知中心服务接入接口说明,定义了接入接口的调用方式、请求协议、报文格式等内容。

缩略语

JSON:JavaScript Object Notation,是一种轻量级的数据交换格式;

SDK:Software Development Kit,软件开发工具包,提供项目的快速集成;

AK:Access Key,授权码AK,提供接口的安全访问,由接口方提供,使用方妥善保管;

SK:Secret Key,授权码SK,提供接口的安全访问,由接口方提供,使用方妥善保管;

请求协议

通知中心与接入服务通过HTTPS协议交互,字符编码为UTF-8,报文格式为JSON。

调用SDK

通知中心通过统一网关提供服务,在请求时,需要集成Apione SDK,通过统一的调用地址,传递不同的调用参数进行调用。

SDK下载:apione-http-client-hzt-1.0.11-RELEASE.jar

调用示例:

java
/**
 * 接口请求
 *
 * @param contentJson     接口请求Body入参
 * @param ak              分配的AK SK
 * @param sk              我的应用-我申请的功能-对应功能查看sk
 * @param apiName         对应接口名称
 * @param region          接口所属区域 INTRA(政务外网),INTER(政务互联网)
 * @param requestUrl      接口请求地址
 * @return 接口返回数据
 */
public static String invoke(String contentJson,
                                String ak,
                                String sk,
                                String apiName,
                                String region,
                                String requestUrl) {

    ContentBody contentBody = new ContentBody(contentJson);
    
    HttpParameters parameters = HttpParameters.builder()
            .api(apiName)
            .region(region)
            .accessKey(ak)
            .secretKey(sk)
            .contentBody(contentBody)
            .requestUrl(requestUrl)
            .build();

    // 打印入参
    log.info(JSONObject.toJSONString(parameters));
    //请求接口服务,获取response
    HttpReturn call = HttpCaller.getInstance().call(parameters);
    // 打印出参
	log.info(JSONObject.toJSONString(call));
    // 获取接口响应
    return call.getResponse();
}

请求地址

通知中心通过统一网关提供服务,需要请求统一的网关地址,调用不同接口根据接口名称进行区分。

:::tips
生产环境:https://api-one.digitalhainan.com.cn/apione

测试环境:https://api-one-dev.digitalhainan.com.cn/apione

:::

注意:政务网需要开通网络策略:10.111.128.134:80/443,并配置本地HOST

统一接口鉴权

如果接口需要鉴权,需要在header中增加调用凭证(token)信息

字段说明类型必填备注
AuthorizationString用户中心用户凭证(token)信息<br/>示例:<br/>Bearer 4405f5b106d740919b848f728f6f1609

统一响应参数

所有的接口都由统一的响应参数结构进行包装,具体的接口响应参数定义在data字段中

字段说明类型必填备注
successBoolean响应头
codeString异常代码
messageString异常信息
data响应参数

接口说明

统一发送消息

通过此接口可进行任意渠道的消息发送。

:::tips

  • 接口名称(ApiName) :notice.prd.sendMessage
  • 所属区域(Region) :INTER
  • 需要鉴权 :否

:::

请求参数

参数字段说明类型必填备注
messages发送消息列表MessageSendVOY支持批量发送消息

MessageSendVO:

参数字段说明类型必填备注
messageTypeCode消息类型代码StringY由通知中心应用管理员分配
channelCode渠道代码StringY由通知中心应用管理员分配,如果需要发送多个渠道,则以英文逗号分隔(,),如AC000001,AC000002<br/>传入海政通Ding消息渠道代码
receiverUidType接收人标识类型StringY接收人标识类型主要是定义想要发送的用户的标识类型,比如短信发送的渠道就填手机号相关的标识
receiverUid接收人标识StringY接收人标识主要对应接收人标识类型,填写实际接收用户的标识,比如短信发送的渠道就填写手机号
attachments消息附件列表List<String>N需要先调用「7.消息附件上传接口进行附件上传」,列表内容为接口返回的附件ID<br/>“90aa9cf266d147239a44722f14963f06”, “826cc20dfb3b4484a220e51fcc79d60a”
variables消息模板变量List<VariableVO>Y字段参考下表
extras额外参数JSONN目前只有特定渠道支持额外参数<br/>如:<br/>“extras”: {<br/> “linkConfig”: {<br/> “urlType”: “online”,<br/> “appUrlType”: “online”,<br/> “disable”: 0,<br/> “appDisable”: 0,<br/> “url”: “www.baidu.com”,<br/> “appUrl”: “www.baidu.com”<br/> }<br/> }

VariableVO:

参数字段说明类型必填备注
key变量名称StringY消息模板变量定义的KEY
value变量值StringY消息模板变量定义的Value,需要进行实际业务值替换

:::tips
💡 接口入参示例可以在管理端-模板管理中查看模板的【接口入参】,可以快速生成参数

:::

返回参数

参数字段说明类型必填备注
rejects消息拒绝发送信息列表List<MessageRejectDTO>Y拒绝发送消息列表,如果此列表不为空,则表示消息被拒绝发送
messageIds消息ID列表List<String>Y消息发送成功分配的消息ID,用于消息查询、跟踪

MessageRejectDTO:

参数字段说明类型必填备注
rejectCode拒绝代码StringY参考消息拒绝原因清单
rejectReason拒绝原因StringY参考消息拒绝原因清单
rejectMessage拒绝发送的消息MessageY参考消息入参

请求示例

可以仅传递部分请求参数。

json
{
    "messages": [
        {
            "messageTypeCode": "TM000023",
            "receiverUid": "111111111111",
            "receiverUidType": "PHONE",
            "channelCode": "AC000423",
            "topicCode": "RXSQ",
            "variables": [
                {
                    "key": "RXR",
                    "value": "111"
                }
            ]
        }
    ]
}

成功响应

:::tips
条件 :请求参数合法

判断条件: success=true

:::

json
{
    "success": true,
    "code": null,
    "message": null,
    "data": {
        "rejects": [],
      	"messageIds": ["1381445818959134720"]
    }
}

:::tips
💡 注意,当消息rejects不为空时,则表示请求的消息中存在因消息校验不通过,被服务拒绝发送

:::

json
{
    "success": true,
    "code": null,
    "message": null,
    "data": {
        "rejects": [
            {
              	"rejectCode": "NOTICE-REJECT-1101",
                "rejectReason": "应用代码不能为空",
                "message": {
                      "appCode": "ONECODE",
                      "topicCode": "BSDT",
                      "messageTypeCode": "YYGHCGTZ",
                      "channelCode": "SMS",
                      "receiverUid": "17789770704",
                      "receiverUidType": "PHONE",
                      "sourceCode": "HNSRMYY",
                      "variables": [
                          {
                              "key": "JZR",
                              "value": "张三"
                          }
                    ]
                }
            }
        ]
    }
}

错误响应

:::tips
条件 :请求数据非法或服务器出现异常。

判断条件: success=false

:::

json
{
  	"success": false,
    "code": "SYSTEM-500"
    "data":null
}

发送Ding消息

通过此接口可进行任意渠道的消息发送。

:::tips

  • 接口名称(ApiName) :notice.prd.sendDingMessage
  • 所属区域(Region) :INTER
  • 需要鉴权 :否

:::

请求参数

参数字段说明类型必填备注
messages发送消息列表MessageSendVOY支持批量发送消息

MessageSendVO:

参数字段说明类型必填备注
messageTypeCode消息类型代码StringY由通知中心应用管理员分配
channelCode渠道代码StringY由通知中心应用管理员分配,如果需要发送多个渠道,则以英文逗号分隔(,),如AC000001,AC000002
receiverUidType接收人标识类型StringY接收人标识类型主要是定义想要发送的用户的标识类型,比如短信发送的渠道就填手机号相关的标识
receiverUid接收人标识StringY接收人标识主要对应接收人标识类型,填写实际接收用户的标识,比如短信发送的渠道就填写手机号
attachments消息附件列表List<String>N需要先调用「7.消息附件上传接口进行附件上传」,列表内容为接口返回的附件ID<br/>“90aa9cf266d147239a44722f14963f06”, “826cc20dfb3b4484a220e51fcc79d60a”
variables消息模板变量List<VariableVO>Y字段参考下表
extras额外参数JSONN目前只有特定渠道支持额外参数<br/>如:<br/>“extras”: {<br/> “linkConfig”: {<br/> “urlType”: “online”,<br/> “appUrlType”: “online”,<br/> “disable”: 0,<br/> “appDisable”: 0,<br/> “url”: “www.baidu.com”,<br/> “appUrl”: “www.baidu.com”<br/> }<br/> }

VariableVO:

参数字段说明类型必填备注
key变量名称StringY消息模板变量定义的KEY
value变量值StringY消息模板变量定义的Value,需要进行实际业务值替换

:::tips
💡 接口入参示例可以在管理端-模板管理中查看模板的【接口入参】,可以快速生成参数

:::

返回参数

参数字段说明类型必填备注
rejects消息拒绝发送信息列表List<MessageRejectDTO>Y拒绝发送消息列表,如果此列表不为空,则表示消息被拒绝发送
messageIds消息ID列表List<String>Y消息发送成功分配的消息ID,用于消息查询、跟踪

MessageRejectDTO:

参数字段说明类型必填备注
rejectCode拒绝代码StringY参考消息拒绝原因清单
rejectReason拒绝原因StringY参考消息拒绝原因清单
rejectMessage拒绝发送的消息MessageY参考消息入参

请求示例

可以仅传递部分请求参数。

json
{
    "messages": [
        {
            "messageTypeCode": "{消息模板代码}",
            "receiverUid": "{海政通用户ID}",
            "receiverUidType": "USERID",
            "channelCode": "{海政通DING消息渠道代码}",
            "variables": [
                {
                    "key": "RXR",
                    "value": "111"
                }
            ]
        }
    ]
}

成功响应

:::tips
条件 :请求参数合法

判断条件: success=true

:::

json
{
    "success": true,
    "code": null,
    "message": null,
    "data": {
        "rejects": [],
      	"messageIds": ["1381445818959134720"]
    }
}

:::tips
💡 注意,当消息rejects不为空时,则表示请求的消息中存在因消息校验不通过,被服务拒绝发送

:::

json
{
    "success": true,
    "code": null,
    "message": null,
    "data": {
        "rejects": [
            {
              	"rejectCode": "NOTICE-REJECT-1101",
                "rejectReason": "应用代码不能为空",
                "message": {
                      "appCode": "ONECODE",
                      "topicCode": "BSDT",
                      "messageTypeCode": "YYGHCGTZ",
                      "channelCode": "SMS",
                      "receiverUid": "17789770704",
                      "receiverUidType": "PHONE",
                      "sourceCode": "HNSRMYY",
                      "variables": [
                          {
                              "key": "JZR",
                              "value": "张三"
                          }
                    ]
                }
            }
        ]
    }
}

错误响应

:::tips
条件 :请求数据非法或服务器出现异常。

判断条件: success=false

:::

json
{
  	"success": false,
    "code": "SYSTEM-500"
    "data":null
}

Last updated: