DCloud_UNI_Anne
DCloud_UNI_Anne
  • 发布:2021-11-05 16:37
  • 更新:2023-09-18 15:31
  • 阅读:12345

uni-app开发多端之云闪付小程序

分类:uni-app

本文以 H5 平台为基准,引入云闪付 jssdk,通过将uni-app发布到云闪付小程序,演示如何使用uni-app开发云闪付小程序。

扩展云闪付小程序平台

创建uni-app项目后,在项目根目录下新增或修改 package.json 自定义基座平台,在根节点下新增如下扩展配置:

    "uni-app": {    
        "scripts": {    
          "mp-unionpay": {  
                "title": "云闪付小程序",  
                "env": {  
                    "UNI_PLATFORM": "h5"  
                },  
                "define": {  
                    "MP-UNIONPAY": true  
                }  
            }  
        }    
    }

引入云闪付 jssdk

接入方使用云闪付 APP 小程序前端 API 前,需在调用页面(必须为 https )引入插件 upsdk.js 文件,https://open.95516.com/s/open/js/upsdk.js

在项目根目录增加或修改 template.h5.html 引入云闪付 jssdk :

<script src="https://open.95516.com/s/open/js/upsdk.js"></script>

隐藏内置导航栏

在项目根目录 pages.json 隐藏内置导航栏

"pages": [  
        // pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages  
        {  
            "path": "pages/tabBar/component/component",  
            "style": {  
                "navigationStyle":"custom"//custom即取消默认的原生导航栏  
            }  
        },  
    ]

使用 jssdk 设置导航栏

upsdk.js 引入后需在页面使用 upsdk.pluginReady 进行 sdk 初始化,前端接口的调用建议在其回调函数中使用。

pages/tabBar/component/component.vue 页面使用 jssdk 设置导航栏样式和标题:

    onLoad() {  
        // #ifdef MP-UNIONPAY  
        upsdk.pluginReady(function() {  
            // 前端API调用     
            upsdk.setTitleStyle({  
                // 可选,导航栏(含状态栏)背景色及透明度。16进制,前2位(8F)透明度,后六位(FFFFFF)颜色,仅对当前页有效,其余页还是申请配置的导航默认颜色  
                navBackgroundColor: '0x8FFFFFFF',  
                appletStyle: 'black', //可选,black-黑色主题,white-白色主题  
                backBtnVisible: '0', // 可选,左侧返回按钮是否显示。'0'不显示,'1'显示,不传或空则默认显示  
                appletTitleBarVisible: '1', // 可选,标题栏是否显示。'0'不显示,'1'显示,默认显示  
                appletTitleGradientOrient: 'top', // 可选,渐变色方向,支持top、bottom、left、right  
                appletTitleGradientStartColor: '0x8FFFFFFF', //渐变起始颜色  
                appletTitleGradientEndColor: '0x88888888' //渐变结束颜色  
            });  
            //设置导航栏标题,居中显示。  
            upsdk.setNavigationBarTitle({  
               title: '设置云闪付标题'  
            });  
        });  
        // #endif  
    },

运行到云闪付小程序

HBuilderX 会根据 package.json 的扩展配置,在运行菜单下,生成云闪付小程序菜单,如下图:

点击云闪付小程序菜单,运行到h5

发行云闪付小程序

同样,HBuilderX 会根据 package.json 的扩展配置,在发行 -> 自定义发行菜单下,生成云闪付小程序菜单,如下图:

详见云闪付小程序官方文档

1 关注 分享
唐家三少

要回复文章请先登录注册

2***@qq.com

2***@qq.com

您好,用uniapp运行的云闪付小程序,提示 请确定是否运行在云闪付APP中,且成功加载了upsdk.js 是因为没在云闪付app环境吗
2022-08-30 17:57
ltl110

ltl110

回复 ltl110 :
已解决,不能用官网上VUE的方式去授权
2022-08-03 18:31
ltl110

ltl110

回复 DCloud_UNI_Anne :
一直报下面的错,文档看了,DEMO也参考了,一模一样,还专门创建了个VUE项目测试,是可以获取到手机号code的,就是在uniapp不行。。。
[Vue warn]: Error in v-on handler: "TypeError: Cannot read property 'id' of null"
found in
---> <UPButton>
2022-08-03 15:47
DCloud_UNI_Anne

DCloud_UNI_Anne (作者)

回复 ltl110 :
具体什么报错呢?[参考云闪付文档](https://opentools.95516.com/applet/#/docs/develop/oauth)
2022-08-03 14:50
ltl110

ltl110

大佬怎么能授权后能获取到手机号?我这边不管是点拒绝还是同意,一直报错,不会进入回调函数
2022-08-03 09:54
魔方AI

魔方AI

https://toscode.gitee.com/openunionpay/oauth-uniapp-demo demo
2022-06-16 10:36
4***@qq.com

4***@qq.com

回复 DCloud_UNI_Anne :
谢谢大佬回复,现在可以了,刚开始html文件位置弄错了。现在遇到一个新的问题如果要测试授权登录怎么测试呢?要打包放到服务器上才能测试吗
2022-04-28 18:25
DCloud_UNI_Anne

DCloud_UNI_Anne (作者)

回复 4***@qq.com :
云闪付 jssdk引入了吗?
2022-04-28 16:40
4***@qq.com

4***@qq.com

Error in onLoad hook: "ReferenceError: upsdk is not defined" 用Hbuilder运行到云闪付小程序报这个错是啥原因啊
2022-04-28 16:28
cc_dalao

cc_dalao

怎么区分H5和云闪付小程序环境呢
2022-03-20 11:29