首页 > 网站调用第三方支付的设计思路, 如何兼容支付宝和微信不同的方式

网站调用第三方支付的设计思路, 如何兼容支付宝和微信不同的方式

问题是这样:
我们网站中用户下单后会生成网站自身的订单, 然后点击"支付"并选择支付渠道后, 都会新生成一个支付流水单号, 无论微信支付还是支付宝都是将这个新的支付流水单号来调用第三方支付平台接口
新的支付流水单号会覆盖老的, 与网站订单绑定, 当然所有的支付流水单号也是存在一张表的就像log一样, 不过只有一条记录和网站订单关联

其实我这么做是为了兼容支付宝和微信, 因为支付宝反复请求即时到账接口如果参数不变, 在用户未支付的情况下都是没问题的, 而微信不一样, 每次调用的时候订单编号必须唯一
因此我们网站将订单 和 支付进行分开, 一个订单可以对应不同支付渠道的若干条支付流水单号, 用户在不付款的情况下可以随意切换不同的支付渠道多次点击支付按钮

那么问题来了, 当用户点了多次支付或切换支付渠道后点击支付, 弹出了多个第三方支付窗口, 按理说他应该在最后弹出的窗口进行扫码支付, 但是他可能忘记了, 或者是为了测试, 他扫了前面弹出窗口的二维码,并支付成功
这时候我们网站应该如何处理呢? 或者他闲的蛋疼,挨个扫了一遍
我想到的方法:

  1. 弹出错误提示? " 请您在最新的支付窗口中进行支付", 显然不行, 因为他已经付款成功了, 他不可能再次付款

  2. 网站后台将他支付的那个订单流水号与订单进行绑定, 覆盖之前的绑定关系

我想方法2, 应该没问题吧.....

还有, 每次用户点击支付, 重新生成支付流水号的这种方式好吗?
另一种思路, 就是说每次都用之前未支付的参数来调用第三方支付, 我知道支付宝没问题, 只要参数不变就可以反复调用
微信就有问题了, 我不能反复调用, 而是需要在db保存之前支付的二维码等参数, 就不用调用"统一下单接口"了,而是直接展示给用户二维码, 不过有可能prepay_id已经超时了, 当用户支付的时候回收到错误提示, 这时网站也收到了错误提示, 然后触发重新下单, 这种方式好不好呢?


微信 native 模式二,只要参数不变,一个订单号也可以无数次


试试看https://www.pingxx.com/ 吧,兼容多种支付接口。

【热门文章】
【热门文章】