education
education
  • 发布:2025-02-23 15:11
  • 更新:2025-02-23 15:11
  • 阅读:18

【报Bug】请求云对象正常,但是莫名其妙本地报错

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

示例代码:

async function validateOrder(order_no) { // 改为 async 函数
try {
console.log('发起验证,订单号:', order_no)

        // 初始化云对象(关键配置)  
        const todoObj = uniCloud.importObject('finalPaymentValidator', {  
            customUI: true, // 禁用默认UI  
            errorOptions: {  
                type: 'none'  // 禁用所有框架级错误处理  
            }  
        })  

        // 显示加载状态  
        uni.showLoading({ title: '验证中...', mask: true })  

        // 调用云对象  
        const result = await todoObj.validateOrder({   
          serialnumber: order_no // 强制类型转换  
        })  

    } catch (err) {  
        console.error('[支付验证] 完整错误日志:', err)  

        // 统一错误处理  
        uni.hideLoading()  
        uni.showToast({  
            title: err.errMessage || '支付验证异常',  
            icon: 'none',  
            duration: 3000  
        })  
    }  
}

操作步骤:

请求云对象finalPaymentValidator


module.exports = {  
    _before: function() {  
        const clientInfo = this.getClientInfo()  
        this.uniID = uniID.createInstance({  
            clientInfo  
        })  
    },  
    /**  
     * method1方法描述  
     * @param {string} param1 参数1描述  
     * @returns {object} 返回值描述  
     */  
    validateOrder:async function(event) {  
        // 获取参数  
        const {serialnumber} = event;  
        console.log(serialnumber)  
        // 获取数据库引用  
        const db = uniCloud.database();  

        try {  
            // 查询订单  
            const orderResult = await db.collection('orders')  
                .where({  
                    serialnumber: serialnumber  
                })  
                .limit(1)  
                .get();  
            console.log(orderResult)  
            console.log(serialnumber)  
            // 检查是否找到订单  
            if (!orderResult.data || orderResult.data.length === 0) {  
                return {  
                    errCode: 1,  
                    errMessage: '未找到订单,请联系客服'  
                };  
            }  

            const order = orderResult.data[0];  

            // 检查订单状态  
            if (order.status !== 1) {  
                return {  
                    errCode: 2,  
                    errMessage: '订单还未制作完成,请稍作等待'  
                };  
            }  

            // 检查是否已支付尾款  
            if (order.finalPayment === true) {  
                return {  
                    errCode: 3,  
                    errMessage: '请不要重复支付尾款'  
                };  
            }  

            // 检查是否免费订单  
            if (order.free === true) {  
                return {  
                    errCode: 0,  
                    errMessage: '请支付0.01元手续费',  
                    data: {price:0.01}  
                };  
            }  

            // 返回正常支付信息  
            return {  
                errCode: 0,  
                errMessage: '正在支付',  
                data: order  
            };  

        } catch (error) {  
            console.log('报错了没')  
            return {  
                errCode: 1,  
                errMessage: '验证失败,请稍后重试'  
            };  
        }  
    }  
}```

预期结果:

云对象正常运行并返回{errCode: ,errMessage}

实际结果:

报了个莫名其妙的错误,如附件

bug描述:

运行云对象本地莫名其妙报错,云对象请求格式没问题,云对象也没报错,顺利运行,就在本地报的错,应该和返回数据的后续处理没关系,注释了也报错。

2025-02-23 15:11 负责人:无 分享
已邀请:

要回复问题请先登录注册