前言

本教程是基于 “apifm-wxapi” 模块,教你快速实现小程序开发,所以你可能需要先了解以下知识点:

《创建 HelloWorld 项目》
《使用 “apifm-wxapi” 快速开发小程序》
《免费注册开通后台,获得专属域名》

本案例中,部分功能,需要用户登录后才能操作,也就是说需要 token 授权,请先了解:

《微信小程序登录获取openid及三方token》

功能介绍

本例带大家小程序快速实现以下5个功能:

  1. 读取当前登录用户的用户资料: 基础信息、扩展信息、实名信息等;
  2. 读取当前登录用户的 openid、unionid;
  3. 修改用户资料:所在省市、昵称、头像、扩展属性;
  4. 实名认证:填写正确的姓名、身份证号码进行快速认证;
  5. 退出登录

启用模块

登录 “第一步” 注册的后台,左侧菜单 --> 工厂设置 --> 模块管理

找到并启用下述模块:

  1. 实名认证

实名认证需要通过公安接口进行校验姓名和身份证号码是否匹配,所以务必要先启用模块,否则会提示模块未开启

实名认证接口为收费接口,你需要在启用模块的地方充值接口调用次数后方可使用实名认证功能

apifm-wxapi 方法说明

获取用户信息

WXAPI.userDetail(token)

base 数据存放了用户的基础信息;

idcard 数据存放了用户的实名认证信息[如果用户有通过实名认证的话]

ext 数据存放了用户的扩展属性

获取用户id、openid、unionid

WXAPI.userWxinfo(token)

获取当前登录用户的用户id、openid、unionid

修改用户资料

WXAPI.modifyUserInfo(Object object)

实名认证

WXAPI.idcardCheck(token, name, idCardNo)

身份证实名认证方法,校验姓名和身份证号码是否匹配

name 为真实姓名;idCardNo 为身份证号码

退出登录

WXAPI.loginout(token)

退出后,当前token将立刻失效

小程序开发

效果截图

用户中心

实名认证

编辑用户资料

小程序代码

读取用户资料 / 修改资料

<view class="page"><view class="page__bd"><form bindsubmit="bindSave" report-submit="true"><view class="weui-cells weui-cells_after-title"><view class="weui-cell"><view class="weui-cell__hd"><view class="weui-label">省份</view></view><view class="weui-cell__bd"><input name="province" value="{{ userInfo.base.province }}" class="weui-input" placeholder="请输入所在省份" /></view></view><view class="weui-cell"><view class="weui-cell__hd"><view class="weui-label">城市</view></view><view class="weui-cell__bd"><input name="city" value="{{ userInfo.base.city }}" class="weui-input" placeholder="请输入所在城市" /></view></view><view class="weui-cell"><view class="weui-cell__hd"><view class="weui-label">昵称</view></view><view class="weui-cell__bd"><input name="nick" value="{{ userInfo.base.nick }}" class="weui-input" placeholder="请输入你的昵称" /></view></view></view><view class="weui-cells__tips">思考题: 尝试实现上传(更换)头像</view><view class="weui-cells weui-cells_after-title"><view class="weui-cell"><view class="weui-cell__hd"><view class="weui-label">学校</view></view><view class="weui-cell__bd"><input name="school" value="{{ userInfo.ext['学校'] }}" class="weui-input" placeholder="请输入你就读的大学" /></view></view><view class="weui-cell"><view class="weui-cell__hd"><view class="weui-label">年龄</view></view><view class="weui-cell__bd"><input name="age" value="{{ userInfo.ext['年龄'] }}" class="weui-input" placeholder="请输入你的芳龄" /></view></view><view class="weui-cell"><view class="weui-cell__hd"><view class="weui-label">微信号</view></view><view class="weui-cell__bd"><input name="wx" value="{{ userInfo.ext['微信号'] }}" class="weui-input" placeholder="请输入你的微信号码" /></view></view></view><view class="weui-cells__tips">以上为用户的扩展属性,要多少加多少</view><view class="weui-btn-area"><button class="weui-btn" type="primary" formType="submit">编辑</button></view></form></view>
</view>
const WXAPI = require('apifm-wxapi')Page({data: {userInfo: undefined},onLoad: function (options) {},onShow: function () {const loginToken = wx.getStorageSync('loginToken')if (!loginToken) {wx.showToast({title: '请先登录',icon: 'none'})this.goRegist()return}WXAPI.userDetail(loginToken.token).then(res => {console.log(res)if(res.code == 0){this.setData({userInfo: res.data})}})},goRegist() {wx.navigateTo({url: '/pages/auth/index'})},bindSave(e) {const loginToken = wx.getStorageSync('loginToken')if (!loginToken) {wx.showToast({title: '请先登录',icon: 'none'})this.goRegist()return}const province = e.detail.value.province;const city = e.detail.value.city;const nick = e.detail.value.nick;const extJsonStr = {}extJsonStr['学校'] = e.detail.value.schoolextJsonStr['年龄'] = e.detail.value.ageextJsonStr['微信号'] = e.detail.value.wxWXAPI.modifyUserInfo({token: loginToken.token,province,city,nick,extJsonStr: JSON.stringify(extJsonStr)}).then(res => {console.log(res)if (res.code == 0) {wx.showToast({title: '修改成功',icon: 'success'})} else {wx.showToast({title: res.msg,icon: 'none'})}})},
})

