@toc

1、获取用户收货地址接口wx.chooseAddress()

  wx.chooseAddress(Object object)获取用户收货地址,此接口调用的是微信的收货地址。微信收货地址不同于微信设置的省和市地址,它默认是不存在的。在某个小程序中,当用户第一次调用wx.chooseAddress(Object object)接口时,会被要求填写微信收货地址;当用户第二次访问wx.chooseAddress(Object object)接口时,则可以看到自己以前填写的收货地址。这里说的第二次可以是不同的小程序,例如用户在访问A小程序时填写了微信收货地址,则用户在访问带有wx.chooseAddress(Object object)接口的B或者C小程序时都可以看到以前填写的微信收货地址。

1.1 接口参数

  wx.chooseAddress(Object object)接口属性如下表所示。

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

  object.success回调函数:

属性 类型 说明
userName string 收货人姓名
postalCode string 邮编
provinceName string 国标收货地址第一级地址
cityName string 国标收货地址第二级地址
countyName string 国标收货地址第三级地址
streetName string 国标收货地址第四级地址
detailInfo string 详细收货地址信息(包括街道地址)
detailInfoNew string 新选择器详细收货地址信息
nationalCode string 收货地址国家码
telNumber string 收货人手机号码
errMsg string 错误信息

  官网示例代码:

wx.chooseAddress({success (res) {console.log(res.userName)console.log(res.postalCode)console.log(res.provinceName)console.log(res.cityName)console.log(res.countyName)console.log(res.detailInfo)console.log(res.nationalCode)console.log(res.telNumber)}
})

1.2 案例演示

  本例使用wx.chooseAddress(Object object)获取微信收货地址,并把获取的收货地址信息填入表单,由于是第一次访问wx.chooseAddress()接口,所以点击“获取收货地址”按钮之后,出现了新建并保存收货地址页面。当用户点击保存按钮时,系统获取了微信收货地址并填入表单。

  chooseAddress.wxml:

<view class="container"><form><view class="page-section"><view class="weui-cells weui-cells_after-title"><view class="weui-cell weui-cell_input"><view class="weui-cell__hd"><view class="weui-label">收货人姓名</view></view><view class="weui-cell__bd">{{ addressInfo.userName }}</view></view><view class="weui-cell weui-cell_input"><view class="weui-cell__hd"><view class="weui-label">邮编</view></view><view class="weui-cell__bd">{{ addressInfo.postalCode }}</view></view><view class="weui-cell weui-cell_input region"><view class="weui-cell__hd"><view class="weui-label">地区</view></view><view class="weui-cell__bd">{{ addressInfo.provinceName }}{{ addressInfo.cityName }}{{ addressInfo.countyName }}</view></view><view class="weui-cell weui-cell_input detail"><view class="weui-cell__hd"><view class="weui-label">收货地址</view></view><view class="weui-cell__bd">{{ addressInfo.detailInfo }}</view></view><view class="weui-cell weui-cell_input"><view class="weui-cell__hd"><view class="weui-label">国家码</view></view><view class="weui-cell__bd">{{ addressInfo.nationalCode }}</view></view><view class="weui-cell weui-cell_input"><view class="weui-cell__hd"><view class="weui-label">手机号码</view></view><view class="weui-cell__bd">{{ addressInfo.telNumber }}</view></view></view></view></form><view class="btn-area"  hidden="{{chooseAddress}}"><button type="primary" bindtap="chooseAddress">获取收货地址</button></view><view class="btn-area"  hidden="{{!chooseAddress}}"><button type="primary" bindtap="pay">提交</button></view>
</view>

  chooseAddress.js:

Page({data: {addressInfo: null,chooseAddress:false},chooseAddress:function(e){var that=this;wx.chooseAddress({success: function (res){that.setData({addressInfo: res,chooseAddress: true})},fail: function (err) {console.log(err)}})},pay:function(e){wx.navigateTo({url: '../pay/pay'})}
})

   除此之外,还有个wx.chooseInvoiceTitle()接口,它和wx.chooseAddress()接口雷系,它用来获取用户的发票信息,包含抬头类型、抬头税号、单位地址、手机号码、银行名称和银行账号等属性。

  这里由于我已经填写过一次了,所以会把上次填的显示出来,这里也可以新建一个,我们就用上次填的数据,选中之后信息就被填入到了下面的表单当中。

