现在有个发红包业务,用户输入总金额,红包数量后,点击发送,调用微信支付,支付成功,则发送成功。
现在打算写三个function ,第一个,创建红包记录,支付状态为未支付,返回5个参数给前端。第二个,回调,收到正确回调后,将红包支付状态更改为已支付,第三个,叫前端带红包id过来,我先查这个红包id是否为已支付,是则返回发送成功,不是则请求查询订单接口,如果查不到,就返回叫前端继续轮询,查到就更改红包状态,并且返回发送成功。
但问题是,比如定义前端轮询5次,如果5次都失败了,就返回发送失败,但是微信那边刚刚好在第6次才会查到支付成功,我却说他发送失败重新发送,那不就不行了吗。
针对这个业务,比较好的方案是怎样的呢?