最近在使用unipay 2.0的时候,发现两个问题:
1.查询订单状态,订单实际是由于支付金额不足,支付失败的。
调用一下代码,参数均正确:
let res = await this.$refs.pay.getOrder({
out_trade_no: outTradeNo, // 插件支付单号 两者传1个即可
await_notify: true
});
然后,就会弹出提示弹窗,Cannot read properties of undefined (reading 'total')。
云函数报错:
11:12:56.815 [本地调试]TypeError: Cannot read properties of undefined (reading 'total')
11:12:56.815 [本地调试] at H:\uni_modules\uni-pay\uniCloud\cloudfunctions\common\uni-pay\index.js:1:53058
11:12:56.815 [本地调试] at Array.reduce (<anonymous>)
11:12:56.815 [本地调试] at i (H\uni_modules\uni-pay\uniCloud\cloudfunctions\common\uni-pay\index.js:1:53043)
11:12:56.815 [本地调试] at Proxy.<anonymous> (H:\uni_modules\uni-pay\uniCloud\cloudfunctions\common\uni-pay\index.js:1:52603)
11:12:56.815 [本地调试] at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
11:12:56.815 [本地调试] at async service.getOrder (H:\uni_modules\uni-pay\uniCloud\cloudfunctions\uni-pay-co\service\pay.js:491:15)
11:12:56.815 [本地调试] at async ce.getOrder (H:\uni_modules\uni-pay\uniCloud\cloudfunctions\uni-pay-co\index.obj.js:152:9)
而且没有办法用 try catch将错误自己处理掉。大概率是因为会弹出提示弹窗的原因。
2.使用订单退款,报错。
调用函数,参数正确,也正常退款,但是,报错是修改数据库的错误。
let res = await this.$refs.pay.refund({
out_trade_no: outTradeNo, // 插件支付单号
});
11:14:38.592 [本地调试]FaasError: code: 100104, error: (BadValue) The argument to $each in $push must be an array but it was of type: object uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/service/pay.js:659:12
11:14:38.592 [本地调试] at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
更新到最新的unipay 2.2.1版本也报错。请求大神解答!
2 个回复
最佳回复
DCloud_uniCloud_VK
问题1已修复,更新uni-pay插件,重新上传uni-pay公共模块即可
问题2是支付宝云bug,数据库执行 .unshift 会报错, 如果比较急,可以先把 .unshift 改成 _.push 支付宝云预计1个月内会修复
DCloud_uniCloud_VK
问题1是: 微信支付v2 ? 微信支付v3 ? 支付宝 ?
问题2: 私发下空间id
3***@qq.com (作者)
问题1:微信支付v3。
问题2:已经私发给您。
2024-09-09 12:45
4***@qq.com
我也遇到了同样的问题,v2微信支付,用this.$refs.pay.refund退款,退款成功,但db没更新状态
看日志报的错也是上面的那些,已经把空间id和requestId发你了
2024-09-22 19:21