- 小程序备案主体负责人只需要一次手机验证码,后续短信接收等会涉及主体负责人吗?
工信部短信等都发到小程序负责人手机?核验也由小程序负责人完成吗?
2023-10-11 - (21)独立分包与分包预下载
在「小程序 · 小故事」的第一期,我们曾和大家一起分享过「分包加载」的故事。随着小程序功能越来越多样,页面也越来越多,但不同页面的访问频率是有一定差异的。 分包加载允许开发者将小程序划分为主包和若干个分包,将较少用到的页面或功能划分到若干个分包中,主包内只保留最频繁使用的页面和公共的代码。小程序启动时默认只加载主包,再按需加载分包。这一机制保证了在小程序包大小增加的情况下,依然能保持良好的启动速度。 为满足小程序承载的功能不断丰富的需要,小程序的代码包大小上限已提高到 8M。随着小程序应用场景和使用范围的扩大,在实践中,我们发现分包加载仍有一定的局限性。尤其是越来越多的 H5 服务迁移到小程序后,对于小程序的启动速度有更高要求。为了更好的提升小程序的加载速度和使用体验,小程序近期开放了「独立分包」和「分包预下载」两个新的能力,进一步丰富了分包加载的功能和使用场景。 01独立分包 1 技术背景 由于技术实现的差异,小程序首次启动时需要进行代码包的下载,因此在启动性能上与网页相比有一定劣势。通过对小程序启动耗时的分析,我们发现代码包大小对小程序启动速度是有最直接的影响。 一方面,代码包越大,下载时间就越长; 另一方面,代码包越大,通常意味着小程序页面结构和代码逻辑复杂,启动时代码注入执行的时间越长。 采用分包加载一定程度上解决了代码包下载耗时过长的问题。但小程序中的某些场景(如广告页、活动页、支付页等),通常功能不是很复杂且相对独立,对启动性能有很高的要求。在现有方案中,启动这一页面需要依赖整个主包的下载,如果页面在分包中,还需等待分包的下载,启动性能有严重的瓶颈。此时如果依赖开发者进行代码重构,重新分包,不仅工作量大,而且会影响其他分包的使用体验。为了解决这一问题,我们提出了「独立分包」方案。 2 功能简介 独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行。从独立分包中页面进入小程序时,不需要下载主包。当用户进入普通分包或主包内页面时,主包才会被下载。 开发者可以将部分对启动性能要求很高的页面放到特殊的独立分包中。当小程序从独立分包页面启动时,只需要下载分包就可以直接运行,可以很大程度上提高分包页面的启动速度,实现小程序的秒开。 [图片] 由于小游戏中没有页面的概念,也没有小程序中多种入口的使用场景,因此小游戏目前没有支持独立分包。 3 配置方法 独立分包的配置方法十分简单,只需要在原有分包配置的基础上定义 independent 字段,即可将一个分包设置为独立分包,例如: [图片] 4 使用限制 独立分包虽然属于分包的一种,但其不依赖主包独立使用,因此在加载流程和运行环境上与普通分包相比有一些差异。除了分包本身的限制外,独立分包还有以下限制: ● 独立分包中不能依赖主包和其他分包中的内容,包括 js 文件、模板、wxss、自定义组件等; ● App 只能在主包内定义,独立分包中不能定义 App,会造成无法预期的行为; ● 独立分包中暂时不支持使用插件。 为了小程序有更好的使用体验,我们不建议开发者把过多的小程序逻辑放置到独立分包中,也不建议在小程序中过度的使用独立分包,例如把每个页面都放到一个独立分包中。 关于独立分包的详细内容请参见 独立分包 · 小程序 02 分包预下载 1 技术背景 在使用「分包加载」后,虽然能够显著提升小程序的启动速度,但是当用户在使用小程序过程中跳转到分包内页面时,需要等待分包下载完成后才能进入页面,造成页面切换的延迟,影响小程序的使用体验。分包预下载便是为了解决首次进入分包页面时的延迟问题而设计的。如果能够在用户进入分包页面之前就预先将分包下载完毕,那么进入分包页面的延迟就能够尽可能降低。 此前,小游戏中已经提供了「基于API」的分包预下载能力。在设计小程序分包预下载能力时,我们设计了「基于配置」和「基于API」两种分包预下载形式,「基于配置」的方式使用简单,且便于对预下载的使用情况进行控制,防止开发者滥用;「基于API」的方式使用起来更灵活,能够动态的调整预下载策略。综合考虑用户的使用感受和内测阶段第三方开发者的反馈后,我们最终决定首先推出「基于配置」的分包预下载能力。 2 功能简介 开发者可以预先配置某个页面可能会跳转到的分包(对于独立分包,也可以预下载主包),在进入小程序某个页面时,由基础库在后台自动预下载可能需要的分包。用户在进行页面跳转时,分包通常已经下载完成,不需要额外等待,可以有效提升进入后续分包页面时的启动速度。此外,考虑到用户的流量和存储空间,小程序也会对预下载的大小和网络进行一定的限制。 [图片] 3 配置方法 开发者可以通过在 app.json 中增加 preloadRule 字段,控制进入某个页面时进行预下载的分包,并设置触发预下载的网络环境。 [图片] [图片] 4 使用限制 对于手机用户而言,数据流量和存储空间是非常重要的资源。一方面,分包预下载能够提升小程序用户的使用体验;另一方面,过度的预下载也会破坏分包按需使用的原则,过度的占用用户的存储空间,消耗数据流量。如果开发者每次启动小程序时都将所有分包进行下载,会消耗很多不必要的流量和存储空间。 为了在分包预下载的效果和对用户资源的消耗上取得平衡,我们限制了同一个分包中的页面预下载总大小不得超过2M,并鼓励开发者按需设置分包预下载的网络条件。 关于独分包预下载详细内容请参见 分包预下载 · 小程序 03 小结 独立分包与分包预下载进一步丰富了分包加载的功能,大大拓展了分包加载的使用场景。同时,独立分包和分包预下载是相辅相成的,配合使用可以获得更好的效果。 例如,开发者可以将一个活动推广页放到一个独立分包中,利用独立分包的特性能够提升活动页面的加载速度,提升转化率。在页面中开发者可以引导有需要的用户跳转到小程序其他页面,使用小程序的更丰富的功能。在这一过程中,可以利用分包预下载能力,将主包或相关分包进行预下载,降低页面跳转的延迟,留住更多用户。 开发者在使用这两个新能力的过程中,如果遇到问题或者有什么建议,欢迎在微信开放社区(https://developers.weixin.qq.com)进行反馈,我们会根据开发者的反馈,不断的优化和丰富分包加载功能,减少功能限制,提升小程序的加载性能和使用体验。
2018-10-14 - 如何彻底解决小程序滚动穿透问题
背景 俗话说,产品有三宝:弹窗、浮层加引导,足以见弹窗在产品同学心目中的地位。对任意一个刚入门的前端同学来说,实现一个模态框基本都可以达到信手拈来的地步,但是,当模态框里边的内容滚动起来以后,就会出现各种各样的让人摸不着头脑的问题,其中,最出名的想必就是滚动穿透。 什么是滚动穿透? 滚动穿透的定义:指我们滑动顶层的弹窗,但效果上却滑动了底层的内容。 具体解决方案分析如下: 改变顶层:从穿透的思路考虑,如果顶层不会穿透过去,那么问题就解决了,所以我们尝试给蒙层加catchtouchmove,但是发现部分场景无效果,那么就不再赘述了。 改变底层:既然是顶层影响了底层,要是底层不会滚动,那就没这个问题了。 如何改变底层解决该问题呢? 不成熟方案: 底部页面最外层view设置position: fixed;页面不可滚动,但是这个时候会导致页面回到顶部。 滚动时监听滚动距离,弹窗时记录滚动位置,关闭弹窗后使用wx.pageScrollTo回滚到记录的位置。 成熟方案 使用page-meta组件,通过该组件我们可以操作Page的style样式,类似于h5里body设置overflow: hidden; 控制页面不可滚动。文档地址:https://developers.weixin.qq.com/miniprogram/dev/component/page-meta.html 使用wx.setPageStyle设置overflow: hidden, 也可以实现给Page组件设置样式。) page-meta组件: 通过该组件我们可以直接操作[代码]Page[代码]组件 ,我们给它的wxss样式overflow动态设置[代码]hidden[代码]or[代码]visible[代码]or[代码]auto[代码] 就可以控制整个页面是否可以滚动。 [图片] wx.setPageStyle方法: 调用这个api,动态设置它为hidden/auto,用于控制页面是否可滚动,主要用于页面组件内使用,比如封装好的弹窗组件,就不用单独写page-meta组件了。。 [代码]wx.setPageStyle({ style: { overflow: 'hidden' // ‘auto’ } }) [代码] 老规矩,结尾放代码片段: https://developers.weixin.qq.com/s/U6ItgQmP7upQ 拓展 支付宝小程序虽然存在page-meta组件,但是由于内核为69版本,给page设置overflow: hidden 也无法控制底部元素不可滚动,目前已联系支付宝的底层开发同学提供API控制页面disableScroll,目前正在封装Appx,近期开放。
08-06 - 微信小程序中的日期格式在Android和iOS真机下兼容性问题的坑
问题提出 Android和iOS在日期格式上的处理方式有所不同,这个不同也影响到小程序的相关日期时间函数,最常用的应该是new Date()了。如下代码: date=new Date(‘2020-01-16 22:00:00’).getTime(); 上面这行代码在Android和开发者工具(windows/mac)以及开发者工具的真机调试模式(iOS/Android)都不会有问题,但是一上到体验版或者正式版的iOS上手机你获取到的数据就不是你想要的值了! 原因分析 因为iOS只支持2020/01/01 这种日期格式,不支持2020-01-01这样的格式,而现在很多后端处理日期的格式是2020-01-01,发送过来的,或者自己小程序前端生成的也是这种格式,new Date()就会出现兼容性问题。 解决方法 直接替换大法吧,把-换成/,封装成一个自己的方法来new Date()吧。具体代码不用我写你也会的。 总结 这个问题前天一个社区的朋友发了一个相关的帖子,最后查实就是这个原因导致。但是解决这个问题的过程花费了太多时间。因为这个问题很难查出问题所在,因为他在开发者工具和安卓机,以及开发者工具的「真机调试」模式下都不会出现,隐藏得很深。
2020-01-16 - 小程序app.onLaunch与page.onLoad异步问题的最佳实践
场景: 在小程序中大家应该都有这样的场景,在onLaunch里用wx.login静默登录拿到code,再用code去发送请求获取token、用户信息等,整个过程都是异步的,然后我们在业务页面里onLoad去用的时候异步请求还没回来,导致没拿到想要的数据,以往要么监听是否拿到,要么自己封装一套回调,总之都挺麻烦,每个页面都要写一堆无关当前页面的逻辑。 直接上终极解决方案,公司内部已接入两年很稳定: 1.可完美解决异步问题 2.不污染原生生命周期,与onLoad等钩子共存 3.使用方便 4.可灵活定制异步钩子 5.采用监听模式实现,接入无需修改以前相关逻辑 6.支持各种小程序和vue架构 。。。 //为了简洁明了的展示使用场景,以下有部分是伪代码,请勿直接粘贴使用,具体使用代码看Github文档 //app.js //globalData提出来声明 let globalData = { // 是否已拿到token token: '', // 用户信息 userInfo: { userId: '', head: '' } } //注册自定义钩子 import CustomHook from 'spa-custom-hooks'; CustomHook.install({ 'Login':{ name:'Login', watchKey: 'token', onUpdate(token){ //有token则触发此钩子 return !!token; } }, 'User':{ name:'User', watchKey: 'userInfo', onUpdate(user){ //获取到userinfo里的userId则触发此钩子 return !!user.userId; } } }, globalData) // 正常走初始化逻辑 App({ globalData, onLaunch() { //发起异步登录拿token login((token)=>{ this.globalData.token = token //使用token拿用户信息 getUser((user)=>{ this.globalData.user = user }) }) } }) //关键点来了 //Page.js,业务页面使用 Page({ onLoadLogin() { //拿到token啦,可以使用token发起请求了 const token = getApp().globalData.token }, onLoadUser() { //拿到用户信息啦 const userInfo = getApp().globalData.userInfo }, onReadyUser() { //页面初次渲染完毕 && 拿到用户信息,可以把头像渲染在canvas上面啦 const userInfo = getApp().globalData.userInfo // 获取canvas上下文 const ctx = getCanvasContext2d() ctx.drawImage(userInfo.head,0,0,100,100) }, onShowUser() { //页面每次显示 && 拿到用户信息,我要在页面每次显示的时候根据userInfo走不同的逻辑 const userInfo = getApp().globalData.userInfo switch(userInfo.sex){ case 0: // 走女生逻辑 break case 1: // 走男生逻辑 break } } }) 具体文档和Demo见↓ Github:https://github.com/1977474741/spa-custom-hooks 祝大家用的愉快,记得star哦
2023-04-23 - 《微信红包封面防掉坑指南》
不收藏好,2023年要用的时候你肯定找不到。 春节不经意间又悄悄溜走了,用不完的红包封面找谁退钱呀? 谁让你不用企业微信的红包皮?免费的 不废话了,下面汇总一下红包封面那些不该掉的坑! 收藏好,以免下一年又手忙脚乱;被同事嫌弃、被老板嫌弃、还被邻居的猫嫌弃… 最痛恨的是被收红包的人嫌弃! :( 一、规则坑 1、第一坑:用不完的红包封面不能退款。 2、第二坑:微信红包封面收费、企业微信红包封面不收费。 3、公众号发放红包封面的坑: 记得选下面两个 发放方式:领取链接 领取方式:一个链接多人领取 温馨提醒:如果在公众号中发放出去没有被领取完,可以在后台回收。 未发完的封面可通过封面兑换卡,兑换成其他样式的封面继续发放。 (这个值得点赞) [图片] 4、制作过程的坑。 因为很多公司都是用素材库,大概率不能通过审核。所以得让美工MM提前准备原创素材! 有预算的也可以请原画师设计一个独一无二的。 5、有效期的坑。 红包封面购买后,只有6个月的有效期。(为什么要跟移动、联通、电信学?不过还好了,不是一个月有效期。) 二、运营坑 众所周知,封面的图形元素是不能搞太多广告。所以设置小程序、公众号或视频号是运营方面 唯一的路。不知道怎么玩,可以先看看官方提供的案例。 https://cover.weixin.qq.com/cgi-bin/mmcover-bin/readtemplate?t=page/index#/case 1、小程序 封面故事 中关联注册主体的小程序。 2、公众号 封面故事 中关联注册主体的公众号。 3、视频号 封面故事 中关联注册主体的视频号。 [图片] 三、其它 1、除了以上,其实红包封面也可以在开发方面搞点事情。详看官方文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/redpacketcover/redpacketcover.getAuthenticationUrl.html 2、公众号发微信红包封面功能开通。 开通路径:公众号后台 >新功能>未开通>微信红包封面>去开通。 当然,必须已在微信红包封面开放平台注册好账号了。 最后放一下微信红包封面的登录链接: https://cover.weixin.qq.com/
2022-02-18 - 微信红包封面定制个人学习总结
一、创建账号目前有两条注册路线,分别是个人和企业。 个人:需先开通微信视频号并获得有效粉丝数100个,然后申请封面定制平台账号,用视频号管理员验证完成注册。 *有效粉丝数,个人猜测应该是系统按特定规则计算,会排除刷粉等异常数据,规则不会对外公开。 [图片] 企业:需注册公众号,并进行微信认证,然后申请封面定制平台账号,用公众号管理员验证完成注册。 [图片] *目前仅面向大陆境内的认证企业公众号,或已完成视频号认证的个人用户开放。 *且暂不对宗教、烟草、医疗、特殊医学用途配方食品、医疗器械、农药、兽药、保健食品及药品相关的主体开放。 二、封面定制个人定制:定制页面如下, [图片] [图片] 1,红包封面简称最多8个字,可以使用视频号名称,或自行命名。注意起名也需要提供相关证明材料。 2,个人LOGO支持PNG、JPG,尺寸是200*200像素,文件小于100KB。 虽然可以直接使用视频号头像,但如果你视频号头像图片是网图,也会管你索要版权证明的。 建议不使用LOGO,直接文字命名。 3,样式(即封面图片)封面图片直接使用一张图片即可,红包各个阶段的页面,都是从这一张图片中截取。 支持PNG、JPG,尺寸是957*1278像素,文件小于500KB。 注意第1张示例图底部的“开”字部分,会遮挡图片下面一部分内容。 第2张示例图,实际效果是可以下拉的,需要考虑下拉后的顶部显示内容,如果不合适还可以单独调整封面图上传。 第3张示例图、第4张示例图,可以直接编辑选择显示位置。 4,封面故事在红包打开后的红包详情页展示,该页下拉时,直接以图片或视频方式展示封面故事。 图片和视频,最多可设置5个,左右滑动观看效果。 图片支持PNG、JPG,尺寸是750*1250像素,文件小于300K。 视频支持MP4格式,编码是H.264/AVC,宽度≥720像素,宽高比是3:5-16:9之间,小于15秒时长,码率不高于1600kbit/s,文件小于10M。 同时支持用视频号上传素材。 故事的文字描述不得超过40个汉字。 个人号,支持跳转到视频号或表情封面; 暂时个人号没有跳转公众号或小程序的链接。 5,证明材料整个设计中,出现的名称、LOGO、图片等美术作品,以及涉及人像、字体等,都需要提供相关权属证明文件,以证明你有资格使用这些内容。 *涉及注册商标的,需提供《商标注册证》的扫描件或商标使用授权书(在授权情况下); *美术作品涉及著作权的,需提供《作品登记证书》或《著作权登记证书》的扫描件;没有证书的,需提供该作品的psd格式文件,或人民法院确认权属的法律文书,或其他能证明作品权利人的发表链接等; *涉及肖像权的,需提供图中人物的身份证明,如身份证正反面或护照等扫描件或照片;或提供肖像权授权书。其中授权人为图中涉及肖像的人,被授权人为微信红包封面开放平台注册者; *涉及版权的,需提供作品版权证明,如著作权登记证、作品登记证;或版权授权书,其中授权人为版权所有者,被授权人是微信红包封面开放平台注册者; 以及版权所有者主体证明,企业请提交合法营业执照电子版扫描件或照片,个人请提交身份证正反面或护照等身份证明扫描件或照片; 没有上述证书,需提供该作品的psd格式文件,或人民法院确认权属的法律文书,或其他能证明作品权利人的发表链接等; 如果涉及资料文件较多,可打包上传。文件需小于25M(实际定制页面目前写的是小于80M); 如果证明材料过大,可以写邮件发往wxcover_support@tencent.com(邮件名为【证明材料补充】+封面名称),并在提交审核时在「证明材料」处上传说明文档,列明发至邮箱的证明材料所包括的内容。 6,手机预览填完资料的封面,可以点击底部的“手机预览”按钮,手机扫描弹出的二维码,在手机上预览红包封面效果。 企业定制:和个人封面定制大体流程一致,只是在封面故事部分增加了小程序或公众号的跳转。 [图片] *可以关联企业主体下的小程序或公众号,其中小程序可以设置指定界面路径跳转。 三、封面审核1,审核周期原审核周期是1个工作日,后改为从1月2日起,至2021年2月26日,审核周期调整为3个工作日。 并且对特定情形的封面定制,会延长审核周期为1个月。 特定情形:(1)封面中存在外文、少数民族语言文字内容的,需要提供完整、准确的中文翻译。 (2)封面中存在任何宗教、民族、政治性质的图腾、人物、神兽、符号、法器等元素的,需要提供该等元素的详细说明。 2,审核标准肯定以官方实际审核为准。 从官方公开的审核标准中,个人归纳如下: 综合标准:(1)不违法;(2)符合未成年人保护标准;(3)不违背社会善良风俗或各民族感情;(4)格调健康,积极向上;(5)不得过度营销;(6)不能直接使用中国地图(除非相关部门授权);(7)除党政和事业机关账号,其他不可使用政治军事以及其他主旋律推广内容;(8)不能使用全网封杀人物肖像 直接标准:(1)必须确保有权使用;(2)在先原则(不可与已发布封面雷同); 3,提审数量最多可同时在审3款红包封面,待审核完成后可继续提交。 四、封面购买TODO 五、封面发放TODO 六、封面违规与侵权处理从官方原始购买后,定制方不得以任何形式向用户售卖微信红包封面。 TODO 七、相关参考资料*微信红包封面开放平台-帮助中心 https://cover.weixin.qq.com/cgi-bin/mmcover-bin/readtemplate?t=page/index.html#/doc?page=introduce&index=-1 *封面审核周期调整公告 https://cover.weixin.qq.com/cgi-bin/mmcover-bin/readtemplate?t=page/index#/notice_detail?id=1609588007_3773_1102306322 ====================================== 附:常见审核驳回原因整理1,所提交的封面素材和他人已发布的作品存在较高相似度,侵权风险较大。请提供早于他人作品发布时间的作品版权证明。 2,红包封面的图案应尽量避开头像、昵称、祝福语的区域。若无法避开,需避免图案过于复杂,影响文字识别。 3,需补充提供【XXXX公司/网站】享有著作权的证明材料。(即使你有其他平台的版权授权书也不行,需要他们著作权证明) 4,所提供的《XX图片授权书》中被授权方为【张三】,无法体现被授权方与【张三视频号】视频号之间的关系。请提供授权范围包含【张三视频号】视频号之红包封面定制场景的授权书后,再上传系统进行审核。(授权书需要有身份证号或其他证明,能让官方确认是授权给你,只有名字不行) 5,所提交的封面素材涉及版权,需提供《作品登记证书》或《著作权登记证书》的扫描件、作品源文件等版权证明材料。 6,PSD文件需要详细分层。 7,红包封面简称仅可以使用主体名称中的字号、公众号名称或注册商标名称。如使用注册商标请上传《商标注册证》的扫描件。可使用【XXX】等命名。 8,所提交的封面素材涉及他人的作品,需提供以下材料:1)《作品登记证书》或《著作权登记证书》的扫描件、作品PSD源文件等版权证明材料; 2)版权授权书(企业需盖章);3)版权所有者是个人的,需提供身份证正反面或护照等扫描件。 9,不可出现除企业字号、商标名称、企业价值观、祝福语以外的文字。 10,红包封面的背景色不可与微信红包的文字色相接近,影响昵称、祝福语的识别。需更换背景色后再提交。 11,所提交的企业logo涉及他人的作品,需提供以下材料:1)《作品登记证书》或《著作权登记证书》的扫描件、作品PSD源文件等版权证明材料; 2)版权授权书(企业需盖章);3)版权所有者是个人的,需提供身份证正反面或护照等扫描件。 12,仅可使用定制主体法人代表的肖像定制封面,需提供企业营业执照、法人代表实名信息(需本人手持身份证拍照),且该等情形的微信红包封面,审核期限将延长至一个月。 13,封面素材不可展示微信红包的固有元素,如祝福语、“开”按钮、用户昵称头像、弧形阴影等,需删除后再提交。 14,所提交的作品创作源文件无法充分证明你享有该作品的著作权,请补充其他证明材料,如作品的《作品登记证书》或《著作权登记证书》的扫描件等。 15,不可出现和他人已发表的作品雷同,或权利归属情况不明的内容(如未获得著作人合法授权的二次创作、同人作品等)。 16,发红包页、红包消息气泡、拆红包页、红包详情页的素材图需属于原始封面样式图的一部分,保持内容、风格、主题一致。 17,品牌logo仅可以使用你的注册商标,且需上传《商标注册证》的扫描件。如使用其他主体的注册商标,需提供有效的授权证明材料。若未注册商标或未取得授权,可删除品牌logo后再提交。 18,证明材料未上传成功,请重新提交。若文件过大无法上传,请将证明材料发邮件至wxcover_support@tencent.com(邮件名为【证明材料补充】+封面名称),可在邮件中留下你的联系方式,我们将与你联系。 19,不可出现真实的人名和地址信息。 20,仅可使用定制主体本人的肖像定制封面,请提供本人实名信息(需本人手持身份证拍照),且该等情形的微信红包封面,审核期限将延长至一个月。 21,建议调整封面中祝福语文案的位置,以免影响在其他机型或者大字体情况下的体验效果。 22,红包封面简称可使用微信视频号账号名称。如果使用其他名称命名,请提供相应的证明材料。 23,请提供有效的版权证明材料。应注意,根据《“微信红包封面”定制功能使用条款》第3.3.3条的约定:定制方不得以任何形式向用户售卖微信红包封面。 24,非党政机关事业单位,不可使用天安门、人民大会堂、华表等国家民族标志物。 25,所提交的《作品登记书》证明材料,需将登记的作品复印件一起上传。 26,所提交的封面故事视频音乐作品和他人已发布的作品存在较高相似度,侵权风险较大。请提供早于他人作品发布时间的作品版权证明。 27,不可包含直接或间接表明产品或服务或其特性的文字。(包括封面故事图片) 28,所提交的封面素材涉及他人的作品,需提供版权授权书,其中被授权人为微信红包封面开放平台注册者。 29,不可出现商品图、店铺图、服务内容截图等广告性质的内容。 30,需提供有拍摄信息的照片源文件。 (不断更新中...欢迎提供!欢迎点赞支持!) ====================================== 重要事项更新日志: *2021.01.20 更新封面故事跳转内容,增加了视频号和表情封面跳转。 *2021.03.23 移除了个人主体必须视频号认证要求。
2021-03-23 - 小程序如何连接 APP 和 H5
[视频] 微信提供了三大能力连接 APP 和 H5,首先,你可以使用静态网站 H5 跳小程序的能力实现网页到小程序的跳转。其次,你可以在APP中集成微信 SDK,可以调用接口实现由 App 到小程序的跳转。最后,如果在用户是从App跳转到小程序的,你也可以用小程序打开App的能力,来允许用户从小程序返回 APP,这尤其适用于异业合作或者员工内部管理的场景。 如何实现上述三个能力呢?欢迎查看文档。 静态网站 H5 跳小程序APP分享小程序卡片小程序打开APP
2022-09-22 - 小程序性能优化实践
小程序性能优化课程基于实际开发场景,由资深开发者分享小程序性能优化的各项能力及应用实践,提升小程序性能表现,满足用户体验。
10-09 - 使用JavaScript Profiler面板和静态依赖分析工具
[视频] 你好,我是李艺。 上节课我们学习了如何使用Performance面板和Memory面板以辅助定位代码的性能问题,这节课我们学习使用JavaScript Profiler面板以及静态依赖分析工具。 先看一下问题,微信小程序的代码包大小额度是有限的,有些文件,如果是这个项目里边实际上没有用到,这个开发者工具在编译的时候会自动帮助我们过滤,这是一种静态依赖的分析机制,当我们在微信开发者工具里面进行模拟器预览的时候或者是真机调试的时候,都可以看到已过滤多少文件这样的一个提示,便是静态依赖分析工具在发挥作用了,下面我们看这个项目实践。 首先看实践一:使用JavaScript Profiler面板查看JS代码的一个执行瓶颈。 这个面板它更直观,使用起来也更加的方便,如果调试区默认没有显示这个面板,我们还可以在调试区右上角有一个更多菜单,在那个地方可以开启,在面板里面它色块的宽度代表代码执行占用的时间,上下并排显示是这个函数调用栈的一个调用记录,如果色块它很窄,基本上就说明没有什么问题,说明JS它在执行的时候很快就执行完了;如果这个色块它比较宽甚至这个颜色它是红色的,比较靓丽,说明这个地方可能会存在隐患,我们需要多加注意。 在我们这个项目诊断里面有一个叫做dealWithListData这样的方法,它的执行大概用了10ms,这个执行时间基本上是ok的不算是耗时,一般而言我们在30以下甚至40以下基本上都不会有问题,当执行时间达到了60 70 80甚至100以上,这个时候就需要引起我们的重视了。我们从dealWithListData色块我们可以单击进去还可以跳转到对应的Sources面板,可以查看源码,这种调试方式方便我们定位出现性能瓶颈的代码在哪里,比这个Performance面板更加的直接,微信开发者工具在这个远程真机调试模式下也有这个Memory还有这个JavaScript Profiler,这些面板都存在,使用方式是类似的,下面我们看代码演示。 下面我们看实践一的代码演示。 这个面板默认的情况下可能没有开启,我们可以选择调试区的这个地方有一个更多菜单,选择它的More tools,然后在这个地方我们可以选择JavaScript Profiler单击它就可以启动了,启动以后我们可以开启录制,然后我们可以进行一些操作,比如说我们在这个地方进行页面的一些滑动,让它加载更多页的一个数据,当我们感觉可以的时候 我们就单击停止,停止以后我们可以看到这个地方它是有一个有一个分析结果出来的,我们可以选中某一部分然后进行放大,然后查看它具体的一个执行代码,比如在这个地方我们可以滑动操控板,可以进一步地将面板进行放大,上面这个我们可以查看它的执行信息,单击错了,单击到里面去了,我们可以再恢复一下,鼠标然后浮到这个上面,它其实就可以显示执行时间了,我们可以看到执行时间是142.5ms,在这个里面我们还可以看到具体的里面的函数名称,比如在这个地方我们刚才提到了dealWithListData也在这个地方,我们可以单击这个色块,单击这色块以后 它就可以跳转到我们指定的源码里面,这个就是我们代码里面源码对吧,如果是我们在面板里面感觉到某一块执行它比较耗时的话可以单击进去看它的一个表现 目前我们看一下我们秒表组件是使用哪个组件来运行的,看一眼是使用nw,我们单击秒表组件让它运行,再单击录制,然后停止 这个也停止,然后再查看数据,看一下秒表组件它的一个执行情况是不是很顺畅,总体而言这个地方它没有出现红色的倒三角,整体而言还是可以的,我们可以展开看它里面的具体的一个执行情况,像这有一个convertTimeStampToString,这个地方我们看到它执行时间是8.5ms,这个时间是相当短的,总体上时间总耗时大概也就是在Total Time等于8.5 这个时间还可以,我们可以选择相对长一点的,比如在这个地方,这个时间是大概是67点ms,这个是在42.5ms,这个面板我们前面提到了它的一个最主要的作用就是我们可以通过这个地方色块可以单击,去到我们Sources面板,可以查看我们的项目的对应的代码,更加方便我们去定位我们代码里边可能出现的一些问题,代码演示我们就说到这里。 下面我们看实践二:通过静态依赖分析工具查看代码包的大小。 这个工具可以在文档管理器里面打开,可以很直观地看出各个主包以及分包的一个大小,还有它们里边的组成,每个代码包里面体积较大的文件,占用的区域的面积也大,一眼我们就可以看出来,谁是我们代码包变大的一个罪魁祸首,从我们目前的项目的静态依赖分析结果来看,主包里面有四张静态的商品图片,占据了很大一部分,主包的代码包额度主要是被它们给浪费的,这一块稍后我们还要进行优化。 下面我们进行实践二的代码演示。 打开我们小程序的项目,调试区现在不需要可以关掉,打开静态依赖分析工具有两个途径,第一个途径就是在我们文档管理器这个地方,这地方有一个按钮可以单击以后就可以打开,我们就可以看到分析结果了,这个里边主包这个地方我们可以看到主包下面有goods4.png,这个文件大概是256KB对吧,它相当大 ,还有goods3 goods1,这些它区块最大,说明它们占用的在代码包里面占用的大小比重也是最大的,这个地方还可以刷新,刷新以后看刷新之后的一个结果,这是一个地方,另外还有一个地方就是在我们这个项目的详情面板里边,这地方在本地代码 后面有一个代码依赖分析,通过这个也可以打开这个工具,有时候我们会将这个标签页关掉,关掉以后我们可以通过这个文档管理器里面有一个类型,我们可以选择这个类型,随便切换一下这个类型就可以重新将这个标签页打开了,另外这个地方我们还可以看到它里面有一个无依赖文件,这个地方就是已经列出来了,在我们项目里面通过静态依赖分析,然后查出来的无依赖文件,基本上这些文件一般情况下我们可以删除的,排除在我们代码包的打包范围之外,代码演示我们就说到这里。 下面我们看实践三:使用packOptions.ignore选项忽略或者是添加目录。 这个项目大了以后有很多目录是小程序项目不需要打包的,这些目录或者是文件可以通过项目配置文件里面的一个叫做packOptions.ignore这样的一个配置节点把它们给忽略掉,有一些miniprogram目录下的一些文件,如果这个小程序它没有真实用到,在打包的时候也会被自动忽略,在使用静态依赖工具分析的时候,我们可以看到有哪些文件被忽略了,当我们需要将某些文件在这个项目里面动态使用的时候,还可以通过include配置节点将这些文件特意给它添加进去,下面我们看代码演示。 现在我们看一下实践三的代码演示。 首先我们看一下我们的最终的配置完成以后的配置文件里面的字段长什么样子,选择我们7.2.3的实例包,然后选择我们的项目配置文件,在这个地方我们可以看到这有一个packOptions这样的一个配置节点,整个这都属于它配置节点,然后我们可以把配置节点给它拷贝一下到我们目前的目录下面,在这个地方打开这个项目配置文件,可以将配置节点拷贝在这个地方,在这个里边它自动给我们删掉了,为啥自动把我们删掉了,它有些不太老实,这种情况将我们的小程序项目给它关掉,先把它关掉避免受它影响,关掉以后 然后我们把这个节点重新再拷贝进来,然后我们现在就可以审视一下我们这里面这些节点了。 它这每一个ignore的节点有两个字段,一个是value 一个是type,type有两个类型 一个是folder,一个是file,folder file,如果是folder的话,上面这个就是一个目录,如果是file就是单个的文件,在我们这个项目里面,我们看一下miniprogram里面的node_modules,这个目录是显然是不需要的,因为它是我们Node.js本身的,就是下载的模块所在的目录,当然这个目录其实我们也不要额外地去设置,因为本身微信开发者工具它在打包的时候这个目录它也不会打包。 还有像go_stopwatch在我们的当前的目录下,它也不需要 所以也可以忽略掉。还有server tools这些目录,我们现在tools目录还没有,但是如果写到这个地方其实也是可以的,还有在我们的这个文件里面可以复制出来一个,在我们这个项目里边有一些组件,index_addons里面就有很多这样组件,我们目前代码里面用到的是nw组件,如果是有组件我们不需要的话,比如说像stopwatch_go,如果我们不需要的话,我们可以在这个地方然后进行忽略的一个处理,这样就可以了,这个就是一个目录 然后将这个给它忽略,另外它有一个include,就是我们故意要将某些文件或者是目录给它添加进来,以防止被自动忽略,可以写到这个下面,语法跟上面也是类似的,改完以后我们就可以再次重新打开我们这个项目了,代码演示我们就说到这里。 最后总结一下,这一讲与上一讲所了解的性能分析工具都是为开发者服务的,在这个软件自测的时候,如果感觉某些操作比较卡顿,从代码上又看不出问题出现在哪里,这个时候我们就可以使用这些工具分析一下 查看分析结果,可以帮助我们找出真正的症结所在,启动性能也可以通过上面的工具进行分析,尤其是Profermance面板还有这个JavaScript Profiler面板,可以查看启动过程当中有哪些步骤,它浪费的时间较多,执行的时间较长,这节课我们就讲到这里。上面显示的这些网址是本课所涉及的文档地址。 点击查看开放文档: packOptions开发者工具「模拟器」和「调试器」开发阶段内存调优: 把一切都控制在最开始 这节课我们学习使用了JavaScript Profiler面板以及静态依赖分析工具,下节课我们学习断点调试,还有是关于Source Map和真机调试2.0功能的一些介绍。 最后看一下思考题,这里有个问题请你思考一下,在小程序项目开发里面,大多数一般问题,我们都可以直观地通过日志打印的这样的一种方式进行观察,当有错误发生的时候,我们可以很快地判断出来大概是哪里代码出现了问题并着手解决,但是有一些问题它比较棘手和隐蔽,它们的出现是违背我们目前对这个项目的认知的,俗话说反对自己是最难的,自己用心写出来Bug也是最难发现的,在这种情况下 我们应该如何快速地突破困境找到解决问题的关键矛盾,这个问题留给你思考一下,下节课我们一起来深入探讨一下。
2022-07-14 - 小程序人脸识别相关问题
a:官方的人脸核身接口是否有使用次数限制?接口暂无上限要求,普通用户人脸识别每天次数是在3-50次不等,针对部分高安全级别的业务的要求和配置,也会降低限制次数。b:官方的人脸核身接口是否收费,后台显示收费调用次数是什么作用?官方的人脸核身接口目前免费,后续是否收费请留意官方渠道。 人脸核身是有成本的,这里展示的是我们付费成本,也是希望告诉用户,我们协助承担了成本。 c:为什么人脸核身没有申请入口?人脸核身是有资质要求的,资质不符的暂时无法开通。具体请参考(注:一二级类目需完全符合)https://developers.weixin.qq.com/community/business/doc/000442d352c1202bd498ecb105c00d d:人脸识别返回90100|90105|90107|100102|90199|90101什么原因? 这是客户端的错误,请求没到后台的,有几点建议: 1、确认摄像头等权限是授予了;2、杀掉微信重启试试;3、下载更新微信客户端版本 e:getimage接口返回48001,提示没权限? 获取图片接口已经停止申请 f:小程序可以接入腾讯云的人脸核身吗? 可以的
2022-05-10 - 微信人脸核身接口能力
一、能力背景 近年来,国家在医疗挂号、APP注册、快递收寄、客运、运营商等多领域规定,需要用户实名才可办理业务,预计后续也会有越来越多的此类法规。因此,微信参照公安部“互联网+”可信身份认证服务平台标准,依托腾讯公司及微信的生物识别技术,建立微信“实名实人信息校验能力” ,即通过人脸识别+权威源比对,校验用户实名信息和本人操作(简称微信人脸核身)。 目前接口限定主体及行业类目开放公测,提供给资质符合要求的业务方,在合适的业务场景内使用。目前仅支持持二代身份证的大陆居民。 由于人脸核身功能涉及到用户的敏感、隐私信息,因此调用此接口的小程序,需要满足一定的条件。即:小程序的主体以及类目,需要在限定的类目范围内,且与小程序的业务场景一致。开展的业务也需要是国家相关法规、政策规定的需要“实名办理”的相关业务(其他未在范围内的业务,则暂不支持)。 以下为接口接入及开发的详细内容。如开发中遇到任何疑问,可以点击此处通过社区反馈,将有工作人员跟进回复。 文档第四部分【再次获取核验结果api】,有助于提高业务方安全性,请务必接入! 现阶段微信人脸核验能力,针对小程序,开放的主体类目范围包含: 小程序一级类目 小程序二级类目 小程序三级类目 使用人脸核验接口所需资质 物流服务 收件/派件 / 《快递业务经营许可证》 物流服务 货物运输 / 《道路运输经营许可证》(经营范围需含网络货运) 教育 学历教育(学校) / (2选1):1、公立学校:由教育行政部门出具的审批设立证明 或 《事业单位法人证书》;2、私立学校:《民办学校办学许可证》与《民办非企业单位登记证书》 医疗 公立医疗机构 / 《医疗机构执业许可证》与《事业单位法人证书》 医疗 互联网医院 / 仅支持公立医疗机构互联网医院(2选1):1、卫生健康部门的《设置医疗机构批准书》;2、 《医疗机构执业许可证》(范围均需含“互联网诊疗”或名称含“互联网医院”等相关内容 医疗服务 三级私立医疗机构 / 仅支持三级以上私立医疗机构,提供《医疗机构执业许可证》、《营业执照》及《医院等级证书》 政务民生 所有二级类目 / 仅支持政府/事业单位,提供《组织机构代码证》或《统一社会信用代码证》。 金融业 银行 / (2选1):1、《金融许可证》; 2、《金融机构许可证》。 金融业 信托 / (2选1):1、《金融许可证》; 2、《金融机构许可证》。 金融业 公募基金 / (4选1):1、《经营证券期货业务许可证》且业务范围必须包含“基金”;2、《基金托管业务许可证》; 3、《基金销售业务资格证书》;4、《基金管理资格证书》。 金融业 证券/期货 / 《经营证券期货业务许可证》 金融业 保险 / (8选1):1、《保险公司法人许可证》;2、《经营保险业务许可证》;3、《保险营销服务许可证》;4、《保险中介许可证》;5、《经营保险经纪业务许可证》;6、《经营保险公估业务许可证》或《经营保险公估业务备案》;7、《经营保险资产管理业务许可证》 ;8、《保险兼业代理业务许可证》。 金融业 消费金融 / 银监会核准开业的审批文件与《金融许可证》与《营业执照》 金融业 汽车金融 / 仅支持汽车金融主体,同时提供:1、《营业执照》(公司名称包含“汽车金融” ;营业范围包含“汽车金融”业务);2、《金融许可证》或银保监会及其派出机构颁发的开业核准批复文件 交通服务 网约车 快车/专车/其他网约车 (自营性网约车)提供《网络预约出租汽车经营许可证》。(网约车平台)提供与网约车公司的合作协议以及合作网约车公司的《网络预约出租汽车经营许可证》。 交通服务 航空 / (航司)提供《公共航空运输企业经营许可证》。(机场)提供《民用机场使用许可证》或《运输机场使用许可证》。 交通服务 公交/地铁 / 提供公交/地铁/交通卡公司《营业执照》 交通服务 水运 / (船企)提供《水路运输许可证》。(港口)提供《港口经营许可证》 交通服务 骑车 / 仅支持共享单车,提供共享单车公司《营业执照》 交通服务 火车/高铁/动车 / 仅支持铁路局/公司官方,提供铁路局/公司《营业执照》 交通服务 长途汽车 / (2选1):1、《道路运输经营许可证》(经营范围需含客运);2、官方指定联网售票平台(授权或协议或公开可查询文件)。 交通服务 租车 / 运营公司提供《备案证明》与对应公司《营业执照》,且营业执照中包含汽车租赁业务 交通服务 高速服务 / 仅支持ETC发行业务,(2选1):1、事业单位主体,需提供《事业单位法人证书》;2、官方指定的发行单位(一发单位),需提供“官方授权或协议,或公开可查询的文件”; 生活服务 生活缴费 / (供电类)提供《电力业务许可证》与《营业执照》,且《营业执照》且经营范围含供电。(燃气类)提供《燃气经营许可证》与《营业执照》,且《营业执照》且经营范围含供气。(供水类)提供《卫生许可证》与《营业执照》。(供热类)提供《供热经营许可证》与《营业执照》,且《营业执照》且经营范围含供热。 IT科技 基础电信运营商 / (2选1):1、基础电信运营商:提供《基础电信业务经营许可证》;2、运营商分/子公司:提供营业执照(含相关业务范围)。 IT科技 转售移动通信 / 仅支持虚拟运营商,提供《增值电信业务许可证》(业务种类需含通过转售方式提供移动通信业务) 旅游服务 住宿服务 / 仅支持酒店,提供《酒店业特种行业经营许可证》 商业服务 公证 / 仅支持公证处,提供《公证处执业许可证》或《事业单位法人证书》 社交 直播 / (2选1):1、《信息网络传播视听节目许可证》;2、《网络文化经营许可证》(经营范围含网络表演)。 如对以上类目或资质有疑问,可点击参考小程序“非个人主体开放的服务类目”,详细了解小程序开放的服务类目及对应资质。 二、准备接入 (请在小程序发布后,再提交人脸核身接口申请) 满足第一节中描述的类目和主体的小程序,可申请微信人脸核验接口。目前微信人脸核身接口已改为线上自助申请方式,需按照如下图例指引,进行接口申请: 第一步:请通过mp.weixin.qq.com登录小程序账号在后台“功能-人脸核身”的路径,点击开通按钮—— [图片] 第二步:仔细查阅《人脸识别身份信息验证服务条款》后,点击“同意并下一步”—— [图片] 第三步:请正确填写服务信息,并上传该小程序类目下所要求的资质—— [图片] 第四步:请按照业务实际需求填写使用人脸接口的场景和用途—— [图片] 第五步:请完善测试信息和联系人—— [图片] 第六步:提交后请耐心等待1-3个工作日的审核期,审核结果将以站内信通知—— 如申请期间遇到问题,可联系腾讯工作邮箱 wx_city@tencent.com,将会有相关工作人员进一步指引。 三、接口文档: (一)接口描述 名称: wx.startFacialRecognitionVerify(OBJECT) 功能:请求进行基于生物识别的人脸核身 验证方式:在线验证 兼容版本: 一闪:android 微信7.0.22以上版本, iOS 微信7.0.18以上版本 建议在微信官网升级至最新版本 (二)参数说明 1、OBJECT参数说明: 参数 类型 必填 说明 name String 是 姓名 idCardNumber String 是 身份证号码 success Function 否 调用成功回调 fail Function 否 调用失败回调 complete Function 是 调用完成回调(成功或失败都会回调) 2、CALLBACK返回参数 参数 类型 说明 errMsg String 错误信息 errCode Number 错误码 verifyResult String 本次认证结果凭据,第三方可以选择根据这个凭据获取相关信息 注 1:传递用户姓名和身份证有两种方式 业务方没有用户实名信息,用户需要在前端填写身份证和姓名,那么前端直接通过jsapi 调用传递 name 和 idCardNumber。 业务方已经有用户实名信息,后台通过微信提供的 api(详情见文档后面“上传姓名身份证后台 api”)上传用户身份证姓名和身份证,api 返回 user_id_key 作为凭证传给前端,前端再调用 jsapi,用户姓名、身份证信息不需要经过前端,参数只需要传递 userIdKey。Tips:使用该功能需要小程序基础库版本号>=1.9.3。 3、回调结果说明 回调结果请参考以下释义: [图片] [图片] [图片] 4、示例代码 [图片] [图片] (三)上传用户姓名身份证的后台api 1、API说明 1.1说明 业务方上传用户姓名和身份证,获取用户凭证,把凭证给到前端通过 jsapi 调用。 Tips :使用该功能需要小程序基础库版本号>=1.9.3。 1.2请求URL https://api.weixin.qq.com/cityservice/face/identify/getuseridkey?access_token={ac cess_token} 1.3请求方式 POST 2、请求数据格式 [代码]Json { "name" : “张三”, "id_card_number" : "452122xxxxxxx43215" } [代码] 请求示例 [代码]#!/bin/bash TOKEN='xxxxxxxxxxxx' URL='https://api.weixin.qq.com/cityservice/face/identify/getuseridkey' JSON='{ "name": "张三", "id_card_number": "452344xxxxxxxxxxxxx234"}' curl "${URL}?access_token=${TOKEN}" -d "${JSON}" [代码] 参数说明 json 字段 中文显示 是否必传 name 姓名 是 id_card_number 身份证号码 是 out_seq_no 业务方唯一流水号 否 3、返回数据 参数 类 型 说明 errcode int 错误码 errmsg string 错误信息 user_id_key string 用于后台交互表示用户姓名、身份证的凭证 expires_in uint32 user_id_key 有效期,过期需重新获取 [代码]{ "errcode" : 0, "errmsg" : "ok", "user_id_key" : "id_key_xxxx", "expires_in": 3600 } [代码] 4、后台消息推送 如果业务方传入out_seq_no,核身完成后会通过消息推送回调给业务方的服务器,如果回调业务方失败,会在5s尽力推送,超过5s不再推送。 参数说明 参数 类 型 说明 ToUserName string 小程序原始ID FromUserName string 事件消息openid CreateTime uint32 消息推送时间 MsgType string 消息类型 Event string 事件类型 openid string 核身用户的openid out_seq_no string 业务方唯一流水号 verify_result string 核身返回的加密key(凭据) 返回示例 [代码]{ "ToUserName": "gh_81fxxxxxxxx", "FromUserName": "oRRn15NUibBxxxxxxxxx", "CreateTime": 1703657835, "MsgType": "event", "Event": "face_identify", "openid": "oRRn15NUibBxxxxxxxxx", "out_seq_no": "test1234", "verify_result": "XXIzTtMqCxwOaawoE91-VNGAC3v1j9MP-5fZJxv0fYT4aGezzvYlUb-n6RWQa7XeJpQo0teKj8mGE4ZcRe1JI3GqzADBYORBu613rKjKAFfEXTXw_bu1bs7MnmPOpguS" } [代码] 四、再次获取核验结果api 此接口是前端完成人脸核身后,基于前端返回的凭据,通过后台api再次进行核验结果和身份信息的校验,有助于提高安全性,请务必接入! 前端获取结果不可信,存在被篡改的风险,为了保障请求结果安全性,请务必对identify_ret、id_card_number_md5、name_utf8_md5字段进行校验! (一)API说明 1、说明 人脸核身之后,开发者可以根据jsapi返回的verify_result向后台拉取当次认证的结果信息。 2、请求URL https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token={access_token} 3、请求方式 POST 4、请求格式 json (二)请求数据说明 1、请求 参数 类型 是否必填 描述 verify_result String 是 jsapi返回的加密key(凭据) 2、数据返回 HTTP 头如下 Date: Mon, 06 Feb 2017 08:12:58 GMT Content-Type: application/json; encoding=utf-8 Content-Length: 85 Connection: close json示例 [代码]{ "errcode" : 0, [代码] [代码]"errmsg" : "ok", "identify_ret" : 0, "identify_time" : 1486350357 "validate_data": "8593" [代码] [图片] (三)返回参数说明 1、返回参数 注:errcode和identify_ret同时为0,代表本次认证成功。 参数 类型 描述 errcode int 错误码, 0表示本次api调用成功 errmsg string 本次api调用的错误信息 identify_ret int 人脸核身最终认证结果 identify_time uint32 认证时间 validate_data string 用户读的数字(如是读数字) openid string 用户openid user_id_key string 用于后台交互表示用户姓名、身份证的凭证 finish_time uint32 认证结束时间 id_card_number_md5 string 身份证号的md5(最后一位X为大写) name_utf8_md5 string 姓名MD5 2、错误码对应信息 errcode 备注 84001 非法identity_id 84002 用户信息过期 84003 用户信息不存在 五、小程序辅助接口:检查设备是否支持人脸检测 1、接口名称 接 口 :wx.checkIsSupportFacialRecognition(OBJECT) 功能:检查设备是否支持人脸检测 2、接口说明和使用 小程序调用该接口,可以检测当前手机设备是否具备支持人脸检测的能力,可与以上接口分开使用,为了用户体验,建议调用后对手机设备不支持的用户做对应功能处理。 3、接口说明和使用 01 OBJECT 参数说明: 参数 类型 是否必填 描述 success Function 否 调用成功回调 fail Function 否 调用失败回调 complete Function 是 调用完成回调(成功或失败都会回调) checkAliveType Number 否 人脸核验的交互方式,默认读数字(见表 2) 表 2:checkAliveType 的值和对应的解释: 参数 解释 2 先检查是否可以屏幕闪烁,不可以则自动为读数字 02 CALLBACK 返回参数 参数 类型 说明 errMsg Boolean 错误信息 errCode Number 错误码 03 回调结果说明 回调类型 ErrCode 说明 sucess 0 支持人脸采集 fail 10001 不支持人脸采集:设备没有前置摄像头 fail 10002 不支持人脸采集:没有下载到必要模型 fail 10003 不支持人脸采集:后台控制不支持 回调结果说明仅对Android生效,iOS不返回errcode。 04 示例代码 [图片] 六、安全性说明 为保障业务可用性以及安全性,请详细研读微信人脸核身接口相关基础说明及安全说明文档:https://docs.qq.com/doc/DTFB0YWFIdGV6amly 备注:如开发中遇到任何疑问,可以点击此处通过社区反馈,将有工作人员跟进回复。 七、案例展示及补充说明 安徽医科大学第二附属医院,微信人脸核验登录: 安徽医科大学第二附属医院,是三级甲等综合医院。其小程序为用户提供挂号、门诊费用、住院费用、检查报告、体检等医疗服务,同时也提供停车、餐饮等便民服务,是医疗小程序中完整的案例。 小程序使用了微信人脸核验能力作为登录的核验。满足医院管理要求,也满足国家对于实名就医的管理规则。 案例实现的截图效果如下: [图片] [图片] 针对近期少数小程序方面反馈的两类问题,也在本课程进行补充说明。 1、本接口的开放范围,即:可支持的主体类目,是否可以扩大? 说明:基于本接口整体使用范围的评估、相关法规的参考、监管策略的理解执行等,暂时未立刻进行扩大开放范围的工作。 但我们会持续基于不同行业的法规、政策及监管要求等,逐一进行研究考量,以便确认如何扩大开放范围。 2、小程序如果涉及用户本人的生物特征采集,(如本人人脸照片、人脸视频),或涉及采集用户本人生物特征信息并开展人脸核验功能,则存在被驳回的情况? 说明:近两年“人脸识别”技术在社会上掀起了热潮。人脸识别虽然作为摆脱“中间媒介”或“承载载体”的一种直接技术手段,解决了部分政务、交通、医疗、零售等证明“操作者是本人”的问题,但也因此,引入了新的更大的安全风险。 一是,虚假安全风险。 身份认证领域的安全三因素包括“我知道什么”、“我拥有什么”、“我的特征是什么”,通用的安全做法,是要双因素认证(2FA),人脸识别技术如仅凭“我的特征是什么”这一个因素,则容易被攻破或利用。表象给用户以安全的感觉,但实际并不能达到安全效果。 二是,信息泄漏的风险。 越来越多的组织或个人,在并非必需用户敏感信息、生物特征的情况下,采集并存储此类信息。在信息加密、传输、存储过程中,容易暴漏更多的网络节点,使得此类信息有更大的风险被网络黑客拦截、窃听、窃取,或直接被脱库。 三是,消除风险的难度大。 以往基于“中间媒介”或“承载载体”的方式,如出现丢失、被冒用、恶意盗用等风险,可以通过挂失、更换、使用新载体或新媒介等方式,快速排除一定的风险。C端主动,B端主动,都能解决一部分问题。但人脸识别做为更直接的方式,一旦出现冒用、盗用,受害者将面临更大的财产及人生安全风险,且C端用户更多时候无法主动消除风险。 基于以上问题风险,加之国家出台《网络安全法》、《用户隐私保护条例》等法律法规标准,网信办、公安部、工信部及市场监管总局等四部委发起的app获取隐私整治,结合平台安全、用户敏感隐私信息保护要求及监管,针对部分暂无相关法规或要求,需要采集或生物认证方式进行身份核验的,或以“追热点”或“尝鲜”为目的,采集用户生物特征或进行身份核验的,进行严格审核,必要时不予以支持。
06-26 - 请问公众号模板消息怎么实现文字跳转小程序呢,求大佬解惑?
[图片] 想实现像地铁小程序下面的文字点击可以跳转小程序
2022-06-16