收藏
回答

支付所需参数你们是服务端存在哪里的?

我碰到一个问题,创建订单时我会返回给前端支付所需的参数像prepay_id,paySign等,

但是创建订单后用户可能放弃支付,然后在我的订单页的状态是等待支付(按钮为点击付款),如图所示,那么用户在规定的付款时间可以进行支付。

但是支付所需的参数我只是在创建订单的接口返回的,后端没有进行存储。现在我就是纠结存储支付参数的问题。

是把这些支付参数存在redis,还是存在数据库表中好呢?

我目前是存在redis,但是想了想,支付参数是很重要的,

但是放在数据库又感觉没有必要,支付完了这些数据就没啥意义了,就像日志一样,

所以你们的做法是什么呢或者更偏向哪种做法?

Update:

支付参数存储的问题解决了:微信订单存了prepay_id和nonce_str,写了一个接口单独获取支付参数,调接口时从数据库拿那两个字段加上appid等进行签名,把5个调起支付所需的参数返回给前端。

现在的问题是,prepay_id过期了,重新下单的问题

最后一次编辑于  2020-11-25
回答关注问题邀请回答
收藏

5 个回答

  • Gorgine
    Gorgine
    2020-11-25

    我们的订单系统是这样的,先生成一个订单号,再微信统一下单,再把统一下单返回的prepay_id,nonce_str存起来生成我们自己的微信订单,再生成主订单外键关联微信订单。

    这样的话,prepay_id过期了,我要重新下单该咋整呢?

    2020-11-25
    有用
    回复
  • 老张
    老张
    2020-11-25

    从来不存out_trade_no,得一次prepay_id,就重新下单。

    2020-11-25
    有用
    回复 4
    • Gorgine
      Gorgine
      2020-11-25
      我们是存的,这样就比较麻烦。。不好重新下单 我们是先生成一个订单号 然后预下单 然后把预下单的返回信息存到自己的微信订单表 然后存主订单(关联到微信订单表)
      2020-11-25
      回复
    • Gorgine
      Gorgine
      2020-11-25
      我这种情况咋重新下单呢
      2020-11-25
      回复
    • 老张
      老张
      2020-11-25回复Gorgine
      这种情况,用原来的prepaid_id重新二次签名,返回wx.requestPayment所需的5个参数,不就行了。
      2020-11-25
      回复
    • Gorgine
      Gorgine
      2020-11-25
      但是主订单还是关联的之前的微信订单 重新下单 那我要把主订单之前关联的微信订单置为null 再关联这个新的微信订单 感觉有点奇怪
      2020-11-25
      回复
  • 辰辰
    辰辰
    2020-11-25

    大佬,加个微信呗:hyg68886,我们有个交流群,进来一起交流学习哈

    2020-11-25
    有用
    回复
  • จุ๊บ
    จุ๊บ
    2020-11-25

    如果订单信息没有变更(金额信息等),直接调用统一下单继续走支付就可以;如果变更了,就需要重新生成订单号,用新的订单号去请求统一下单

    2020-11-25
    有用
    回复
  • 青寒
    青寒
    2020-11-25

    不差这点订单号,下次再进来就是1个新的。所以不存。

    2020-11-25
    有用
    回复 2
    • Gorgine
      Gorgine
      2020-11-25
      你说订单页点击付款 再调微信统一下单接口下单吗
      2020-11-25
      回复
    • 青寒
      青寒
      2020-11-25回复Gorgine
      咳,我们订单没那么多,所以没考虑同一订单继续使用的问题。
      2020-11-25
      回复
登录 后发表内容
问题标签