收藏
回答

云开发支付功能服务端用变量接收Date.now(),但不是每次调用都更新数据,请问是什么原因?

var out_trade_no = Date.now();
var out_trade_no1 = Date.now();
return resolve({
        success: true,
        data: {
          outTradeNo: out_trade_no,
          outTradeNo1: out_trade_no1,
          time:Date.now(),
        }
      });

基于云开发的支付功能,利用时间戳来形成订单号,但是出现的问题是,out_trade_no并没有每次都更新,仍然是几秒几分钟前的时间戳,所以会出现订单号重复、该订单已支付等等问题。

上面3个返回值,out_trade_no用于之后的支付功能。out_trade_no1没有其他地方用到该变量,仅仅用来返回,结果是这俩都没有更新时间戳,只有返回time:Date.now()的时候才会返回正确的时间戳

请问是啥原因?是赋值语句不合适还是啥?

最后一次编辑于  09-21
回答关注问题邀请回答
收藏

1 个回答

  • 未命名科技
    未命名科技
    09-22

    js 模块加载是有缓存的,那么前面定义的变量都已经固化了,只有在 return 中重新计算的才是正确的时间戳。

    09-22
    赞同
    回复 2
    • _
      _
      09-22
      那请问应该如何修改比较好?
      09-22
      回复
    • 未命名科技
      未命名科技
      09-22回复_
      你 time 这个值不是正确的么,和 time 一样赋值就行了。
      09-22
      回复
问题标签