- 微信小程序获取手机号实例(php后端)
官方说明源文档: https://developers.weixin.qq.com/miniprogram/dev/api/getPhoneNumber.html 1.我们先处理js部分,先调用login接口 onLoad: function () { var that = this; wx.login({ success: function (loginCode) { wx.request({ url: ‘https://********/login.php’, data: { code: loginCode.code, type: ‘openid’ }, header: { ‘content-type’: ‘application/x-www-form-urlencoded’ }, method: ‘POST’, success: function (res) { that.setData({ openid: res.data.openid, }) wx.setStorageSync(‘openid’, res.data.openid); } }) } }) var openid2 = wx.getStorageSync(‘openid’); }, complete: function () { setTimeout(function () { wx.hideLoading() }, 1000) wx.hideNavigationBarLoading() } }) } 2.获取电话接口 getPhoneNumber: function (e) { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) wx.request({ url: “https://*******tel.php”, data: { iv: e.detail.iv, encryptedData: e.detail.encryptedData, session_key: wx.getStorageSync(‘session_key’) }, header: { ‘content-type’: ‘application/x-www-form-urlencoded’ }, method: ‘POST’, success: function (res) { console.log(res); }, fail: function () { // fail }, complete: function (openid) { // complete } }); }, 3.在wxml里面调用 <button open-type=”getPhoneNumber” bindgetphonenumber=”getPhoneNumber”> 获取手机号</button> 4.后端代码: 是压缩包,可以留言索取。
2019-12-13 - PHP获取小程序openid,10行代码快速获取小程序openid
上一节教大家如何在本地运行php后台项目,并可以被小程序访问到,这一节就来给大家讲一个实际工作中常用的需求,微信小程序openid的获取。当然了,还是用我们的php做为后台。 老规矩,先看效果图 [图片] 通过上图我们可以看到我们成功的获取到了小程序的openid,而这里获取openid是借助php后台获取的。 我们的php核心代码,只有下面10行 [图片] 下面就来讲讲具体的实现步骤。 一,首先要搭建一个可以本地访问的php后台 这里我在上一节的文章已经讲过了,还不知道怎么配置本地php项目的同学可以去翻看我上篇文章:phpstorm运行本地PHP服务器,实现小程序可以访问的PHP后台 二,编写php代码 只需要创建一个如下图所示的简单的php文件就可以了。 [图片] 把代码给大家贴出来。要记得把下面的appid和appSecret换成你自己的。至于如果获取,我之前的文章也有讲过,去翻下我零基础入门小程序开发的文章即可。 [代码]<?php /** * 2019/9/21 20:34 * author: 编程小石头 * wechat:2501902696 * desc: 获取小程序用户openid */ getOpenid(); function getOpenid() { $code = $_GET['code'];//小程序传来的code值 $appid = 'wx4b55bb240aec2ee3';//小程序的appid $appSecret = '1f6f68884c1add6293cfa9b86e1f6bfd';// 小程序的$appSecret $wxUrl = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code'; $getUrl = sprintf($wxUrl, $appid, $appSecret, $code);//把appid,appsecret,code拼接到url里 $result = curl_get($getUrl);//请求拼接好的url $wxResult = json_decode($result, true); if (empty($wxResult)) { echo '获取openid时异常,微信内部错误'; } else { $loginFail = array_key_exists('errcode', $wxResult); if ($loginFail) {//请求失败 var_dump($wxResult); } else {//请求成功 $openid = $wxResult['openid']; echo "获取openid成功成功:" . $openid; } } } //php请求网络的方法 function curl_get($url, &$httpCode = 0) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不做证书校验,部署在linux环境下请改为true curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $file_contents = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return $file_contents; } [代码] 代码就这么多,我们编写好以后,运行下项目。 [图片] 三,编写小程序代码 小程序的代码很简单,就是一个按钮,点击按钮的时候我们请求上面定义好的php后台项目。 小程序代码也很简单 [图片] [图片] 代码就上图这么点,我把code.js里的代码贴出来给大家 [代码]Page({ getCode() { let that = this; wx.login({ success(res) { console.log('code', res.code) that.getOpenid(res.code) } }) }, getOpenid(wxCode) { wx.request({ url: 'http://localhost:8080/Demo.php', data: { code: wxCode }, success(res) { console.log('获取成功', res) }, fail(res) { console.log('获取失败', res) } }) } }) [代码] 给大家解释下上面的代码,我们通过wx.login来获取code,然后通过wx.request调用我们定义的php后台。url里的 Demo.php必须和你的php文件名保持一致。 [图片] 效果 点击按钮以后,就可以成功的获取到我们所需的小程序openid了。效果图如下 [图片] 到这里我们就成功的实现了PHP获取小程序openid的功能了,是不是很简单。 后面我会写更多关于php和小程序的文章,敬请关注。
2019-09-21