易者
易者
  • 发布:2025-01-08 12:31
  • 更新:2025-01-08 13:23
  • 阅读:109

【报Bug】【重大问题】抖音和支付宝的SDK在uniCloud阿里云上的安装问题

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

参看bug描述

预期结果:

希望能正常使用

实际结果:

参看bug描述

bug描述:

两个SDK的官网链接如下:

  1. 支付宝Alipay SDK
  2. 抖音OpenAPI SDK

uniCloud服务端的nodejs版本用的是uniCloud阿里云当前已安装的最新版20.10.0。

支付宝SDK升级alipay-sdk v3 到 v4 时,用NPM下载了官网的源文件后,上传到uniCloud报错找不到index文件,无法上传安装,把package.json文件中的一些路径中的./符号删去后可以正常安装依赖,但用支付宝官网提供的方式引用SDK就报错ReferenceError: MessagePort is not defined,加不加.default都一样,用回V3版又正常。这个问题之前在dcloud论坛发过,原帖是uniCloud升级Alipay SDK版本后报错,但很多天没回应,无奈只好多次发帖,甚至提交bug。

抖音SDK用NPM下载了官网的源文件后,上传到uniCloud也报错The file "index.js" cannot be found,自建空白index.js文件后提示上传成功。然后再用抖音官网的使用方式测试SDK,报错Cannot find module 'open_api_sdk'
Require stack:……

支付宝SDK引用方式尝试过以下几种:

  1. const AlipaySdk = require('alipay-sdk');
  2. const {AlipaySdk }= require('alipay-sdk');
  3. const AlipaySdk = require('alipay-sdk').default;
  4. const {AlipaySdk} = require('alipay-sdk').default;

在本机的Node.js的v22.12.0版本的Express 框架里用第2种方式可以正常使用支付宝SDK v4。

抖音SDK引用方式尝试过以下几种:

  1. const Client, {MessageGetUserMessageRequest} = require('open_api_sdk');
    const CredentialClient = require('open_api_credential');
  2. const {Client, MessageGetUserMessageRequest} = require('open_api_sdk');
    const CredentialClient = require('open_api_credential');

以上方式在uniCloud阿里云上使用都不行。我前些天在支付宝社区发帖请教此事,有说新版本的运行环境不支持Web Worker特性的,也有说可能新版本的SDK不完全兼容Node.js环境的,我很是迷茫,不知所措,但又急用。

这个问题在Dcloud社区发帖多次,包括提交bug,从去年12月9号提出uniCloud阿里云默认的node.js版本问题到现在,一个月至少发了5篇帖子了,这5篇帖子中,只有第一篇帖子提出的uniCloud阿里云默认的node.js版本问题得到了解决,从18提升到20,但SDK的问题重复发了4篇帖子,在将近一个月的时间只潦草回复了一次,而且回复了一半没下文了,依然没有解决方案,请问是要劝退使用uniCloud吗?哪怕一时半会儿没有解决方案,回复及时一点儿也行啊。

2025-01-08 12:31 负责人:DCloud_uniCloud_CRL 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

稍等,我再给您call一下

  • 易者 (作者)

    好的,非常感谢!

    2025-01-08 13:25

要回复问题请先登录注册