小程序使用wx.requestPayment()支付后,会弹出微信的一个默认支付成功的界面,需要点击底部“完成”按钮后,wx.requestPayment()的success回调才会执行。
修改订单状态的请求,就放在这个success回调里。但如果在这个默认支付成功的界面,不点这个完成按钮,而是让小程序进入后台,或者在手机上终止小程序或者微信这个应用,或者在还没有点完成的时候,或者手机没电关机了,那么这个sucess回调就不会执行了。这产生的问题就是,用户付钱了,但订单的状态却没有更新。
这个问题该如何解决?
使用微信支付服务端通知接口,不要在小程序段执行支付成功的唯一判断。
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8