小程序wx.requestPayment报错/无响应信息梳理
大风起兮云飞扬,安得猛士兮走四方,BUG,任何时候都要改,不改不行,你想想,你自己一个人,下了班,吃着火锅还唱着歌,突然支付就不能用了!
本文整理了关于微信小程序wx.requestPayment的报错或无响应的问题。报错信息与回答多整理于[微信开发社区],本文仅做整理。(https://developers.weixin.qq.com/community/develop/mixflow)
一、报错
问题1:
requestPayment:fail no permission
解决办法:
1. 重启项目,再次尝试。
2. 核对appID,如一致,尝试重新复制粘贴一边
问题2:
requestPayment:fail jsapi has no permission
// 开发及体验版本皆可支付,但正式版本不行
解决办法:
ios支付被平台限制,去申诉完成
问题3:
requestPayment:fail 支付验证签名失败
解决办法:
1. 在签名的时候,需要和appId(I为大写)一起签名,因为在调用requestPayment接口的时候不需要传入appId
2. 签名问题,一般是你的签名参数本身不符合文档规范,大小写。转义,排序。等等都必须完全符合规范。确认参数无误,可以更换一下KEY。还有参数的编码,可能出现乱码问题,要注意编码UTF8
问题4:
视频号跳入小程序之后,在小程序中下订单时,调用wx.requestPayment()支付时,一直支付失败
解决办法:
通过视频号进入小程序下单的,需要先将商品推送审核,并调用wx.requestOrderPayment()进行支付。
如果搜索进入小程序,可正常调用wx.requestPayment()
问题5
requestPayment:fail parameter error: parameter.noner.paySign should be String instead of Undefined
这个就不用说了吧,调起支付一共需要paySign、timeStamp、nonceStr、package、signType五个参数,每个参数都必须是字符串,不能是null和undefined。如果报这个错误,就console检查一下参数吧。
问题6
APP调起支付返回:-1
解决办法(官方回答):
1、[使用签名检查工具](https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)4、确认参数的大小写,参数名与接口文档一致5、签名原串的参数值使用原始值,不需要encode6、接口需要使用UTF-8编码7、IOS正常,安卓异常的情况下,请排查包名与包签名8、未注册APPID9、项目设置APPID不正确10、注册的APPID与设置的不匹配11、服务商模式下,统一下单中的sub_appid是否有传入12、“唤起支付接口”中的签名类型是否与“统一下单接口”的类型一致
好了,这是暂时整理到的比较常见的报错问题,下面来谈下我遇到的神仙问题。
二、无响应
先来谈下是怎样无响应的
机型:iphone8、12、13
系统:不限
场景:用户点击支付,调用预支付后,调取wx.requestPayment,无响应
看代码
...
let data = res.data.data;
try {console.log(data); // 正常打印wx.requestPayment({timeStamp: data.timeStamp,nonceStr: data.nonceStr,package: data.package,signType: 'MD5',paySign: data.paySign,success (res) { // 无响应},fail (res) {// 无响应},complete(res) {// 无响应}})
} catch (err) {// 不报错console.log(err)
} finally {console.log('执行了'); // 正常执行
}
这套支付代码已经安稳运行了3年,从来没出过问题,所以一开始就没往代码上考虑,怀疑是其他部门更改了配置项之类的,核对后没问题,又怀疑是v2和v3版本的问题,紧急写了v3的demo,发现也不能调用。
所以怀疑不是配置项或者后台代码的问题,开始对前端代码进行核对,代码一个方法一个方法的删,看到底是哪个方法会影响支付,终于,
onUnload: function () {for (let timer = 0; timer < 1000; timer++) {clearInterval(timer)}
},
因为订单列表会存在大量定时器,所以我在3年前,写了这段代码,在页面卸载时清除1000次定时器。
删除这段代码后,小程序可以正常支付,所以感觉像是清除定时器时阻塞了微信小程序底层的某些方法。
现在改变了新的写法:
let setIntervals = {};
setIntervals[`${id}`] = setInterval(() => {...
...
onUnload: function () {for(var each in setIntervals){clearInterval(setIntervals[each]);}
},
这样就可以正确删除定时器,并且微信支付也没有异常了。
现在终为年轻付出了代价。
完结,撒花!
小程序wx.requestPayment报错/无响应信息梳理相关推荐
- 微信小程序wx.getLocation()报错以及解决方法
问题介绍 使用wx.getLocation()来获取当前地理位置的经纬度 主要代码如下: wx.getLocation({success: function(res) {//经度let lat = r ...
- 微信小程序request:fail报错(包括不执行fail回调问题)
微信小程序request:fail报错(包括不执行fail回调的问题) 1. 不执行fail回调的问题 2. request:fail报错原因 2.1 小程序未配置域名导致的错误 2.2 微信小程序使 ...
- python--微信小程序获取手机号码报错
微信小程序获取手机号码报错,其中python文档中有一段需要引用 'Crypto'的库 在windows环境下可能会出现安装失败等原因,可以安装PyCryptodome来替代 转载于:https:// ...
- 小程序直播间报错:{“errmsg“:“the current room status does not allow this operation rid:“,“errcode“:300023}
修改小程序直播间报错 {"errmsg":"the current room status does not allow this operation rid: 5fd3 ...
- 微信小程序渲染图片报错:[渲染层网络层错误] Failed to load local image resource
微信小程序渲染图片报错解决:[渲染层网络层错误] Failed to load local image resource 背景 通过用户点击上传图片,通过res.tempFilePaths拿到用户上传 ...
- uni-app-微信小程序-预览报错
遇到的问题记录: uni-app-微信小程序-预览报错 首先打开config.js 配置文件,查看host 如下图: host 在为127.0.0.1 的情况下预览失败,无法加载数据 解决办法:使用 ...
- 解决小程序获取openid报错errcode:48001或者其他错误代码方案
解决小程序获取openid报错errcode:48001或者其他错误代码方案 原因解析 解决方案 公众号appid获取微信openid 小程序appid获取微信openid 原因解析 获取openID ...
- 小程序 引入computed报错:Behaviors should be constructed with Behavior()
小程序引入computed报错:Behaviors should be constructed with Behavior() 解决方案: const computedBehavior = requi ...
- uniapp引入自定义组件canvas 不现实,运行到微信小程序端时会报错
问题1 在引入自定义canvas组件时,在微信开发者工具中为空白,和h5中不现实 原因 在微信开发者工具 错误案例,没有加实例化this 在h5中不实现为空白是没有onReady里面实例化canvas ...
最新文章
- 媲美Pandas?一文入门Python的Datatable操作
- 【 FPGA 】按键消抖与LED灯流动小实验
- Java 集合Collection图解
- Qt调用dll中的功能函数
- Docker最全教程——从理论到实战(四)
- Linux+.NetCore+Nginx搭建集群
- kbmmw 5.0 中的REST 服务
- Qt 开源作品 | 小伙子,给你的 Linux 系统写个 Launcher 吧
- 一起学习C语言:C语言基本语法(三)
- javascript精雕细琢(二):++、--那点事
- “IT男等级”对照表|找找你在哪?
- 程序员为什么要写博客?怎么写博客?
- ASM文件类型和模板
- Dreamweaver CS6 行为概述
- 【2023校招刷题】常见面试问题总结(一、EDA工具及IC整体设计流程篇)(随后续面试不断更新....)
- php20以内的勾股数,[求助]编程求100以内的所有勾股数
- 王和勇计算机软件,图像空间中的鉴别型局部线性嵌入方法
- RTK固定解什么意思
- 中值滤波(python实现)
- 项目管理思维是什么?
热门文章
- 石家庄铁道大学计算机专业好找工作吗,大学“最让人头痛”的9个专业,但毕业后含金量高,就业形势好...
- 在Google Chrome浏览器中改变点击过的超链接的颜色
- 专利补贴申请的流程是什么
- c语言综合实验报告包括5个子系统,C语言综合实验课程设计
- JavaScript 图片滑动展示效果javascript
- 哪款蓝牙耳机音质比较好?盘点四款降噪效果好的蓝牙耳机
- 使用 MitmProxy 自动抓取微信公众号阅读数、点赞和再看数据
- 跑步装备品牌排行榜,2022年跑者必备好物推荐
- 浅谈springboot三层架构
- Python学习资料1