截至目前,抖音小程序一共提供了四套交易系统,根据行业类别不用需要接入对应的行业解决方案。其中工具/内容消费行业是使用新版本【通用交易系统】支付能力的tt.requestOrder
代替了旧版本【担保交易】支付能力的tt.pay
,表现形式上就是直接唤起聚合支付宝/微信/抖音支付的原生收银台。
但由于【通用交易系统】属于行业开放能力,除了正常的开发实现,接入的时候需要新增一个行业SDK权限
配置。
如果没有配置行业SDK权限
,或者配置不正确,会有什么样的表现呢?
行业权限异常的丑态
- 如果你打开抖音后,直接进入你的小程序,不管是刷十分钟还是直接唤起收银台支付,大概率是支付失败,无法唤起的。
- 如果你打开抖音后,刷10秒左右的视频或者先打开一个其他的小程序,之后再进入你的小程序,这时候大概率可以成功唤起收银台进行正常支付。
错误码示例
错误码示例格式如下:
{
"errMsg": "pay:fail Fail to get order info, 支付失败,请稍后重试 2010",
"errNo": 10401,
"errorCode": 10003,
"errorType": "D"
}
问题剖析
非官方说明:如果你的小程序正确配置行业SDK权限
,在你的小程序加载时,抖音会默认预加载对应的行业SDK
,这样你无论何时唤起收银台,SDK都是可以正常使用的。但是如果没有正确配置,就需要看缘分啦,这个时候能不能唤起收银台就是个概率问题。
那么应该如何正确配置行业SDK权限呢?
配置行业SDK权限
官方文档中描述,在
package.json
文件正确配置后,上传完成即可。实际测试中,上传完成后并提审当前版本,无需通过审核(可撤销审核)即可更新线上小程序的行业SDK加载权限。详情可查看官方文档:配置行业 SDK 的权限
抖音小程序原生开发
1、只需要在package.json
文件中新增"industrySDK": true
。
2、第一次配置保存后,重启IDE。
3、编译代码并上传。无须通过审核,线上小程序即可更新行业SDK加载权限。
uniapp/taro等三方框架开发
1、在HbuilderX/Cli命令中进行发行编译。
2、在抖音开发者工具中打开混合编译后的产出代码(也就是我们日常要进行的上传操作的前置步骤)。
3、退出工具的Lite模式
,打开编辑器
面板,在根目录新建package.json
文件。
4、在package.json
文件中加入"industrySDK": true
。
{
"industrySDK": true
}
5、为了保险起见,我们遵循官方说明,保存并重启IDE。
6、上传代码,并去开发者中心
控制台提交审核。顺利的话,几分钟后线上小程序的行业SDK权限就配置成功了。
7、这个代码提审版本审核要不要撤销,完全就取决于你自己的实际情况啦。
那么,我们是如何查看是否成功配置行业SDK权限了呢?我们可以根据官方文档自查。
查看行业SDK权限是否配置成功
1、在Android手机上打开你的抖音小程序,点击右上角的【…】按钮。
2、在打开的半屏弹窗中,点击你的小程序名称【爱情的纹理】,进入到【关于】界面。
3、在【关于】界面连续点击10次小程序icon图标下方的小程序名称。
4、不要管连续点了10次还是20次,知道在底部的空白区域出现了一些小程序相关信息。其中只要包含了industrySdkVersion字段,就代表配置成功了。
uniapp发行编译自动生成package.json
文件
我们在uni-app(Vue2)自定义条件编译平台,动态配置修改小程序appid的文章中为了动态修改发行的小程序appid,已经修改了vue.config.js
文件。那么这次呢,我们继续是在这个配置文件里面添加自动生成package.json
的逻辑。
module.export = {
chainWebpack: config => {},
configureWebpack: {
plugins: [{
apply: (compiler) => {
compiler.hooks.done.tap('GeneratePackageJson', (stats) => {
if (process.env.UNI_PLATFORM === 'mp-toutiao') {
const outputPath = stats.compilation.outputOptions.path;
const packageJsonPath = path.join(outputPath, 'package.json');
const packageJsonContent = JSON.stringify({
industrySDK: true
}, null, 2);
fs.writeFileSync(packageJsonPath, packageJsonContent);
console.log('Generated package.json for Douyin Mini Program');
}
});
}
}]
}
}
补充说明:在非严谨的官方社区问答中,看到有"industrySDK": true只需要配置上传一次即可
的说明。但是不确定是否如此,因此每次编译uniapp代码发行生成抖音小程序代码包后都自动生成了package.json
文件。
uniapp项目环境
HBuilderX: 4.15
Vue版本: 2.x
已实现平台: 微信小程序/抖音小程序/快手小程序
写在最后
相关文章: uni-app(Vue2)自定义条件编译平台,动态配置修改小程序appid
参考文档: 通用交易系统接入问题汇总
参考文档: 配置行业 SDK 的权限