服务简介
多多进宝订单状态变更消息目前已接入消息服务,请渠道配合接入消息推送服务。
通过订单消息推送来跟踪订单状态流转,减少订单同步接口(pdd.ddk.order.list.increment.get/pdd.ddk.all.order.list.increment.get)的轮询。
注意:
多多进宝订单消息推送,只负责推送少量关键字段信息。
渠道接收到消息后,需要主动拿订单号调用订单详情接口(pdd.ddk.order.detail.get/pdd.ddk.oauth.order.detail.get)实现订单信息同步。
多多进宝消息服务接入步骤:
一、订阅消息
登入开平应用,进入应用管理后台后,打开消息订阅中的推送消息订阅,选取你要订阅的消息类型点击订阅即可。
多多进宝订单消息:pdd_ddjb_TradeModified
业务主键为订单号
文档详情链接:
二、下载SDK
进入到我的应用中,下载相应语言的SDK(当前仅支持JAVA版本SDK)
三、创建长连接,接受消息,业务逻辑处理
将SDK导入项目后,可使用以下代码创建长连接。用户使用SDK接收消息,仅需关注业务的逻辑,无需担心消息的重发、确认、长连接重连等操作:
代码示例:
四、消息日志排查
开放平台提供了消息日志功能,用于开发者线上查询当前消息订阅情况以及历史消息推送日志,便于排查消息问题,开发者可前往应用详情-排查工具中查看,另外,对于当前SDK已建立的长连接会话状态,亦可在应用详情-数据监控中查看。
进宝订单推送记录查询时,店铺编号不填;关键字(业务主键)必填,取订单号。
五、消息积压查询
对于长时间未消费的队列消息,从消息推送进入消费队列后7天以后,将不会继续保留,可能造成应用遗漏消息从而造成业务风险,为此可以通过接口pdd.pmc.accrue.query定时查询当前已建立的长连接中积压消息数量,避免此类情况发生。
常见问题
Q:消息如何ACK?
A:用户实现MessageHandler接受消息进行业务处理,处理完成后SDK会自动ACK。如果处理方法抛出了任何异常则不会ACK消息,消息会在下个时间点重新推送。
Q:接口总是输出SIGN_SRC,如何关闭这些输出?
A:对于系统中有日志的,实现接口com.pdd.pop.sdk.common.logger.PopLogger的类名:XXXX.CustLoger,在项目中目录META-INFservices新增一个文件:com.pdd.pop.sdk.common.logger.PopLogger,文件内容:XXXX.CustLoger。这样就可以控制是否打印了。自己注册的,使用开发者自己的,没有注册的会使用默认的。
Q:如何判断ws连接状态?
A:ws连接状态由sdk内部维护,外部无需关心。sdk会自动发送心跳,当判断连接中断时会自动尝试重连。若要手动断开连接可用WsClient.close(),若要查看链接状态可用WsClient.isOnline()。
Q:可以同时启动多个WsClient么? 如果启动的话消息会如何推送?
A: 可以。随机选择一个进行推送。
Q:消息重发机制是怎样的?
A:会进行重试,重试的时间间隔为10m-10m-10m-1H-1H-1H-12H-12H......会重试7天内未消费的消息。建议在收到消息后,先持久化消息,再调用业务逻辑。
Q:消息如果没有消费,那么消息会保留多久?
A:7天
- 获取解压密码
- 微信扫下面二维码
- 添加下面微信
- 领取35个自媒体课程