为了账号安全,请及时绑定邮箱和手机立即绑定

Paypal客户纠纷指南(1)

标签:
Java

鉴于前段时间自己开发的paypal支付功能出现客户纠纷的问题,觉得有必要对客户纠纷进行深入的了解,故写篇手记记录下自己了解该功能的过程。这里我使用了sandbox的两个账户用来演示,商家账户简称为father,个人账户简称为son。

  • 纠纷订单是如何产生的?

纠纷产生的原因就很简单了,因为客户在购买商品的时候,如果使用的是paypal进行付款的,那么如果客户没有收到货,那么就能登录自己的paypal账号,将对应的账单进行申诉,就会生成一个纠纷订单,客户可以在自己的paypal界面查看到这些订单。如:https://img1.sycdn.imooc.com//5bd7a9390001540f11060116.jpg

当客户申请了纠纷后,此时商家账户的该笔资金是会被paypal进行冻结的,所以商家必须给客户一个处理结果。那么此时我首先想到的是,既然paypal能提供这个功能,应该是有提供第三方的api的吧,确实能在https://developer.paypal.com/docs/api/customer-disputes/v1/#disputes_get-disputes这个网址中看到这些争议订单的api,但是神奇的是:https://img1.sycdn.imooc.com//5bd7b00700013db208930089.jpg

也就是说这个功能里面的api是没有集成到sdk中去的,不管怎么样,我感觉有点心慌,不过没关系,我们找找有没有其他办法来处理。

  • 纠纷订单的生命周期

    https://img1.sycdn.imooc.com//5bd7b1fb00015cd307820558.jpg

  • 如何集成客户纠纷的API

虽然官网说需要是paypal的合作伙伴才能使用这个API,但是我觉得程序员就应该多尝试,所以决定玩玩,步骤如下

  1. 启用客服纠纷的功能,该功能默认就是开启的。https://img1.sycdn.imooc.com//5bd7b6590001306207960066.jpg

  2. 获取访问令牌:通过如下命令获取到token

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \

  -H "Accept: application/json" \

  -H "Accept-Language: en_US" \

  -u "client_id:secret" \

  -d "grant_type=client_credentials"

3、查询出所有争议订单:

https://img1.sycdn.imooc.com//5bd7b8e5000118a705680080.jpg

然后我们竟然神奇的查询到了争议订单id值

https://img1.sycdn.imooc.com//5bd7b9f20001b8db09200355.jpg

既然如此,我们继续查询出该争议订单的详细信息:

https://img1.sycdn.imooc.com//5bd7ba320001b86307290098.jpg

https://img1.sycdn.imooc.com//5bd7bb0200012c0318920101.jpg

那么也就是说,我们能够通过自己发送post、get请求来实现查询争议订单的功能的,但是问题就是我们必须自己手动来写这些sdk。写这些sdk的工作量那就比较大了,不过如果有兴趣的话可以自己写个试试。这里我就想其他办法来处理了。

  • 草根处理方法思路


   根据自己的使用情景,我决定还是不使用客户纠纷的API来处理纠纷订单,第一个是集成比较麻烦,第二个就是就算集成了,业务逻辑处理起来也存在很多的不确定性。个人觉得paypal的纠纷订单直接通过人工处理即可。我们第三方程序需要做的只是当出现了纠纷订单的时候,第一个是能直接通知收到了纠纷订单,通知客服处理。第二个是能查询到纠纷订单的详细信息,从而来对订单里面的货物进行相应的处理即可。于是,我决定使用webhook。

仔细分析了下业务,对于这种争议订单需要我们第三方系统知道的,应该只有三种状态,分别是:

a、纠纷订单创建

b、纠纷订单解决(客户和商家达成一致,客户将纠纷手动更新为完成,商家没有退款操作)

c、订单退款成功

为了查看该webhook的相关信息,在paypal的官网上查看了相关文档:https://developer.paypal.com/docs/integration/direct/webhooks/

https://img1.sycdn.imooc.com//5bd7c11a0001d75807740325.jpghttps://img1.sycdn.imooc.com//5bd7c16c000116a107810073.jpg

  • 测试webhook

    既然paypal提供了对应的事件,为了测试准确性,也只能自己来测试了。

    一、CUSTOMER.DISPUTE.CREATED事件测试:


         1、配置webhook

        https://img1.sycdn.imooc.com//5bd7c3db000191b809910106.jpg

         2、通过测试买家用户son,申请纠纷订单。

        首先我给father用户付款了300元,此时的账户余额为708元。https://img1.sycdn.imooc.com//5bd7c5ff0001355a07700127.jpg

        然后此时son申请没有收到产品,也就是创建纠纷订单事件触发。https://img1.sycdn.imooc.com//5bd7c6630001ecfb08330425.jpg

    如果你使用的是sandbox的测试用户,你可以会发现很难出现回调的情况,这个问题我重试了很多次,对比着真实环境,得出的结论是:sandbox的webhook很不稳定!!所以如果你折腾了一天都没有成功,那么建议你可以尝试使用真实环境试试。我就是使用真实环境来测试的。

     

  • 预知后事如何,且听下回分解。。。。








spacer.gif

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
19
获赞与收藏
45

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消