微信小程序获取手机号流程
小程序中获取手机号前提
小程序需企业认证,才可以获取用户的手机号,个人开发者是不能获取的
哔哔下
官方文档给出需先登录才可获取手机号 传送门
思路为:login登录获取code-->code传给后台-->后台根据code获取sessionKey
前台通过触发获取手机号事件得到加密数据-->传给后台,后台通过之前获取的
sessionKey来解密,并将数据返回给前台
注意项
code传给后台时后台需去访问官网给的接口去检验 传送门
撸码
getPhoneNumber: function (e) {
let _this = this;
if (e.detail.errMsg == "getPhoneNumber:ok") {
//校验是否过期
wx.checkSession({
success: function () {
// session_key 未过期,并且在本生命周期一直有效
_this.gettel(e);//获取手机号
},
fail: function () {
// session_key 已经失效,需要重新执行登录流程
wx.login({
success: function (res) {
wx.request({
url: 'xxxxxx',
method: 'post',
data: {
code: res.code
},
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: function (r) {
_this.gettel(e);//获取手机号
},
fail: function (err) {
console.log("登录失败");
console.log(err);
}
})
}
})
}
})
} else {
wx.showModal({
title: '提示',
content: '需获取信息才可查看历史预约',
})
}
},
gettel: function (e) {
let _this = this;
let iv = e.detail.iv;
let encryptedData = e.detail.encryptedData;
wx.request({
url: 'xxxxxxxxxxxxxxxx',
method: 'post',
data: {
iv: iv,
encryptedData: encryptedData
},
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: function (res) {
console.log(res);//手机号在这里面哦
<!--let item = JSON.parse(res.data.data);-->
},
fail: function (err) {
console.log(err);
}
})
}
在哔哔下
wx.login首次登录我写在需要获取手机号时的page中onload事件中
因为login返回的code有时效,所以在需要的时候在调用
微信小程序获取手机号流程的更多相关文章
- 微信小程序获取手机号
wxml 代码: <!-- 授权 --> <button type="primary" open-type="getUserInfo" bin ...
- 微信小程序后端开发流程
微信小程序后端开发流程根据官网总结为两个步骤 1.前端调用 wx.login 返回了code,然后调用wx.getUserInfo获取到用户的昵称 头像 2.服务端根据code去微信获取openid, ...
- SpringCloud微服务实战——搭建企业级开发框架(五十二):第三方登录-微信小程序授权登录流程设计和实现
在前面的设计和实现中,我们的微服务开发平台通过JustAuth来实现第三方授权登录,通过集成公共组件,着实减少了很多工作量,大多数的第三方登录直接通过配置就可以实现.而在第三方授权登录中,微信小程 ...
- C# 微信小程序获取openid sessionkey
项目介绍 1.微信小程序获取openid和session_key 2.后台使用C#开发 项目流程 准备工作 1 获取appid 1.1 下载微信web开发工具 https://developers.w ...
- .Net之微信小程序获取用户UnionID
前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...
- 微信小程序登入流程
微信小程序登入流程 一.首先前端先传code去后端 wx.login({ success(res) { if (res.code) { //发起网络请求 wx.request({ url: app.g ...
- 微信小程序-获取经纬度
微信小程序-获取经纬度 最近公司新功能 要求在外的市场人员 发送位置信息回来. 用的还是微信小程序开发.... 微信小程序 提供一个接口 getLocation 这个接口反回来的位置 相对实际位置 相 ...
- 微信小程序-获取当前城市位置及再次授权地理位置
微信小程序-获取当前城市位置 1. 获取当前地理位置,可通过wx.getLocation接口,返回经纬度.速度等信息; 注意---它的默认工作机制: 首次进入页面,调用该api,返回用户授权结果,并保 ...
- 微信小程序获取Access_token和页面URL生成小程序码或二维码
1.微信小程序获取Access_token: access_token具体时效看官方文档. using System; using System.Collections.Generic; using ...
- [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息
因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...
随机推荐
- NC24623 Tree Decoration
题目链接 题目 题目描述 Farmer John is decorating his Spring Equinox Tree (like a Christmas tree but popular ab ...
- NC207751 牛牛的旅游纪念品
题目链接 题目 题目描述 牛牛在牛市的旅游纪念商店里面挑花了眼,于是简单粗暴的牛牛决定--买最受欢迎的就好了. 但是牛牛的背包有限,他只能在商店的n个物品里面带m个回去,不然就装不下了. 并且牛牛希望 ...
- fmt、变量、常量
fmt包 fmt包主要用于打印数据,常用的有Printf.Print.Printf // 文件所属包 package main // 导入fmt包,主要用于打印数据 import "fmt& ...
- 【Unity3D】动态路障导航
1 NavMeshObstacle组件 导航系统.分离路面导航中路障都是静态的,程序运行过程中烘焙的导航网格一直不变,本文将进一步讲解动态路障场景下导航的实现. 对于动态路障游戏对象,除了要设 ...
- Git将某个文件合并到指定分支
企业开发中,经常会单独拉分支去做自己的需求开发,但是某些时候一些公共的配置我们需要从主线pull,这时候整个分支merge显然不合适 1.切换至待合并文件的分支 git checkout <br ...
- 阿里OSS+PicGo+Typora图床设置使用
1.首先下载Typroa和PicGo Typroa地址: 链接:https://pan.baidu.com/s/1M6_5o1PZyaGqOhSb4yvtmA 提取码:a1aj PicGo地址: 链接 ...
- java去除字符串空格
package test; /** * 去除字符串空格 * * @author xusucheng * @create 2018-07-04 **/ public class RemoveWhites ...
- Java并发编程实例--15.在同步代码块中使用条件
并发编程中有个经典问题: 生产消费者问题. 我们有一个数据缓冲区,一个或多个生产者往其中存入对象,另外一个或多个消费者从中取走. 因此,该数据缓冲区是一个共享数据结构,我们需要对其添加读取同步机制,但 ...
- socket及黏包现象及解决黏包---day28
1.四次挥手(补充) 客户端向服务端发送一个请求消息,断开连接(代表客户端没有数据传输了) 服务端接收请求,发出响应 等到服务端所有数据收发完毕之后 服务端向客户端发送断开连接的请求 客户端接收请求后 ...
- 格式化占位符%r和!r
# 作用 都是格式化原形输出,!r用于format格式化,%r用于%格式化 # 示例 a = '123' b = 'hello, {!r}'.format(a) b = 'hello, %r' % ( ...