当前位置: 首页 > 编程日记 > 正文

小程序云开发获取手机号完整代码 云函数中网络请求第三方接口

小程序云开发获取手机号完整代码

效果图:

小程序代码

<button  open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">登录</button>
  getPhoneNumber: function (e) {var that = this;if (!e.detail.errMsg || e.detail.errMsg != "getPhoneNumber:ok") {wx.showModal({content: '请打开设置授权手机号',showCancel: false})return;}wx.cloud.callFunction({name: 'getToken',  // 对应云函数名data: {encryptedData: e.detail.encryptedData,iv: e.detail.iv,sessionCode: app.globalData.sessionCode    // 这个通过wx.login获取,去了解一下就知道。这不多描述},success: res => {wx.hideLoading()console.log('成功拿到手机号,跳转首页',res)// 成功拿到手机号,跳转首页returnwx.switchTab({url: '../index/index' // 这里是要跳转的路径})},fail: err => {console.error(err);wx.showToast({title: '获取手机号失败',icon: 'none'})}})},

云函数:

  • 步骤1: 新建node.js云函数getToken

    image.png

  • 步骤2:因为需要进行网络请求,这里使用request库

    右击getToken函数名,选择在终端中打开

    image.png

  • 步骤3.下载 request 或 request-promise 模块(request-promise模块,可以使用promise,async和await)
    命令行:
    npm install --save request
    npm install --save request-promise
    如成功下载,则可见

    image.png

  • 步骤4:getToken下的index.js文件中

// 云函数入口文件const cloud = require('wx-server-sdk')const requestpromise = require('request-promise');var WXBizDataCrypt = require('./RdWXBizDataCrypt') // 用于手机号解密cloud.init()// 云函数入口函数exports.main = async (event, context) => {// 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)const wxContext = cloud.getWXContext()const appid = wxContext.APPIDconst AccessToken_options = {method: 'GET',url: 'https://api.weixin.qq.com/sns/jscode2session',qs: {appid:wxContext.APPID,secret:'xxxxxxxxxxxxxxxxxxx',  // 微信开发后台可生成,唯有微信认证过的国内主体才可有grant_type: 'authorization_code',js_code: event.sessionCode // 小程序中获取过来的},json: true};const resultValue = await requestpromise (AccessToken_options);const pc = new WXBizDataCrypt(appid, resultValue.session_key)  // -解密第一步const data = pc.decryptData(event.encryptedData, event.iv)   // 解密第二步return { data }  
}

这里的WXBizDataCrypt文件纯js写的,非官方给出的java,node,php等后端语言的demo,js文件我放
文件网盘里了,有需要的自行下载,请点击这里 提取码:i2ve

具体放置的位置如步骤3所示
至此,小程序便可得到解密后的用户手机号,

相关文章:

集合恒等式定律及文氏图

1、分配律 1.1 A∩(B∪C) (A∩B)∪(A∩C) 说明&#xff1a;从左至右&#xff0c;图1中三角形区域为 A&#xff0c;草绿色区域为 (B∪C)&#xff0c;即有三角形又有草绿色底色的区域即为 A∩(B∪C) 图2中三角形区域为 (A∩B)&#xff0c;草绿色区域为 (A∩C)&#xff0c;三角形…

微信 小程序布局 水平菜单

<!-- 菜单列表部分 --><view class"wear-menu"><view classmenu-box wx:key"menu" wx:for"{{menuList}}" wx:for-index"index"><view class"menu-img" bindtap"selectMenu" data-index"…

keras神经网络回归预测_如何使用Keras建立您的第一个神经网络来预测房价

keras神经网络回归预测by Joseph Lee Wei En通过李维恩 一步一步的完整的初学者指南&#xff0c;可使用像Deep Learning专业版这样的几行代码来构建您的第一个神经网络&#xff01; (A step-by-step complete beginner’s guide to building your first Neural Network in a c…

transform总结

1. 用jquery的css方法获取transform得到的是矩阵matrix,不利于获取translate的值&#xff0c; 优先使用dom.style.webKitTransform进行transform的读写 2. 从transform中读取translate的值方法 //jquery版本 function fGetTranslate($obj,type){var transformMatrix obj.css(&…

uni-app 音频控制

选择不同的音频&#xff0c;销毁上一个音频&#xff0c;播放最新的音频文件。 效果图&#xff1a; 音频组件代码: <template><view id"share_card" class"share_card"><view class"top"><img class"ms" :class…

推荐5款实用的jQuery时间轴插件

1、使用CSS3和jQuery制作的水平时间轴 这是一个可以在PC和移动端表现非常棒的水平时间轴&#xff0c;它由上部水平滑块和下部时间点对应的内容区块&#xff0c;点击时间轴上的时间点&#xff0c;下部内容会滑动到对应的内容区块。使用CSS3和jQuery技术使得时间轴滑块可以左右滑…

devkit_如何使用NodeMCU Devkit和Firebase数据库开始物联网

devkitby Jibin Thomas吉宾托马斯(Jibin Thomas) 如何使用NodeMCU Devkit和Firebase数据库开始物联网 (How to get started with IoT using NodeMCU Devkit and Firebase database) “The Internet will disappear. There will be so many IP addresses, so many devices, sen…

洛谷p1162填涂颜色(dfs写法)

这道题本是放在试炼场bfs里的&#xff0c;但是我觉得dfs好写些 所以就用dfs过了 题目如下 题目描述 由数字0 组成的方阵中&#xff0c;有一任意形状闭合圈&#xff0c;闭合圈由数字1构成&#xff0c;围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如&…

Microsoft .NET Framework 4.6.1

适用于操作系统平台&#xff1a;Windows 7 SP1、Windows 8、Windows 8.1、Windows 10、Windows Server 2008 R2 SP1、Windows Server 2012 和 Windows Server 2012 R2 .NET Framework 4.6.1 官方更新介绍页面 http://msdn.microsoft.com/en-us/library/ms171868%28vvs.110%29.a…

VUE还没生效,页面闪屏的问题解决办法 v-cloak

当网络较慢&#xff0c;网页还在加载 Vue.js &#xff0c;而导致 Vue 来不及渲染&#xff0c;这时页面就会显示出 Vue 源代码。我们可以使用 v-cloak 指令来解决这一问题。 html&#xff1a; <div id"app">{{context}} </div>js&#xff1a; <script…

如何使用Python创建,读取,更新和搜索Excel文件

This article will show in detail how to work with Excel files and how to modify specific data with Python.本文将详细显示如何使用Excel文件以及如何使用Python修改特定数据。 First we will learn how to work with CSV files by reading, writing and updating them.…

字符串基本操作

1.已知‘星期一星期二星期三星期四星期五星期六星期日 ’&#xff0c;输入数字&#xff08;1-7&#xff09;&#xff0c;输出相应的‘星期几’ s"星期一星期二星期三星期四星期五星期六星期日" iint(eval(input("请输入1-7的数字:"))) print(s[3*(i-1):3*i…

IOS长按识别二维码失败

IOS长按不识别二维码&#xff0c;出现放大图片的问题解决。 CSS加入样式&#xff1a; touch-callout: none; -webkit-touch-callout: none; -ms-touch-callout: none; -moz-touch-callout: none; 代码&#xff1a; <!DOCTYPE html> <html><head><s…

从svn下载的Mavn项目,到本地后不识别(MyEcplise)

从svn上面现在的mavn的项目到本地不识别的原因 1.首先要确认本机的mavn的环境是否正确。 2.查看本机的Myecplise的mavn的环境配置是否正确 3.在cmd当中执行命令 mvn -Dwtpversion1.0 eclipse:myeclipse &#xff0c;可能svn上面的文件是eclipse建立的&#xff0c;需要进行转化。…

python导入外部包_您会喜欢的10个外部Python软件包

python导入外部包by Adam Goldschmidt亚当戈德施密特(Adam Goldschmidt) 您会喜欢的10个外部Python软件包 (10 External Python packages you are going to love) Python is an experiment in how much freedom programmers need. Too much freedom and nobody can read anoth…

【转修正】sql server行版本控制的隔离级别

在SQL Server标准的已提交读&#xff08;READ COMMITTED&#xff09;隔离级别下&#xff0c;一个读操作会和一个写操作相互阻塞。未提交读&#xff08;READ UNCOMMITTED&#xff09;虽然不会有这种阻塞&#xff0c;但是读操作可能会读到脏数据&#xff0c;这是大部分用户不能接…

【机器学习基石笔记】八、噪声和错误

噪声的来源&#xff1a; 1、noise in y 2、noise in x 在有noise的情况下&#xff0c;vc bound还会work么&#xff1f;&#xff1f;&#xff1f; 之前&#xff0c;x ~ p(x) 现在 y ~ P( y | x ) 在hoeffding的部分&#xff0c;只要 (x, y) 联合分布满足某个分布&#xff0c; 结…

H5用户地址位置选择地点获取经纬度(效果图)

效果图&#xff1a; uni-app <template><view class"flex-v flex-c wrap"><web-view src"https://apis.map.qq.com/tools/locpicker?search1&type1&key7QKBZ-SJ2HF-7TFJS-JL5NE-E6ZD7-SWFW5&referer鏅鸿兘鍚嶇墖"></we…

学习sql注入:猜测数据库_对于SQL的热爱:为什么要学习它以及它将如何帮助您...

学习sql注入:猜测数据库I recently read a great article by the esteemed craigkerstiens describing why he feels SQL is such a valuable skill for developers. This topic really resonated with me. It lined up well with notes I’d already started sketching out fo…

C++入门经典-例6.14-通过指针连接两个字符数组

1&#xff1a;字符数组是一个一维数组&#xff0c;引用字符数组的指针为字符指针&#xff0c;字符指针就是指向字符型内存空间的指针变量。 char *p; char *string"www.mingri.book"; 2&#xff1a;实例&#xff0c;通过指针连接两个字符数组&#xff0c;代码如下&am…

创建一个没有边框的并添加自定义文字的UISegmentedControl

//个性推荐 歌单 主播电台 排行榜NSArray* promoteArray["个性推荐","歌单","主播电台","排行榜"];UISegmentedControl* promoteSgement[[UISegmentedControl alloc]initWithItems:promoteArray];promoteSgement.frameCGRectMake(0, 6…

样式集(一) 通用商品列表样式

上图&#xff1a; 上代码&#xff1a; // pages/choosePackage/choosePackage.js Page({data: {list:[1,2,3],},onLoad: function (options) {},nav_upInfo(){wx.navigateTo({url: ../upInfo/upInfo,})}, }) <!--pages/choosePackage/choosePackage.wxml--> <view c…

2019 6月编程语言_今年六月您可以开始学习650项免费的在线编程和计算机科学课程...

2019 6月编程语言Seven years ago, universities like MIT and Stanford first opened up free online courses to the public. Today, more than 900 schools around the world have created thousands of free online courses, popularly known as Massive Open Online Cours…

mybatis分页练手

最近碰到个需求&#xff0c;要做个透明的mybatis分页功能&#xff0c;描述如下&#xff1a;目标&#xff1a;搜索列表的Controller action要和原先保持一样&#xff0c;并且返回的json需要有分页信息&#xff0c;如&#xff1a; ResponseBody RequestMapping(value"/searc…

样式集(二) 信息填写样式模板

上图&#xff1a; 代码&#xff1a; // pages/upInfo/upInfo.js Page({data: {tipsTxt: "请填写正确的业务流水号",showTips: false,showCityList:false,city:"",cityList:["济南市","青岛市","枣庄市","东营市"…

12小时进制的时间输出的编辑代码

关于时间输出的编辑代码个人思考了很久&#xff0c;包括顺序&#xff0c;进位之类的&#xff0c;求完善和纠错 public class yunsuanfu {public static void main(String[] arg){double t2;int h38;int m100;int s100;if(s>60){m(s/60)m;ss%60;}if (m>60){h(m/60)h;mm%6…

c++每调用一次函数+1_每个开发人员都应该知道的一些很棒的现代C ++功能

c每调用一次函数1As a language, C has evolved a lot.作为一种语言&#xff0c;C 已经发展了很多。 Of course this did not happen overnight. There was a time when C lacked dynamism. It was difficult to be fond of the language.当然&#xff0c;这并非一overnight而…

Linux ISCSI配置

一、简介 iSCSI&#xff08;internet SCSI&#xff09;技术由IBM公司研究开发&#xff0c;是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集&#xff0c;这种指令集合可以实现在IP网络上运行SCSI协议&#xff0c;使其能够在诸如高速千兆以太网上进行路由选择。iSCS…

样式集(三)成功页面样式模板

上图&#xff1a; 代码&#xff1a; <!--pages/result/result.wxml--> <view><image class"scc" src"/img/scc.png"></image><view class"resuil">办理成功</view> </view> <view class"btn…

C#中Request.servervariables参数

整理一下&#xff0c;我在asp.net下遍历的Request.servervariables这上集合&#xff0c;得出的所有参数如下&#xff1a; &#xff1a; Request.ServerVariables["ALL_HTTP"] 客户端发送的http所有报头信息 返回例&#xff1a;HTTP_CACHE_CONTROL:max-age0 HTT…