简体中文
|
消息推送说明一、推送方式阿里巴巴开放平台向接入商推送实时的业务变更消息,保持数据的一致性以及同步,满足接入商业务需求,避免轮询。推送的数据消息,将以http post或者websocket的方式向该推送地址发起调用,把数据推送给接入商。接入商如果通过SDK方式接收消息,在成功收到后,SDK会自动发送回执,如果自己接收消息,则需要自行发送回执。接收失败时,消息中心会自动重发N次(一般3次)。如果还是失败,则将消息保存入库,接收方可通过补偿API来拉取接收失败的消息。失败消息一般保存7天,请及时拉走,否则消息会被丢弃。 二、推送消息格式消息数据以Json格式发送,消息提供统一的模板;不同业务的消息,仅通过消息类型来区分,具体的业务消息内容,参考各个业务消息说明。 1、消息模板字段说明
消息模板json示例 {
"msgId": "12345",
"gmtBorn": "1392711616045",
"data": {
"key1": "value1"
},
"userInfo": "memeberId",
"type": "messageType"
} 2、业务消息字段示例说明示例:订单状态变化消息消息业务说明: 订单状态发生变化的消息推送 消息类型: ORDER_STATUS_CHANGE 业务消息内容:
消息内容示例 message = {
"data": {
"currentStatus": "FINISH",
"lastStatus": "FUND_PROCESSING",
"orderChangeTime": "2015-06-24 19:33:26",
"orderId": "60020931694988"
},
"userInfo": "cn1803950",
"type": " ORDER_STATUS_CHANGE ",
} 三、推送通道说明1、httpCallback通道说明: http消息回调通道,isv提供一个http服务,配置url地址;开放平台采用短连接的方式调用http服务,推送消息 推送协议说明: 开放平台推送中心发送post请求,包含两个参数,编码格式统一为UTF-8,统一按照key/value格式推送,参数说明:
消息签名说明仅对消息内容进行签名计算,签名算法同开放平台的算法,内容是key+value(即message+json串) 消息签名算法示例 # key=message
# value= message对应的json串
String[] datas = new String[1];
datas[0] = key + value;
byte[] signature = SecurityUtil.hmacSha1(datas, toBytes(appSecretKey));
return encodeHexStr(signature); http 推送POST请求示例:POST /pushMessage HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Connection: close
Accept: */*
User-Agent: NING/1.0
Content-Length: 248
message={"data":{"key":"value"},"gmtBorn":1527556000,"msgId":70299002,"type":"PRODUCT_PRODUCT_EXPIRE","userInfo":"CBU_MemberId"}&_aop_signature=65F2AA13AE9C9C9DFE8682EFB90B32F37CB01BE1 推送成功说明isv收到消息之后,只要设置返回的response http status code =200就认为是消息消费成功; 如果http status code!=200,就认为是消息消费失败,推送中心后续会重试,默认重试3次 2、websocket通道说明: websocket协议消息推送,isv提供一个websocket客户端(可集成SDK),主动连接到开放平台,并保持长连接;开放平台通过长连接推送消息,客户端消费完成后,需要主动确认消息消费完成(SDK可自动解决) 推送协议说明:
由于websocket协议复杂,强烈推荐使用SDK来集成,减少开发成本,不用关心连接维护,心跳等复杂问题,只需要处理消息的逻辑;后续会慢慢补充协议完整信息 四、消息补偿API针对推送失败的消息,我们提供补偿API机制,让isv能够主动来查询失败消息列表,做一些补偿的逻辑。 提供两种方式: 1、游标式获取失败的消息列表:游标式获取失败的消息列表,获取的消息默认自动会做消费成功的确认。所以下次以相同条件调用获取的是剩下的数据,直至返回数据为空。 游标式获取失败的消息列表API: https://www.cnsecc.com/doc_29486412.html 2、查询式获取失败的消息列表:查询式获取发送的消息列表,获取的消息不会自动确认消费成功的状态,需要调用方手动调用确认api来确认。需注意,确认后,会影响分页返回的数据 查询式获取失败的消息列表API: https://www.cnsecc.com/doc_29486420.html 失败消息批量确认Api: https://www.cnsecc.com/doc_29486404.html |