异步回调通知接收说明

更新时间:2024-07-15 18:54:26

1.异步回调通知概述

  • 首先,开发者配置回调通知Web Url地址。
  • 每当,认证相关事件发生时(如用户完成实名),e签宝通知服务将会创建一个JSON对象,其中包含事件类型和与该事件相关的数据等信息。
  • 然后,e签宝通知服务通过 HTTP POST 请求将JSON对象发送到开发者配置的回调通知 Web Url中。
  • 开发者业务系统在收到回调通知后,可根据事件类型和相关数据做下一步的业务处理。

其流程描述如下:

2.接收认证类回调通知

2.1 准备一个支持 HTTP POST 的 Web 服务

e签宝通知服务将以 HTTP POST 方式推送 JSON 格式的数据,因此开发者所提供的 Web 服务需要能够接收并解析来自HTTP POST 请求的 JSON 数据并能够返回相应 HTTP 状态码。

2.2 设置回调通知Url地址

【注意事项】

  • 回调通知Url地址格式需符合 {scheme}://{host}:{port}/{path},详见文末附2 回调通知URL格式说明
  • 请确保回调通知Url地址拼接正确,且互联网可成功访问。

如果以下两种设置回调通知方式均设置,均会触发回调通知(地址相同就触发两次)

方式一:接口设置

开发者可通过每个认证服务内的接口中的notifyUrl参数来配置回调通知Url地址(接口配置的不返回事件类型:action)

方式二:开放平台订阅

开发者登录e签宝 开放平台 后点击【控制台】进入e签宝开发者控制台,在页面上方先选择【正式服务】(沙箱环境则选择【沙箱服务】,其他流程一致),然后在页面下方左侧点击【应用管理】-【我的应用】后在右侧应用列表页面中点击【配置】进入“应用配置”页面,选择【消息推送】模块的“添加”按钮即可配置接收回调通知的URL,并需要在事件订阅中勾选对应事件。如下图:

2.3 接收并响应

2.3.1 接收e签宝回调通知

当某个事件发生后,e签宝会主动 POST 请求开发者所设置的回调通知 Url 地址,并推送对应的事件数据信息。

例如:当用户完成认证操作后,e签宝将推送该认证完成事件数据信息。

【提示】

  • 若贵司有网络安全策略,请按照异步回调通知安全机制配置防火墙,以便成功接收回调通知。
  • 若开发者长时间未收到e签宝的回调通知,可主动调用相关查询接口,以便获知认证流程当前进展状态。

请求头数据格式如下:

{
  "X-Tsign-Open-TIMESTAMP":"1713508339505",
  "X-Tsign-Open-SIGNATURE-ALGORITHM":"hmac-sha256",
  "X-Tsign-Open-App-Id":"74XXXXXX",
  "X-Tsign-Open-SIGNATURE""60c6719d332420f251234d72631e93e83e80061f47f78bc483a851a710"
}

请求Body数据格式如下:

{
    "flowId": "34610511111183554",
    "success": true,
    "contextId": "1234455",
    "verifycode": "19e5aa11111111889cc56dfeb1b6b21",
    "serviceId": "346111111113783554",
    "status": true
}

其中:

action 为业务事件类型,开发者可以通过判断返回 JSON 中的 action 业务事件类型,来进行下一步业务处理。

可通过查看文末附1 Action事件列表了解认证类相关事件的回调通知数据。(只有通过开放平台订阅方式配置的才有action)

Action事件类型可能会出现新增,建议开发者考虑兼容性处理,防止出现代码异常造成业务卡死。

例如,Action业务事件类型判断时,仅将贵司业务需要的类型进行判断并进入下一步业务,其他不需要的类型做忽略处理,这样可以防止新增类型对现有业务造成影响。

2.3.2 响应e签宝回调通知

e签宝的回调通知触发后,返回的200 ~ 299之间的 HTTP 状态码均会被e签宝通知服务认定为通知成功。

除返回 HTTP 状态码之外,同时建议开发者按以下 JSON 格式向e签宝通知服务返回 Body体数据(e签宝不对开发者返回的Body体数据做判断)

{"code":"200","msg":"success"}

【注意事项】

  • 返回给e签宝的 HTTP 状态码介于200~299之间,e签宝认为通知成功,否则e签宝认为通知失败。
  • 调用超时时间5秒,首次调用失败后,1s后重试;再次失败后间隔5s再次重试,再次失败则不再通知。
  • 为避免因e签宝通知服务解析 JSON 数据失败而导致重复通知,请确保返回的 JSON 数据中不含空格 \/等特殊字符,建议接收成功时直接返回{"code":"200","msg":"success"}
  • 为了保障回调通知的时效性和可靠性,建议开发者在接收到回调通知后在5秒内返回 HTTP 状态码(200)给e签宝通知服务。
  • 若开发者无法在5秒内完成回调通知相关业务处理,请采用异步方式进行后续业务处理。

3.e签宝回调通知安全机制

为了保证回调通知数据推送的安全,e签宝提供IP白名单模式和签名验签模式两种模式供开发者选择。

两种模式可以单独使用,也可以组合使用。具体详见 异步回调通知安全机制


附1 Action事件列表

开发者可通过判断e签宝通知服务推送的 JSON 中的 Action 事件类型,从而进行下一步业务处理。

Action事件类型可能会出现新增,建议开发者考虑兼容性处理,防止出现代码异常造成业务卡死。

例如,Action业务事件类型判断时,仅将贵司业务需要的类型进行判断并进入下一步业务,其他不需要的类型做忽略处理,这样可以防止新增类型对现有业务造成影响。

Action 事件类型

Action 对应事件名称

通知事件

identity_psn_end

个人认证流程结束通知

identity_org_end

组织认证流程结束通知

identity_org_payed

企业对公打款异步通知

附2 回调通知URL格式说明

URL格式:{scheme}://{host}:{port}/{path}

【解释说明】

scheme指 https 或 http 协议

host指 贵司用来接收回调通知的域名或公网IP

port指 贵司用来接收回调通知的Web服务端口

path指 贵司用来接收回调通知的Web服务具体路径(允许含带Query参数,如path?type=xxx)

注:回调通知Url中不能含有空格或其他特殊字符。

正确示例

正确的URL格式:

https://example.demo.cn:8080/notify/receive

正确的URL格式:

http://223.X.X.5:8080/notify/receive

错误示例

只有路径没有地址:

.notify/receive

只有地址,没有具体服务路径:

https://example.demo.cn:8080

本地内网IP,互联网无法访问:

https://localhost:8080/notify/receive

本地内网IP,互联网无法访问:

http://192.168.1.1:8080/notify/receive

本地内网IP,互联网无法访问:

https://127.0.0.1:8080/notify/receive

非URL格式:

test、123456等



我要纠错