最近系统出现了paypal争议订单的问题,那么当遇到这种问题的时候,我们应该在程序处理和人工处理中如何进行选择了,这里记录了我对paypal出现争议订单的研究。
商家账户向客户发送支付的邮件信息。邮件信息如下:
客户对该邮件进行了支付操作, 此时在商家账户查看该账单信息,账单的状态是已支付的。
同时,我们通过商家账户的api,查询该订单的状态如下,也是已经支付的状态。
这个时候,由于意外原因,导致客户没有收到货,那么客户就会登录到自己的paypal账户中,对该订单进行申诉,如下:
此时你登录商家账户信息,就会惊奇的发现,出现了争议订单,那这个绝对不能忍啊,首先我还是使用api来查询该订单的状态,本来已经该订单的状态已经是争议订单,应该获取到的状态会变,然而还是paid状态,也就是说,订单变为了争议订单,我们第三方程序那就只能想其他办法了。
这个时候首先想到了webhook,去官网查询了一下,果然是有这个事件通知的。也就是说,当我们对这个事件做了配置,paypal会回调我们的指定接口。这种方式可以作为一种通知机制(如:当回调我自己的系统的时候,我发个邮件通知我们的客服人员要去手动处理该订单。)
虽然当出现争议订单的时候,程序总不能直接就全额退款吧,说不定还可以和客户沟通沟通,然后就不用退款了呢?所以我决定不使用程序来处理,那么就需要手动处理了。
当订单手动标记为退款后,重新查看该订单的状态,发现是REFUNDED的,所以写个定时脚本查询出最后更新时间为某段时间内的、状态为REFUNDED的订单,然后做相应的逻辑处理即可。(或者还有其他的webhook也可以尝试,不过怕其他网络原因,最好两种方式都有)