先写最终处理结果:经过各种排查,主要是服务器的日志,确认是有赞没有发送消息推送,所以我服务器无法确认“已付款”,最终手动补单。
-----
我是使用的微小店,配合有赞的生成二维码功能,向用户收款,用户付款后,有赞推送消息到我服务器,服务器核实消息后“发货”。
昨天(10月30日)有个用户自称付款后未收到“货”,由于我的系统目前没有账号体系,只能由用户提供付款详情,详情里有用的只有付款时间、交易单号、商户单号。由于交易单号和商户单号都属于外部的交易数据,有赞目前并没有API能够通过这两个数据来查询订单详情或者收银台二维码详情,微小店也只有App版没有网页版。
于是只能在微小店App里,根据付款时间往前翻到10月23日的记录,再根据具体付款时间来排查。
通过与服务的订单比对,发现用户扫描了qr_id为8958820二维码,创建了有赞内部订单E20181023161926028425516,显示“已完成”。
但奇怪的是,用户重复扫这个二维码,还创建了一个订单E20181023162307028491502,这个订单被标记为“待发货”(10月23日当天我就觉得奇怪,二维码支付后应该立马就“已完成”了,为什么是“待发货”,后来大概第二天我手动取消了这个订单)。
好,说8958820这个二维码。通过收银台API:youzan.trades.qr.get,查到该二维码创建两个订单,其中订单尾号5516的,状态为TRADE_RECEIVED,另一个为TRADE_EXPIRED(我手动取消的)。
再用过youzan.trade.get查订单状态,能够查到外部交易单号和商户单号,与用户提供的一致,至此,可以确定用户已付款。
然后查服务器日志,发现23日16时19分左右没有收到有赞的消息推送,所以服务器无法确认用户的付款。想通过有赞查消息推送日志,但是一直无法查23日的。然后,我手动给用户补单。
因为想以后也能根据用户提供的信息快速找到订单,并确认订单,于是开始继续看有赞接口文档并测试。
使用youzan.trades.sold.get的4.0.0版,可以通过时间段查订单,于是我输入了start_created和end_created查找23日16点-17点的订单,发现个奇怪的事,在状态为TRADE_SUCCESS的订单中,有的订单pay_info包含outer_transactions和transaction信息,有的不包含。尾号5516的订单就不包含,E20181023160855029068999也不包含。然后发现8999这个订单也漏单了,只是用户还未向我反馈。上述2个漏单的都发生在23日下午16时多。
然后在上述时间段作为条件基础上,继续加入了tid作为条件,返回的结果又包含了outer_transactions和transaction信息。
所以我在想,到底什么原因导致掉单,导致有赞不推送消息。
另外,希望增加接口,可以通过outer_transactions和transaction信息查找订单。
|
|
用手机打开
收藏
赞 0
···
回复
|
|
|
|