c***@163.com
c***@163.com
  • 发布:2025-06-15 00:51
  • 更新:2025-06-16 11:04
  • 阅读:56

uni-pay 支付成功回调不执行

分类:uniCloud
2025-06-15 00:26:07.844  [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] reserve_instance_start: reserveFunctionInstance start  
2025-06-15 00:26:07.847  [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] reserve_instance_end: reserveFunctionInstance success; instanceName=50bb2681-1293-44bf-94d4-f980a94c5c15 ip=10.75.77.117  
2025-06-15 00:26:07.847  [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] call_function_start: call function start  
2025-06-15 00:26:08.413 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] user_code_execution: 50bb2681-1293-44bf-94d4-f980a94c5c15,version: aa9bc0f0  
2025-06-15 00:26:08.577 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 14.502  
2025-06-15 00:26:08.732 [uni-pay-co][USER][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] execute: 50bb2681-1293-44bf-94d4-f980a94c5c15,queryRes:  {  
  amount: { currency: 'CNY', payer_currency: 'CNY' },  
  attach: '',  
  payer: { openid: 'o-TYC7iHY0GsmctecazjTFj_btf0' },  
  appId: 'wxe8ea2e6bbcd267a4',  
  mchId: '1718177179',  
  bankType: 'OTHERS',  
  outTradeNo: 'kechengfei-1749918352891-1',  
  successTime: '2025-06-15T00:26:02+08:00',  
  tradeState: 'SUCCESS',  
  tradeStateDesc: '支付成功',  
  tradeType: 'JSAPI',  
  transactionId: '4200002649202506153627785423',  
  settlementTotalFee: 0,  
  totalFee: 10,  
  cashFee: 10  
}  
2025-06-15 00:26:09.238 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 3.72  
2025-06-15 00:26:09.744 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 3.724  
2025-06-15 00:26:10.250 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 3.375  
2025-06-15 00:26:10.755 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 3.553  
2025-06-15 00:26:11.260 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 3.221  
2025-06-15 00:26:11.766 [uni-pay-co][SYSTEM][INFO][d176f721-2ad7-439e-8162-fbfb37d8203a] sdk_request: 50bb2681-1293-44bf-94d4-f980a94c5c15,mode: mongo, path: /faas/uni-pay-orders?query, success, status: 200, cost: 3.483

已经写了 \ly-admin\uni_modules\uni-pay\uniCloud\cloudfunctions\uni-pay-co\notify\kechengfei.js 支付也成功了,但是回调没有走 也没有任何日志

代码如下

'use strict';
const db = uniCloud.databaseForJQL();
const dbCmd = db.command;

module.exports = async (obj) => {

let user_order_success = true;  
let {  
    data = {}  
} = obj;  

console.log('kechengfei',data);  

let {  
    order_no,  
    out_trade_no,  
    total_fee,  
    transaction_id,  
    payment_method,  
    custom = {},  
} = data;  

try {  
    const kechengfei_fee = parseInt(configRes.data[0].value);  
    if (total_fee !== kechengfei_fee) {  
        throw new Error(`支付金额不匹配,应为${kechengfei_fee}分,实际为${total_fee}分`);  
    }  
    // 3. 更新用户订单状态为已支付  
    await db.collection('ly-user-orders').where({  
        order_no  
    }).update({  
        status:'paid',  
        payment_info:{  
            transaction_id,  
            payment_method,  
            paid_time:Date.now()  
        }  
    })  

    const user_order = db.collection('ly-user-orders').where({  
        order_no  
    }).get()  

    user_order = user_order.data[0];  
    // 2. 自动创建一条课程兑换记录到数据库中  
    await db.collection('ly-course-codes').add({  
        course_id: user_order.items[0].product_id,  
        user_id: user_order.user_id,  
    })  

    // 4. 发送通知  
    await db.collection('uni-notification-center').add({  
        user_id: db.getCloudEnv('$cloudEnv_uid'),  
        title: '课程费用支付成功',  
        content: `您已成功支付课程费用 ${total_fee/100} 元`,  
        type: 'payment_success',  
        is_read: false,  
        create_time: Date.now()  
    });  

    return user_order_success  
} catch (e) {  
    console.error('课程费用处理失败:', e);  
    return false  
}  

};

2025-06-15 00:51 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

私发下空间id

  • c***@163.com (作者)

    解决了,问题发生的原因是 回调函数配置的是空间的request https://env-00jxgwqr5jn8.api-hz.cloudbasefunction.cn 但是云函数内部居然指向的不是这个地址 https://env-00jxgwqr5jn8.dev-hz.cloudbasefunction.cn 一个是api-hz 一个是 dev-hz

    2025-06-17 21:12

  • DCloud_uniCloud_VK

    回复 c***@163.com: 地址是要去云函数详情复制的,这样肯定不会错

    2025-06-18 10:54

要回复问题请先登录注册