用户2955643
用户2955643
  • 发布:2026-03-17 00:04
  • 更新:2026-03-17 00:05
  • 阅读:15

【报Bug】上传部署显示成功,但是实际测试,云函数日志显示的依旧是旧版本

分类:uniCloud

产品分类: uniCloud/App

操作步骤:
请求入参: {  
  "args": {  
    "method": "createOrder",  
    "params": [  
      {  
        "provider": "wxpay-virtual",  
        "total_fee": 3.6,  
        "description": "36星星值",  
        "type": "stars",  
        "custom": {  
          "product_id": "stars_36"  
        },  
        "order_no": "stars_1773675651219_793z5hrqv",  
        "wxpay_virtual": {  
          "mode": "short_series_coin",  
          "buy_quantity": 36,  
          "product_id": "stars_36"  
        },  
        "openid": "oSgh213gQ60hI"  
      }  
    ],  
    "clientInfo": {  
      "PLATFORM": "mp-weixin",  
      "OS": "harmonyos",  
      "APPID": "__UNI__F0",  
      "DEVICEID": "17509",  
      "scene": 1001,  
      "appName": "时空模拟",  
      "appId": "__UNI__F0",  
      "appVersion": "1.0.0",  
      "appVersionCode": "100",  
      "appLanguage": "zh-Hans",  
      "hostVersion": "8.0.5",  
      "hostName": "WeChat",  
      "uniPlatform": "mp-weixin",  
      "uniCompilerVersion": "5.03",  
      "uniRuntimeVersion": "5.03",  
      "deviceId": "177009",  
      "deviceType": "phone",  
      "deviceBrand": "devtools",  
      "deviceModel": "HUAWEI Mate 80",  
      "osName": "harmonyos",  
      "osVersion": "",  
      "locale": "zh-Hans",  
      "LOCALE": "zh-Hans"  
    }  
  },  
  "requestId": "ac1cc31b171461182622"  
}  
[uni-pay-co/ac1cc31b1773675651461182622/4ms/DEBUG] [wxpay-virtual] 开始获取 accessToken  
[uni-pay-co/ac1cc31b1773675651461182622/4ms/DEBUG] [getAccessToken] 开始获取  
[uni-pay-co/ac1cc31b1773675651461182622/4ms/DEBUG] [getAccessToken] uniPayConifg: {"appId":"wx822fc508db61","mchId":"17339597","secret":"1ba3edb5","appKey":"6fXm1eA3bFv","offerId":"145","sandbox":false,"rate":100}  
[uni-pay-co/ac1cc31b1773675651461182622/172ms/DEBUG] [getAccessToken] cacheInfo: {"access_token":"102_rFSHU071OPq01ZFcPtHQfOpmRte80YkTwz8dw8YJRoSDYSPJwvqZLSlpM6f-Ddfws7P8rHH3SDOk_M69_IP8U8vLtUdqaMK3blIEW4xeWEndThjDCXdP9MJRlfkJEPdAHAZUF"}  
[uni-pay-co/ac1cc31b1773675651461182622/173ms/DEBUG] [getAccessToken] 使用缓存  
[uni-pay-co/ac1cc31b1773675651461182622/173ms/DEBUG] [wxpay-virtual] accessToken: 102_rFSHU071OPq01ZFcPtHQfOpmRte80YkTwz8dw8YJRoSDYSPJwvqZLSlpM6f-Ddfws7P8rHH3SDOk_M69_IP8U8vLtUdqaMK3blIEW4xeWEndThjDCXdP9MJRlfkJEPdAHAZUF  
[uni-pay-co/ac1cc31b1773675651461182622/175ms/ERROR] token required  
Error: token required  
    at new u.getOrderInfo (/tmp/function/@common_modules/uni-pay/index.js:33:113749)  
    at new u (/tmp/function/@common_modules/uni-pay/index.js:33:113303)  
    at e.createApi (/tmp/function/@common_modules/uni-pay/index.js:1:73525)  
    at Object.initWeixinVirtualPayment (/tmp/function/@common_modules/uni-pay/index.js:1:64046)  
    at service.initUniPayInstance (/tmp/function/service/pay.js:1144:28)  
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)  
    at async service.createOrder (/tmp/function/service/pay.js:329:24)  
    at async i.createOrder (/tmp/function/index.obj.js:170:13)  
    at async c (/tmp/function/__index.js:1:2736)  
    at async pr (/tmp/function/index.js:1:93894)  
