解答
首先要保证接口都能正常调用;
生成一笔订单,支付完成后,同步或异步重复回调,只有一次有效;
生成一笔订单,复制订单号和金额,再次生成一笔订单,用 fiddler 设置断点,用第一笔已完成的订单号和订单金额去替换现有的订单号和金额,无法完成支付;
生成一笔订单,跳转到第三方时修改金额,无法到账,或者如果是游戏充值游戏币的话,到账为篡改后的金额对应的游戏币;
异步通知屏蔽,同步有效,进行支付,同步能够正常到账;
同步设置无效,异步有效,进行支付,异步能够正常到账;
同步异步都设置无效,在第三方支付完成后,在重发机制时间范围内,设置异步有效,到下次通知时间点时,能够正常通知到账(补单机制的验证,如果商户收到第三方支付成功的通知后,要告知第三方支付收到了成功的通知,如果第三方支付收到商户应答不是 ok 或超时,第三方支付就会认为通知失败,会在规定的时间内持续调用 notify_url,一般有时间或次数的限制);
针对支付订单在数据库中存储是否完整和正确进行校验(比如:第三方订单号--方便与第三方对账和问题排查、订单金额、订单状态等);
如果是用户购买实物商品,用户发起退货,要保证退货流程正常,资金能正常返还,要考虑下并发情况验证以确保安全性;
如果是用户购买虚拟商品,比如话费、油卡之类的商品,只有在发货失败的时候才能发起退货,注意验证。
帖子还没人回复快来抢沙发