2、SOTER指纹认证

2.1 功能简介

  小程序提供wx.checkIsSupportSoterAuthentication(Object object)wx.checkIsSoterEnrolledInDevice(Object object)wx.startSoterAuthentication(Object object)3个接口来实现认证。

wx.checkIsSupportSoterAuthentication(Object object)实现检测手机是否支持指纹认证的功能;wx.checkIsSoterEnrolledInDevice(Object object)实现检测手机安全设置系统是否已经录入过指纹信息;wx.startSoterAuthentication(Object object)判断当前录入的指纹是否与手机安全指纹一致。

2.2 接口参数

2.2.1 wx.checkIsSupportSoterAuthentication(Object object)

  wx.checkIsSupportSoterAuthentication(Object object)接口的success函数的回调结果保存在res.supportMode中。

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

2.2.2 wx.checkIsSoterEnrolledInDevice(Object object)

  wx.checkIsSoterEnrolledInDevice(Object object)接口检测手机是否保存了指纹、人脸和声纹信息,该接口属性如下表所示:

  object.success回调函数:

属性 类型 说明
isEnrolled boolean 是否已录入信息
errMsg string 错误信息

  官网示例代码:

wx.checkIsSoterEnrolledInDevice({checkAuthMode: 'fingerPrint',success(res) {console.log(res.isEnrolled)}
})

2.2.3 wx.startSoterAuthentication(Object object)

  wx.startSoterAuthentication(Object object)接口是真正执行SOTER认证的接口,也就是执行指纹认证。

  object.success回调函数:

属性 类型 说明
authMode string 生物认证方式
resultJSON string 在设备安全区域(TEE)内获得的本机安全信息(如TEE名称版本号等以及防重放参数)以及本次认证信息(仅Android支持,本次认证的指纹ID)。具体说明见下文
resultJSONSignature string 用SOTER安全密钥对 resultJSON 的签名(SHA256 with RSA/PSS, saltlen=20)
errCode number 错误码
errMsg string 错误信息

2.3 案例演示

  本例使用SOTER认证的3个接口验证小程序的指纹识别功能,这里我手机没有指纹识别,借了部安卓手机。

  SoterAuthentication.wxml:

<view class="container"><view class="page-body"><view class="btn-area"><button type="primary" bindtap="startAuth">指纹认证</button></view></view>
</view>

  SoterAuthentication.js:

const AUTH_MODE = 'fingerPrint'
Page({startAuth() {wx.checkIsSupportSoterAuthentication({success: (res) => {console.log(res)checkIsEnrolled()},fail: (err) => {console.error(err)wx.showModal({title: '错误',content: '您的设备不支持指纹识别',showCancel: false})}})const checkIsEnrolled = () => {wx.checkIsSoterEnrolledInDevice({checkAuthMode: AUTH_MODE,success: (res) => {console.log(res)if (parseInt(res.isEnrolled) <= 0) {wx.showModal({title: '错误',content: '您暂未录入指纹信息,请录入后重试',showCancel: false})return}startSoterAuthentication();},fail: (err) => {console.error(err)}})}const startSoterAuthentication = () => {wx.startSoterAuthentication({requestAuthModes: [AUTH_MODE],challenge: 'test',authContent: '指纹认证示例',success: (res) => {console.log(res)wx.showToast({title: '认证成功',duration: 10000})},fail: (err) => {console.error(err)wx.showModal({title: '失败',content: '认证失败',showCancel: false})}})}}
})

2.3.1 安卓手机指纹测试

  这部手机指纹在背面,我们输入指纹看下。

2.3.2 iphone手机人脸识别测试

  我们将代码中的const AUTH_MODE = 'fingerPrint'替换为const AUTH_MODE = 'facial'即可变为人脸识别方式。

  点击人脸识别按钮,开始识别

  可以看到,安卓和苹果都没问题。

