小程序对接三方插件契约锁
1.申请插件
在开始开发前,需要先申请契约锁小程序插件的使用权限,开发者需要登录自身小程序管理后台,在”设置-第三方服务-插件管理“中添加小程序插件,通过如下
appId:wxaf8f505686ddf66a
匹配到插件后添加即可提交申请。
2.引入插件,也可在分包目录下引入,在主包内引入可能会超两兆,version,版本号,注意要使用最新的,否则有些新功能无法使用。
{ ... "plugins": { "qyssdk-plugin": { "version": "1.0.30", "provider": "wxaf8f505686ddf66a" } } ... }
3.插件调用
契约锁小程序插件以插件页面的形式为对接方小程序提供服务,可通过如下方式进入插件页面,用户在插件页面完成对应操作后,会自动跳回到跳转前的小程序页面,也支持指定跳转页面。
以下为一次签署成功方案 ,如果是认证后,重新签署需要自己和后端判断下
// page 插件页面入口:doc(合同签署入口),enterprise-auth(企业认证入口),personal-auth(实名认证入口) // env 环境参数:com(生产环境),cn(测试环境),默认为生产环境 // ticket 由开放平台接口获取的插件页面令牌,请注意获取的令牌需与插件页面入口对应使用 let page = 'doc'; let page2 = 'doc'; let env = 'cn'; let ticket = ''; let ticket2 = ''; // 调用接口 拿到认证令牌 this.$api .post(global.apiUrls.post6413da25043e6, { order_sn:this.model.order_sn }).then(res => { res = res.data; ticket = res.data.href; let eventChannel = null; // 跳转签署页面 uni.navigateTo({ url: `plugin://qyssdk-plugin/doc?ticket=${ticket}&env=${env}&hasCb=true`, events: { signSuccessCb: () => { // 签署成功回调 const url = ''; // 需要跳转的小程序页面地址,必须是绝对路径,可不传 eventChannel.emit('jumpTo'); // 触发跳转逻辑,回调存在时必需调用,url不传默认返回 }, authSuccessCb: (e) => { console.log(e, '实名认证成功'); // 实名认证成功 重新再获取签署令牌 this.$api .post(global.apiUrls.post6413da25043e6, { order_sn:this.model.order_sn }).then(restow => { restow = restow.data; ticket2 = restow.data.href; // 跳转签约页面 签约完会自己返回 eventChannel.emit('jumpTo', `plugin://qyssdk-plugin/${page2}?ticket=${ticket2}&env=${env}&hasCb=true`, { signSuccessCb: (openedEventChannel) => { openedEventChannel.emit('jumpTo'); }, authSuccessCb: (openedEventChannel) => { openedEventChannel.emit('jumpTo', '/tabbar/mine/mine'); }, authFailCb: (openedEventChannel) => { openedEventChannel.emit('jumpTo', '/subpackages/mine/settings'); }, }); }) }, authFailCb() { // 认证失败回调 console.log('authFail'); const url = '/pages/order/orderdetail/order-detail/index'; // 需要跳转的小程序页面地址,必须是绝对路径,可不传 eventChannel.emit('jumpTo'); }, }, success(res) { console.log(res) eventChannel = res.eventChannel; }, }); })