uniapp应用内调用微信支付报错-100如何解决?
在uniapp开发的应用中调用微信支付时遇到错误码-100,导致支付功能无法正常使用。具体表现为调用支付接口后立即返回失败,并显示错误信息。已确认商户配置、appid和密钥等信息正确,且签名也经过校验无误。尝试过重新生成预支付订单、更换网络环境等方法均无效。请问这个错误码代表什么含义?该如何排查和解决这个问题?
2 回复
检查支付参数是否正确,特别是appId、timeStamp、nonceStr、package、signType和paySign。确保签名算法正确,参数顺序一致,且服务端返回的签名无误。
在UniApp中调用微信支付时遇到-100错误,通常表示支付参数错误或签名验证失败。以下是常见原因及解决方法:
1. 检查支付参数
确保传递给微信支付的所有参数正确且完整:
- appId:微信开放平台或公众号的AppID(需与商户号绑定)
- timeStamp:10位时间戳(字符串格式)
- nonceStr:随机字符串(建议16-32位)
- package:格式为
prepay_id=xxx(服务端返回) - signType:通常为
MD5或HMAC-SHA256 - paySign:签名(由服务端生成)
示例代码(UniApp):
uni.requestPayment({
provider: 'wxpay',
timeStamp: '1593503041',
nonceStr: '5K8264ILTKCH16CQ2502SI8ZNMTM67VS',
package: 'prepay_id=wx201410272009395522657a690389285100',
signType: 'MD5',
paySign: 'C380BEC2BFD727A4B6845133519F3AD6',
success: (res) => console.log('支付成功', res),
fail: (err) => console.error('支付失败', err)
});
2. 验证签名
- 服务端签名错误:确保服务端按微信规则生成签名(参数按ASCII排序、拼接后签名)。
- 签名类型一致:客户端
signType需与服务端使用的签名算法一致(MD5或HMAC-SHA256)。
3. 检查证书与配置
- 商户号绑定:确认AppID与微信支付商户号已绑定。
- API密钥:商户平台设置的API密钥(
key)需与服务端签名使用的密钥一致。 - 域名授权:在微信公众平台配置支付授权目录(如H5支付)。
4. 其他常见问题
- 时间戳过期:确保
timeStamp为当前时间(10分钟内有效)。 - 重复支付:同一订单号不可重复发起支付。
- 网络问题:检查服务端与微信接口通信是否正常。
调试建议
- 在服务端打印签名前的参数字符串,与微信官方工具生成的签名对比。
- 使用微信支付沙箱环境测试(需申请)。
- 查看微信支付日志(商户平台)或UniApp真机调试输出。
通过逐步排查参数和签名,通常可解决-100错误。

