前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解读指纹识别、自定义配图、获取发票抬头等小程序API

解读指纹识别、自定义配图、获取发票抬头等小程序API

作者头像
花叔
发布2018-04-18 11:44:49
9870
发布2018-04-18 11:44:49
举报
文章被收录于专栏:花叔的专栏花叔的专栏

话说,8月18日微信小程序的开发能力更新了。

关注小程序的读者从版本号就能发现,1.4版本的基础库经历了三个版本,最近上一次版本号是1.4.3,这次是1.5.0而不是1.4.4,可见这是一个大版本更新。

更新了些啥呢?足足有56项,花叔研究了其中一些可能影响较大的变动,总结了一下有以下几点:

  1. 指纹识别
  2. 分享自定义配图
  3. 获取发票抬头
  4. 获取更多的系统信息
  5. APP分享的小程序链接可获取群相关信息

接下来稍微解读一下这些API。

首先,看看“指纹识别”:

听到“指纹识别”,大家就感觉一定是个高科技玩意,但对于好多同学来说,说不定连它的基本原理和使用场景都没搞清楚吧,花叔看了看别的公众号文章的介绍,这类文章不是纯搬官方描述,就是浅尝则止,今天花叔抛砖引玉分析一下,希望对大家有用。

背景:

其实这API源于一个叫“TENCENT SOTER”的、微信团队做的生物认证解决方案,这是一个开源的项目,而且提供的接口形式不仅限于小程序,在公众号、服务号甚至APP中都有提供接口。

不过在公布开源的时候,官方只提供了企业号接入的接口文档,其他平台的接入文档需要发邮件去申请,当时花叔没懂为什么这么藏藏捏捏不放开,现在终于懂了,为的是让微信官方直接集成到小程序的API文档里,当作小程序的一个新能力发布,都是套路呀。

所以,既然老早就有,那么在这个指纹识别“新能力”发布前,花叔就很自觉地拿到了小程序侧的接口文档,参与了这个API的测试。

原理:

读取当前生物提供信息(例如用户触摸iphone的home键时的指纹信息),并与本机已存的信息进行校对,若校对成功返回安全信息以及秘钥,该秘钥可通过一个官方提供的远程接口进行二次校验。

值得提醒的是,“本机已存的信息”是用户在手机系统配置中录入的,这个API提供的仅仅是“校验”能力,什么意思?说白了就是说它只管校验你是否是这个手机的机主。

所以,别想着用这个接口来收集用户的生物信息,也别想着把手机中已经存储的生物信息读取出来,这些都是不行的。

代码:

小程序官方提供两个公用方法(具体可参考官方开发文档):

  1. wx.checkIsSupportSoterAuthentication,这是校验设备是否支持SOTER生物认证方式,并返回所支持的认证方式,预设方式包括:指纹识别、人脸识别以及声纹识别。而目前仅提供指纹识别方式
  2. wx.startSoterAuthentication ,发起一次生物校验操作,并返回安全信息和秘钥,秘钥可通过远程服务器脚本进行校验。

能实现什么产品逻辑:

很抱歉告诉大家,这货作用很受限制,从上面的分析就能看出,他仅能用作手机与用户从属关系的校验,在花叔看来目前只有在某些强校验的场景下,如支付、授权处理敏感操作等场景,才有它的用武之地。

从“安全”角度看,这确实是一个了不起的API,但从“技术驱动产品创新”角度看,它没提供太多的想象空间。

然后,看看“分享自定义配图”:

终于是支持了,可以爽歪歪地定义美女图了,跟H5比起来,还是特大号的分享图!

现在开发者可以在onShareAppMessage事件的options参数里追加imageUrl参数实现自定义分享图。

代码语言:javascript
复制
onShareAppMessage: function (res) {
    return {
      title: '自定义转发标题',
      imageUrl:'http://xxx.com/test.jpg',    
      path: '/page/user?id=123',
      success: function(res) {        // 转发成功
      },
      fail: function(res) {        // 转发失败
      }
    }
  }

值得注意的是:

  1. 这是个系统级的更新,需要微信更新到最新版本才能体验。
  2. 传入的路径可以是任意形式的路径(dataUri不行),官方说文件格式包括jpg和png,而花叔测试过gif也可以,不过会变成无动效的静态图。
  3. 不定义或者链接资源不存在时会使用当前页截屏。

然后,看看“获取发票抬头”:

可能有些同学看到这个API会懵逼,发票抬头?什么鬼?

普及一下先,话说在微信个人页里目前是能定义发票抬头的(用户现在在外消费要想店家索要发票的时候,店家会让用户提供发票抬头信息,微信为了方便大家,就在个人页里加了一个记录发票抬头的页卡)

除了这种录入方式外,微信官方还提供了一个小程序来录入发票抬头信息:

然后,现在您的小程序代码里可以通过wx.chooseInvoiceTitle这个方法去获取这些信息了:

代码语言:javascript
复制
wx.chooseInvoiceTitle({
  success(res) {
  }
})

有啥用呢?

就是让发票抬头信息共享,对于网购类小程序特别有用,跟记录收货地址一样的体验。

题外话,这接口并没有提供“写”操作,那些同类型的发票抬头记录小程序,你们的存在还有何意义?

然后,看看“获取更多系统信息”:

其实本次更新还有个不可忽略的点,这一点官方通告里是没有提及到的

  1. U 更新 API getSystemInfo 增加 fontSizeSetting 支持读取用户字体大小设置
  2. U 更新 API getSystemInfo 增加 brand 支持读取手机品牌字段

花叔这里解释一下,相当于说小程序可以通过wx.getSystemInfo方法获取“微信-我-设置-通用-字体大小”中定义的字体规格;同时小程序也能获取收手机的品牌名。

至此,小程序内能获取的系统信息包括:

有什么用?用研数据统计哈!

最后,谈谈“APP分享的小程序链接可获取群相关信息”:

话说,很久以前小程序就有一个能力,它给非微信APP开了一个入口,它们可以给微信内分享一个链接,这个链接在点击的时候可以去到某个小程序里面,具体可参考文章《重磅 | 小程序新增六大能力!面向个人开发者开放》的最后一点。

也可以参考微信开发平台的“分享与收藏开发文档”:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN

这是利用现有APP为小程序导量的手段,当时分享的链接就是纯粹的一个链接,现在的意思大概是:app开发的同学们!只要你们也做个小程序,你们以后从app要分享到微信时,就能做群应用了!很酷有木有!赶紧做小程序吧!

据花叔所知,目前可能仅有腾讯视频是做了这个功能:

虽然花叔个人觉得这种导量方式可能玩不出什么花样,但毕竟微信团队不遗余力地去更新了这个特性,花叔觉得站在技术角度必须支持一下!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MinProgram 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档