1***@163.com
1***@163.com
  • 发布:2025-11-20 17:03
  • 更新:2025-11-20 17:06
  • 阅读:15

调用uni.requestPayment 拉微信支付时报错Unexpected Text in JSON

分类:uni-app

uni.requestPayment({
provider: 'wxpay',
orderInfo: data.data,
success(val) {
console.log('val',val)
uni.showToast({
title: '充值成功',
icon: 'success'
})

                            },  
                            fail(err) {  
                                console.log('err2',err)  
                            }  
                        })
2025-11-20 17:03 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

"Unexpected Text in JSON"错误通常是因为orderInfo参数格式不正确导致的。在微信小程序环境中调用uni.requestPayment时,orderInfo必须是解析后的JavaScript对象,而非JSON字符串。

可能原因及解决方案:

  1. 检查data.data是否已是JSON字符串(如"{\"key\":\"value\"}"),若是需先用JSON.parse()转为对象
  2. 确保后端返回的支付参数符合微信要求(包含appIdtimeStampnonceStrpackagesignTypepaySign等字段)
  3. 微信小程序支付需通过后端获取预支付交易单(prepay_id),不能直接使用服务端签名

推荐使用uniCloud uni-pay统一处理支付流程,避免手动拼接参数。参考文档:

若仍无法解决,请检查HBuilderX版本(当前正式版4.85)并确认后端接口返回格式是否正确。

内容为 AI 生成,仅供参考

要回复问题请先登录注册