小程序web-view页面调用小程序支付,报错支付JSAPI缺少参数: total_fee

问题简述:

使用小程序web-view加载网页,调用支付时,使用如下小程序路由API跳转到小程序支付页发起小程序支付。

wx.miniProgram.navigateTo({ url: XXX})

调起支付过程中,出现弹框,提示:支付JSAPI缺少参数: total_fee,微信小程序文档中未找到相关说明,后来在网上搜索,得到解决方案。原来支付API传参时(如下代码),package字段值不符合文档要求。在通过url拼接跳页传递package参数时,原有从后端接口获取到的支付参数prepay_id=wx***,传递到小程序支付页面后,只显示prepay_id,等于号后边的参数消失了(目前原理不明,未深入研究,欢迎看到的小伙伴补充相关链接说明)。

wx.requestPayment({
  timeStamp: '',
  nonceStr: '',
  package: '',  // 要求格式为:prepay_id=***
  signType: 'MD5',
  paySign: '',
  success (res) { },
  fail (res) { }
})

微信小程序支付API文档链接:wx.requestPayment(Object object)
 

解决方案:

对传参做调试,解决了遇到的问题,即通过截取字符串的方法,后端接口返回的prepay_id=wx***,将等号后的字段截取,赋值给自定义的url拼接字段进行传递。在小程序支付页,获取后重新拼接赋值给package。参看如下文章:

小程序fail 调用支付JSAPI缺少参数: total_fee,小程序web-view支付

你可能感兴趣的:(JavaScript,小程序)