解决 iOS 微信小程序调起微信支付失败的隐藏坑:appId 参数补充
微信支付官方文档
在微信小程序开发中,调用 wx.requestPayment
发起微信支付是常见需求。官方文档中明确了 timeStamp
、nonceStr
、package
等必传参数,但在实际开发中,不少开发者会遇到一个棘手问题:Android 端支付正常,iOS 端却调起失败。经过多次排查验证,发现 iOS 环境下需要额外补充 appId
参数才能顺利调起支付,本文将详细记录这一问题的解决过程。
一、问题现象与排查过程
1. 问题表现
按照官方文档配置参数后,Android 设备能正常弹出支付窗口,而 iOS 设备调用 wx.requestPayment
时,要么无任何响应,要么直接进入 fail
回调,报错信息模糊(常见如“支付参数错误”或无具体提示)。
2. 初步排查
- 确认
timeStamp
为秒级时间戳(非毫秒); - 检查
nonceStr
长度在 32 字符以内,且为随机字符串; - 验证
package
格式为prepay_i