收藏
回答

云函数中进行支付,total_fee不允许获取数字*100?

exports.main = async(event, context) => {
  const wxContext = cloud.getWXContext()
  let {
    orderid,
    body,
    money
  } = event
 
  await db.collection('quote')
    .doc(orderid)
    .field({
      sum: true,
    })
    .get()
    .then(res => {
      money = res.data.sum * 100
    })
 
  const api = tenpay.init(config)
  let result = await api.getPayParams({
    out_trade_no: orderid,
    body: body,
    total_fee: money, //订单金额(分)
    openid: wxContext.OPENID //付款用户的openid
  })
 
  return result

不乘100就可以,但金额就不对了。总不能前端输入金额时+两个0吧。这问题很奇怪。网上的支付都是*100的。

最后一次编辑于  09-26  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • จุ๊บ
    จุ๊บ
    09-26

    现在外面*100 然后转成整型,再放在支付里面呢?

    09-26
    赞同
    回复 1
    • 智明麟
      智明麟
      09-26
      我这个是云函数获取数据库,昨天在前端时*100也是同样的结果。
      09-26
      回复
  • Xpt
    Xpt
    09-26

    实例参考https://github.com/xuhuai66/used-book-pro/blob/master/cloudfunctions/pay/index.js

    09-26
    赞同
    回复 3
    • 智明麟
      智明麟
      09-26
      已阅,实例中有*100的操作,我这个不*100就行,*100就报错。
      09-26
      回复
    • Xpt
      Xpt
      09-26回复智明麟
      注意看那里我后面的注释内容
      09-26
      回复
    • 智明麟
      智明麟
      09-26
      测试过,结果是*100后的数字
      09-26
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    09-26

    money = await db.collection('quote')

    .doc(orderid).field({

        sum: true,

    }).get().then(res => {

        return res.data.sum * 100

    })


    09-26
    赞同
    回复 9
    • 智明麟
      智明麟
      09-26
      已测试,不行
      09-26
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      09-26回复智明麟
      报什么错
      09-26
      回复
    • 智明麟
      智明麟
      09-26


      09-26
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      09-26回复智明麟

      你先在const api = tenpay.init(config)之前,return money出来看看,是什么


      return money

      const api = tenpay.init(config)

      09-26
      回复
    • 智明麟
      智明麟
      09-26


      09-26
      回复
    查看更多(4)
问题标签