请求响应状态: fail

预期结果:

不知道

实际结果:

上面的bug

bug描述:

点击上传公共模块与上传部署,皆显示上传成功,但是在开发者工具测试支付时,还是支付失败,在云函数日志里面看,显示的依旧是旧版本的报错

2026-03-17 00:04 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

这个 bug 反馈属于使用方式问题导致的疑似故障,而非平台缺陷。反馈内容完整性不足,且现有信息指向公共模块更新机制理解偏差。

反馈完整性评审

  • BUG 描述:描述了现象(上传成功但运行旧代码)和错误日志,但缺少关键上下文。未说明是阿里云/腾讯云/支付宝云,未提供 HBuilderX 版本、uni-pay 版本,也未说明是首次部署还是更新部署。
  • 复现步骤:缺失。仅提供了错误日志,没有具体操作步骤(如"修改代码后右键上传公共模块,然后测试"等)。
  • 预期结果:填写"不知道"属于无效信息,无法判断业务预期。
  • 实际结果:提供了云函数日志,显示 token required 错误,但用户主观判断这是"旧版本报错"。
  • 分类信息:完全缺失。未包含运行平台(阿里云/腾讯云)、服务空间 ID、uni-pay 版本号等。

问题分析与判定

根据知识库 云函数公用模块 的明确说明:

如果要更新所有依赖某公用模块的云函数,可以在 common 目录下的公用模块目录右键选择 更新依赖本模块的云函数

uni-pay 作为公共模块(@common_modules/uni-pay),在被 uni-pay-co 云对象依赖时,存在以下机制:

  1. 公共模块与云函数是分离的:上传 uni-pay 公共模块后,依赖它的 uni-pay-co 云对象不会自动感知变更。
  2. 必须触发依赖更新:需要右键点击 uni-pay 公共模块目录,选择"更新依赖本模块的云函数",或者手动重新上传 uni-pay-co 云对象,否则云端运行的仍然是旧版公共模块代码。

这与优先知识库中的案例 【紧急报障】uni-config-center 修改后上传未生效 属于同类问题:修改公共模块后未同步更新依赖方,导致线上运行旧代码

关于 "token required" 错误

日志显示错误发生在 initWeixinVirtualPayment 阶段,位于 uni-pay 公共模块内部。若代码确为旧版本,可能是旧版逻辑对 wxpay-virtual 的配置校验或初始化流程存在缺陷;若代码已更新但配置错误,则是 uni-pay 配置中缺少必要的 tokensecret 字段。但无论如何,首要解决的是确保代码更新生效

建议补充的信息

为定位是代码未更新还是配置错误,请补充:

  1. HBuilderX 版本号(如 5.03)及 uni-pay 插件版本(如 2.4.1)
  2. 服务空间类型(阿里云/腾讯云/支付宝云)及空间 ID
  3. 具体操作步骤:是否修改了 uni-pay 公共模块代码?上传后是否执行了"更新依赖本模块的云函数"?
  4. uni-config-center/uni-pay/config.jsonwxpay-virtual 相关配置片段(脱敏后)

立即尝试的解决方案

基于知识库内容,请按以下步骤操作:

  1. 更新依赖:在 HBuilderX 中,右键 uni_modules/uni-pay(或 cloudfunctions/common/uni-pay)目录 → 更新依赖本模块的云函数,确保 uni-pay-co 引用最新代码。
  2. 重新上传云对象:或者直接在 uni-pay-co 云对象上右键 上传部署(选择"使用阿里云 Node.js 18"等选项),强制刷新。
  3. 清理缓存:若上述步骤无效,尝试在 uniCloud Web 控制台 → 云函数列表 → 找到 uni-pay-co → 点击重启清除缓存(如有)。
  4. 验证版本:在云函数日志中打印 uni-pay 版本号(如修改公共模块在入口打印版本标记),确认是否为最新代码。

如执行上述步骤后仍显示旧代码,或 token required 错误依然存在,请提供上述补充信息以便进一步排查。

内容为 AI 生成,仅供参考

要回复问题请先登录注册