请求方根据平台提供的URL,以HTTPS POST方式提交请求, 平台接到请求后处理请求,以json格式的形式返回处理结果。
请求方接收平台json格式的回复报文,并对该报文进行解析。
用例结束。
云平台所有需要传递unicode字符的接口采用文件传输方式POST(HTTPS)multipart/form-data,字符编码集采用UTF-8。
接口文档如无特殊说明,unicode字符使用json传递,json的请求参数为data。
示例:
云平台根据用户在开发者账号填写的回调地址,以HTTPS POST或GET 方式提交请求。
必备的参数有:
1,type,为了能让外部系统区分业务,云平台会加上type参数给外部系统用于区分是从什么功能模块回调的。
参数的可选值如下表:
type参数 | 回调功能模块 |
---|---|
FORM_CALLBACK | 表单流程数据回调接口 |
SEND_MESSAGE |
统一消息推送 |
外部系统可以根据情况与自身系统时间比对,酌情加上5~15分钟的延迟宽限。
3,请求头(http-header)参数:authCode,为了给外部系统提供云平台请求的防篡改校验,云平台会在对所有POST参数组合成按key的alpha-beta排序的json(如果不存在任何post参数,则json为花括号对“{}”),以开发者信息中的凭证密钥(developerKey)作为key,进行hmac-md5 hash,把结果值以请求头authCode,传递给外部系统。
例如:云平台请求回调地址为
POST :http://www.domain.com.cn/callbackapi
POST参数:
type=FORM_CALLBACK
timestamp=1688001938000
id=A
data=B
开发者信息中凭证密钥:C
则hash函数的参数为:{"data":"B","id":"A","timestamp":"1688001938000","type":"FORM_CALLBACK"}
得到authCode为:new HMACMD5("C").hash("{\"data\":\"B\",\"id\":\"A\",\"timestamp\":\"1688001938000\",\"type\":\"FORM_CALLBACK\"}")=
671c1c9725b88c36e3a154c783afbc0f
外部系统接到请求后处理请求:
1,对请求参数中的时间戳 (timestamp)进行及时性校验。
2,对POST参数与请求端同样的方式进行hmac-md5 hash,获取到的结果与请求头authCode的值进行比对,值相同才认为是合法的请求。
3,以json格式的形式返回处理结果。
请求方接收平台json格式的回复报文,并对该报文进行解析。
用例结束。