实名认证

<view class="page"><view class="page__bd"><form bindsubmit="bindSave" report-submit="true"><view class="weui-cells weui-cells_after-title"><view class="weui-cell "><view class="weui-cell__hd"><view class="weui-label">姓名</view></view><view class="weui-cell__bd"><input name="name" class="weui-input" placeholder="请输入真实姓名" /></view></view><view class="weui-cell "><view class="weui-cell__hd"><view class="weui-label">身份证</view></view><view class="weui-cell__bd"><input name="idCardNo" class="weui-input" placeholder="请输入身份证号码" /></view></view></view><view class="weui-btn-area"><button class="weui-btn" type="primary" formType="submit">实名认证</button></view></form></view>
</view>
const WXAPI = require('apifm-wxapi')Page({data: {},onLoad: function (options) {},onShow: function () {},goRegist() {wx.navigateTo({url: '/pages/auth/index'})},bindSave(e) {const loginToken = wx.getStorageSync('loginToken')if (!loginToken) {wx.showToast({title: '请先登录',icon: 'none'})this.goRegist()return}const name = e.detail.value.name;const idCardNo = e.detail.value.idCardNo;if (!name || !idCardNo) {wx.showToast({title: '信息未填写',icon: 'none'})return}WXAPI.idcardCheck(loginToken.token, name, idCardNo).then(res => {console.log(res)if (res.code == 0) {wx.showToast({title: '认证通过',icon: 'success'})} else {wx.showToast({title: res.msg,icon: 'none'})}})},
})

获取openid / unionid

<button type="primary" bindtap="openid">获取openid / unionid</button>
openid(){const loginToken = wx.getStorageSync('loginToken')if (!loginToken) {wx.showToast({title: '请先登录',icon: 'none'})return}WXAPI.userWxinfo(loginToken.token).then(res => {console.log(res)wx.showToast({title: '查看控制台',icon: 'success'})})}

退出登录

<button type="warn" bindtap="loginout">退出</button>
loginout(){const loginToken = wx.getStorageSync('loginToken')if (loginToken) {WXAPI.loginout(loginToken.token).then(res => {if (res.code == 0) {wx.showToast({title: '退出成功',icon: 'success'})wx.clearStorage()} else {wx.showToast({title: res.msg,icon: 'none'})}})} else {wx.showToast({title: '退出成功',icon: 'success'})}}

关于更加详细的参数使用,以及更加高级的进阶使用方法,可以参考api接口文档说明:

《api接口文档》

关于 apifm-wxapi 更多的使用方法:

