springboot--支付宝条码支付的实现

       这几天一直在调支付宝的条码支付的接口,遇到不少问题,想跟大家分享一下。我还是建议大家在官网下载的接口先调通了,再放入自己的项目中。我的小伙伴做的是微信条码支付,不得不说,支付宝的接口文档比微信的详细多了,此外支付宝还附带一个样例demo,非常便于新手开发与学习微笑

       所谓的条码支付,就是商家扫用户的付款二维码进行结账,用户只需展示付款二维码即可。而扫码支付是用户扫商家的二维码,然后输入金额支付,在我的生活周围目前扫码支付比较多,条码支付在一些大型超市,饮料贩卖机会出现。

       具体的开发步骤,一些需要修改的参数我就不叙述了,这些在支付宝的接口文档中都有提到,而且很详细。不过在这之前,你需要有商户私钥(private_key),商户公钥(public_key),以及pid,appid等。下面主要是叙述我遇到的问题,以及解决方法:

       (1)  支付宝的接口mian里把函数test_trade_pay注释掉了,没有注意到这点,所以控制台一直输出一些打印信息,很郁闷;

       解决方法是:在main函数里把需要用到的函数去注释;

       (2) 输入我的付款码之后,运行程序出现连接超时:

           


       解决方法:我一直以为是我的付款码(authCode)输入的速度不够快,失效了,因为它的有效期是1分钟,然后就多次测试,还是不行,最后怀疑可能我的网设限了,查看是否设限,在控制台用 ping  openapi.alipaydns.com,结果是请求超时,果然是网络受限(好吧,那天教研室网不行)。解决网络问题,该问题就解决了。

      (3)  接下来的是签名加密的问题了,具体错误如下:

         

      解决方法是:要弄清楚你申请时签名算法用的是RSA2还是RSA,我下载的支付宝接口里默认是RSA2,但是我的应该对应的是RSA,在支付宝提供的配置文件中修改即可。

      我解决完以上问题之后,样例demo就可以正常运行,并付款成功了,接下来就把demo放入自己的项目中。(ps:完成这一步的时候,我心里窃喜,结果后面简直是一盘冷水下来,透心凉啊)  

     根据接口文档的描述,我把按步骤把demo放入到自己的项目中,结果出现一下问题:

          

       天真的我一直以为是alipay和maven里面的包冲突了,但是在maven中找不到所描述的包啊,真的是一脸懵逼啊。根本一点都没有怀疑是alipay接口内部包冲突了,在小伙伴的帮助下,发现真的是内部包冲突了,把core-2.1.jar包去掉了(ps:这个问题花费我不少时间,我还没想明白这个问题,如果是内部冲突,为什么在单独调试的时候没有出现这个问题,知道的朋友请分享下答案哦吐舌头)。

      好吧,解决了这个问题又出现了新问题:

     

     解决方法:

     在pom.xml中加入红框的代码:

    


    到此为止,可以在项目中正常付款了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值