收藏
回答

小程序订单用户关闭收银台窗口,怎么在原订单重新支付拉起收银台?

小程序订单支付,用户在输入密码时候关闭窗口,但是可以在45分钟内通过待支付订单页面重新支付这笔订单。现在想到有2种方式:

  1. 重新调用 prepayWithRequestPayment(JsapiServiceExtension)接口,重新获取支付参数,通过日志观察,这次微信支付生成的prepay_id和第一次请求这个接口获取的prepay_id不一致,应该是每次请求这个接口微信支付都会生成新的prepay_id;
  2. 将第一次获取到的微信支付参数(appId,timestamp,nonceStr,package,signType,paySign)缓存起来,有效期45分钟。

目前使用的是第一种方式,验证过没有问题,但是这种方式有一个弊端就是用户多次关闭收银台,然后在重新支付,就会生成多个prepay_id,其实就是多次在微信支付下单,感觉这样不太好,不知道会不会有什么影响。第二种方式没有验证过,prepay_id有效期是2小时,不知道这些参数的有效期是多长。

回答关注问题邀请回答
收藏

1 个回答

  • Memory
    Memory
    04-21

    原单重入可以直接获取新的预支付ID用于调起支付,订单可重入时间是远大于你当前需要的45分钟的,不建议做缓存,会存在安全风险

    04-21
    有用
    回复 1
    • 得鹿梦鱼
      得鹿梦鱼
      04-22
      就是说按第一种方式做是最好的
      04-22
      回复
登录 后发表内容