《apifm-wxapi使用说明》

本案例Demo代码下载:

《apifm-wxapi使用Demo程序》

期待你的进步!
感谢!

使用 apifm-wxapi 开发微信小程序之用户信息/实名认证相关推荐

  1. uniapp开发微信小程序-7.用户填写表单信息

    uniapp开发微信小程序-7.用户填写表单信息 本章让用户通过表单更新自己的个人信息,也是本系列文章最后一篇入门分享,之后碰到新颖.常用的功能会继续分享给大家,如果大家有任何问题欢迎留言,我会尽快线 ...

  2. 微信小程序获取用户信息

    微信小程序获取用户信息 微信小程序获取用户信息接口做了调整: 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像.昵称.性别与地区),将直接获 ...

  3. 微信小程序获取用户信息流程(2022年版)

     开门见山地说,本文主要讲述微信小程序在2022年以后获取用户信息的主要方法,如果想要了解2022年之前微信小程序获取用户信息的相关知识或者是微信小程序之前这部分的设计思想的话,推荐博主的下面这篇博客 ...

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

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

  5. 微信小程序 获取用户信息并保存登录状态

    微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml 转载于:https://www ...

  6. usercity 小程序_微信小程序API 用户信息

    微信小程序API 用户信息 wx.getUserInfo(OBJECT) 微信小程序获取用户信息,需要先调用wx.login接口 OBJECT参数说明: success返回参数说明: 示例代码:wx. ...

  7. 微信小程序获取用户信息-头像、昵称......

    微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 目录 微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 1.wx.getUserProfile文档 2.代码演示 3.演示过程(图示) ...

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

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

  9. PHP 微信小程序获取用户信息

    小程序授权应用场景:先拿到用户信息(先wx.login获取code,code换取用户session_key,再wx.getuserInfo获取到用户的encryptedData iv ,再通过调用官方 ...

最新文章

  1. AI解译遥感影像,商汤的“黑科技”了解一下
  2. pl/sql块的基本语法
  3. 计算机组成原理学习1习题1
  4. ubuntu 下 安装 sublime Text3
  5. git 创建远程仓库
  6. Spring学习之路——简单入门HelloWorld
  7. 模拟串口收发数据Configure Virtual Serial Port Driver(VSPD)
  8. python之路day9_Python之路,Day7 - 面向对象编程进阶
  9. 人机工程学的50条原则
  10. 手把手教你php调用短信接口(smsapi)实现发送短信验证码
  11. 公式编辑器mathType中的公式在word中显示乱码的问题
  12. 快速查看网页元素的CSS样式
  13. (三)Android系统启动流程
  14. Readhub App 上架 Google Play Store 实录及技术要点总结
  15. vue 单页面背景图片设置
  16. Python数据挖掘入门与实践-OneR分类算法
  17. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园竞赛管理系统设计与实现hyr9b
  18. 电路中的VDD,DVDD,AVDD,VCC,AFVDD,DOVDD,IOVDD的区别
  19. 国内十大活跃报表 BI 产品深度点评
  20. 机器人唱歌bgm_Soul app里面机器人匹配的那首bgm是什么呀?好好听!!!求玩过soul的大神告知!!...

热门文章

  1. 2020年中国5G基站建设行业报告.pdf (附下载)
  2. 日常使用技巧之虚拟键盘的使用
  3. 智慧树\知到——程序设计基础(C语言)入门篇第六章到第十章测试答案
  4. 微信小程序布局图片上面显示文字
  5. do matlab的 while循环_在MATLAB中,循环控制语句可以用for、while或do-while进行控制...
  6. PAT乙级 1048. 数字加密(20)
  7. 股神巴菲特忠告中国股民:学会这几点,你离短线炒股的成功就不远了!
  8. 开放式式商业模式_开放式办公室最符合行政人员而不是公司的最大利益
  9. ASEMI充电器整流桥ABS10
  10. .NET获取快递100提供的查询快递信息的方法