zoukankan      html  css  js  c++  java
  • 微信小程序获取用户手机号

    获取手机号第一次不能在开发工具中使用,需要在真机上获取,第一次需要用户获取短信验证码。

    微信小程序代码:

    getPhoneNumber: function (e) {
    if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
    that.callBackError(e.detail.errMsg);
    } else {
    let params = {
    open_id: wx.getStorageSync('wx_openid'),//用户open_id,不一定需要
    sessionKey: wx.getStorageSync('session_key'),//调用wx.loign接口 获取code 上传服务器获取用户open_id ,session_key
    encryptedData: e.detail.encryptedData,//调用获取用户手机号组件,直接获取
    iv: e.detail.iv,//调用获取用户手机号组件,直接获取
    userType: 3//不一定需要
    }
    console.log(params);
    return;
    https.user(config.user, params).then((res) => {
    console.log(res)
    }).catch(e => {
    that.callBackError(e.message);
    });
    }
    },
     
    thinkPHP5代码
    use applibwxlibwxBizDataCrypt;
    private function getUserPhone($user)
    {
    $appid = Config::get("WXAPPID");
    $sessionKey = $_POST['sessionKey'];
    $encryptedData = $_POST['encryptedData'];
    $iv = $_POST['iv'];
    $wx = new wxBizDataCrypt($appid, $sessionKey);//微信解密函数,微信提供了php代码dome
    $errCode = $wx->decryptData($encryptedData, $iv, $data);//微信解密函数
    if ($errCode == 0) {
    $data = json_decode($data, ture);
    $phoneNumber = $data['phoneNumber'];
    $user->where('open_id',$_POST['wx_openid'])->update(['phone' => $phoneNumber]);
    return json_encode(['errorCode' => 0,"phone" => $phoneNumber]);
    } else {
    return $data;
    }
    }
     微信解密函数https://developers.weixin.qq.com/miniprogram/dev/api/signature.html#wxchecksessionobject
     
  • 相关阅读:
    hihoCoder #1077 RMQ问题再临-线段树
    ms sql 获取字符串首字母
    如何设置gen_server在退出时执行相关操作
    C++拾遗
    [置顶] Linux下文件和目录权限说明
    Android百度地图之显示地图
    USACO March. 2012
    JNI之HelloWorld
    复习C语言系列二:动态调用函数指针数组
    HDU2527:Safe Or Unsafe(哈弗曼树)
  • 原文地址:https://www.cnblogs.com/xyc211/p/9260355.html
Copyright © 2011-2022 走看看