问题描述
在开发九两酒微信小程序商城时候,在订单页面,如果金额比较低,就会出现score积分为0的情况,支付完成后会报如下错误"[uni-pay-co]: Error:执行失败,积 分需要大于等于1",如下图所示:

问题解决
经过排查是在支付成功后出现的问题,那问题基本出现在支付回调云对象内,所以看一下该云对象,uni-pay-co -> notify -> goods.js
javascript
const scoreCloudObj = uniCloud.importObject('client-scores');
scoreCloudObj.shopping({
_id: payOrder._id,
type: 2,
user_id: payOrder.user_id
});
问题就是调用购物赠送积分的shopping函数中,根据路径找到函数
javascript
//购物获得积分
async shopping({ _id, type = 1, user_id } = {}) {
.......
let score = type == 1 ? orderData?.score_in ?? 0 : orderData?.score_out ?? 0;
if (!score) return console.log({ errCode: 400, errMsg: 'error', custom: '积分需要大于等于1' });
..........
}
如上所示,将if判断积分原来的return result({errCode:400})修改成console.log,这样就不会将错误信息返回而阻塞后面程序的运行了,错误信息页可以直接进入云函数日志中查看。

如果要想学习完整的微信小程序商城,可以查看:unipay支付微信小程序商城开发Vue3完整版