🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
盛事通扫码功能逻辑: 微信或者盛事通app扫描用户盛事通“亮身份”二维码,获取字符串标识,调取盛事通接口,获取用户信息 ### 获取用户信息 接口 ~~~ 测试环境:http://wanglanglang.tripln.top/api/uc/mobile/shopUserService/selectShopUserByEcQrCode?id=字符串 正式环境:https://shengstapi.tripln.top/api/uc/mobile/shopUserService/selectShopUserByEcQrCode?id=字符串 ~~~ ### 微信扫码 ~~~~ 微信端调用扫码 (微信官方文档) https://developers.weixin.qq.com/miniprogram/dev/api/device/scan/wx.scanCode.html wx.scanCode({ success (res) { console.log(res) } }) ~~~~ ### app扫码 ~~~ 引用js-sdk(npm install hd-app-js-sdk -S) 详细文档:https://ihavenolimitations.xyz/star409964/hd-standard/2491762 1.H5端在需要扫码功能的时候调用此方法 2.App端识别二维码或条形码成功后会自动收回扫码界面,然后将扫码结果字符串作为参数执行接下来的回调 3.如果扫码组件出现错误或异常会走promise的resolve方法。H5根据错误码进行后续的业务,错误码对照表如下 1000 通用性失败错误码,不确定问题出在哪里,但就是所期望的结果未达成。 1001 用户主动取消操作,比如用户主动点击了返回按钮等用户主动中断业务流程的情况。 1002 用户未授权相关操作的系统权限,比如说询问是否可以使用手机相机的时候点击了“否”。 1003 接口错误,与此业务相关的接口,没有按照约定返回可以达成业务的返回值,导致业务处理失败。 1004 SDK错误,如果此业务需要调用相应的SDK来完成,在调用SDK的过程中出现SDK的错误会返回此错误码。 1005 用户操作不规范所导致的错误,比如说用户未按照人脸识别功能的要求做完相应的动作,导致业务无法继续的问题。 1006 App代码级别出现错误或异常导致业务无法进行。 this.$hdsdk.scanQrCode().then(r => console.log).catch(r => console.error) ~~~ ### 例子 ~~~ 例子: scanQRCodes() { const ua = window.navigator.userAgent.toLowerCase() //判断当前浏览器是微信,else是其他浏览器 if (ua.match(/MicroMessenger/i) == 'micromessenger') { // 封装微信签名方法 this.$common.wxCallBack(() => { wx.scanQRCode({ needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有 success: (res) => { const result = res.resultStr // 获取用户信息 this.shopUserById(result) }, error: function(res) { alert(res) } }) }) } else { console.log('调用sdk扫码') this.$hdsdk.scanQrCode().then(ret => { if (!!ret && ret.code == 0 && !!ret.data && !!ret.data.scanResult) { // 获取用户信息 this.shopUserById(ret.data.scanResult) } else { alert(ret.codeDescription) } }).catch(res => { console.log(res) }) } } ~~~