微信小程序获取用户收货地址与指纹验证接口(安卓和iphone)相关推荐

  1. 微信小程序获取用户收货地址 完整代码

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 获取用户收货地址需要用户点击授权,所以有两种情况,确认授权.取消授权. 情况一,用户第一次访问用户地址授权,并 ...

  2. 微信小程序获取用户收货地址列表wx.chooseAddress

    微信官方的说明,直接调用即可,但是由于该微信弹框如果拒绝,之后再不会弹出提示,而恰好wx.openSetting(),可以调起授权设置界面,显示用户已经调用过的微信授权,所以我们需要饶一下小弯路,但是 ...

  3. 微信小程序的选择收货地址、新增地址、地址管理等模块的总结(1)

    这几天主要在做公司微信小程序项目2.0版本的一些新增功能,其中就包括把原来的地址等个人固定信息独立成一个模块进行管理(选择收货地址),包括新增地址.地址修改.删除等可以直接选取个人地址而不需要每次都填 ...

  4. 微信小程序手动添加收货地址省市区联动

    先看效果图 html部分 用小程序的piceker-view 嵌入页面的滚动选择器 <picker-view indicator-style="height: 50px;" ...

  5. .Net之微信小程序获取用户UnionID

    前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...

  6. 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ

    微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...

  7. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

  8. 微信小程序-获取用户位置(经纬度+所在城市)

    微信小程序-获取用户位置(经纬度+所在城市) 文章目录 微信小程序-获取用户位置(经纬度+所在城市) 一.目标 二.实现思路 三.实现步骤 3.1 用到的接口函数 3.2 具体步骤 3.2.1 创建界 ...

  9. 微信小程序获取用户信息(纯前端)

    特别说明 2022年10月25日起,小程序 wx.getUserProfile 接口将被收回. 微信官方不希望开发者直接拿用户的昵称和头像,若小程序需要设置昵称和头像,可以单独开发一个设置页,由用户手 ...

最新文章

  1. SLAM中的卡尔曼滤波:究竟滤了谁?
  2. ICCV 2021 | R-MSFM: 用于单目深度估计的循环多尺度特征调制
  3. 湖南铁路科技职业技术学院计算机等级,湖南铁路科技职业技术学院——高速铁路动车乘务专业...
  4. MongoDB 命令速查表
  5. xubuntu19.10碰到initramfs终极解决方案
  6. delphi7存取配置文件与sqlserver数据库连接_Delphi7存取配置文件与SQLServer数据库连接...
  7. 函数表达书-读书笔记
  8. ElasticSearch 比 MySQL 更适合复杂条件搜索
  9. arcpy.mapping实战-专题图制图自动化
  10. linux虚拟机ping通主机
  11. mysql 分表查询外连接_SQL多表连接查询实例(内连接外连接)
  12. Shell脚本字符串截取方法总结
  13. 怎样找回xp调整分区后盘符不见的文件
  14. 毕业论文免费查重软件测评及降重心得
  15. C11 标准下的 C 语言编程
  16. 搜狗输入法android德语,教你用搜狗输入法打出法语字符
  17. Linux 下ALSA音频工具amixer,aplay,arecord使用
  18. vmware使用显卡
  19. vue基于file-saver处理二进制文件流,导出文件
  20. 【批处理DOS-CMD命令-汇总和小结】-注册表编辑命令reg,如何用cmd命令打开注册表编辑器regedit

热门文章

  1. 51单片机PWM调速风扇转速显示转速设置
  2. Typora1.0.2 + SMMS上传图片
  3. laravel entrust权限系统,管理角色添加删除用户
  4. 微信小程序入门---01
  5. nginx学习,看这一篇就够了(转)
  6. 蓝牙耳机什么牌子音质好听?蓝牙耳机音质排行榜
  7. 搜索爬行原理_使用Diffbot爬行和搜索整个域
  8. Visual Studio 增加每行最多字符数限制参考线
  9. uml的九种图例分析
  10. mysql 语句 面试题