1. 程式人生 > >微信小程式獲取使用者微信繫結的手機號碼|ThinkPHP|getPhoneNumber

微信小程式獲取使用者微信繫結的手機號碼|ThinkPHP|getPhoneNumber

,getPhoneNumber:function(e){
    if(e.detail.iv&&e.detail.encryptedData){
        // console.log(e.detail.iv)
        // console.log(e.detail.encryptedData)
        wx.login({
            success:(res)=>{
                wx.request({
                    url:`https://SERVER/Api/Index/get_session_key
` ,header:{'content-type':'application/json'} ,data:{ code:res.code } ,success:(res)=>{ console.log(res) let session_key=res.data.session_key wx.request({ url
:`https://SERVER/Api/Index/decryptData2` ,header:{'content-type':'application/json'} ,data:{ 'encryptedData':encodeURIComponent(e.detail.encryptedData) ,'iv':e.detail.iv ,'session_key'
:session_key } ,success:(res)=>{ console.log(res.data) if(!res.data){ console.log('獲取失敗,請重試') wx.showToast({ title:'網路錯誤,請重試…' ,icon:'none' }) }else{ this.setData({ phone:res.data.purePhoneNumber }) } } }) } }) } }) }else{ console.log('拒絕獲取手機號碼') } }
function get_session_key($code){
    $url="https://api.weixin.qq.com/sns/jscode2session?appid=".C('MP_APPID')."&secret=".C('MP_SECRET')."&js_code=$code&grant_type=authorization_code";
    $res=jsondecode($this->httpGet($url));
    $out=[
        'session_key'=>$res[session_key],
    ];
    $this->ajaxReturn($out);
}

function decryptData2($encryptedData,$iv,$session_key){
    $aesKey=base64_decode($session_key);
    $aesIV=base64_decode(str_replace(' ','+',$iv));
    $aesCipher=base64_decode(urldecode($encryptedData));
    $result=openssl_decrypt($aesCipher,"AES-128-CBC",$aesKey,1,$aesIV);
    $this->ajaxReturn(jsondecode($result));
}

function httpGet($url){
    $curl=curl_init();
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl,CURLOPT_TIMEOUT,500);
    // 為保證第三方伺服器與微信伺服器之間資料傳輸的安全性,所有微信介面採用https方式呼叫,必須使用下面2行程式碼開啟ssl安全校驗。
    // 如果在部署過程中程式碼在此處驗證失敗,請到 http://curl.haxx.se/ca/cacert.pem 下載新的證書判別檔案。
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($curl,CURLOPT_URL,$url);
    $res=curl_exec($curl);
    curl_close($curl);
    return $res;
}

相關推薦

程式獲取使用者手機號碼|ThinkPHP|getPhoneNumber

,getPhoneNumber:function(e){ if(e.detail.iv&&e.detail.encryptedData){ // console.log(e.detail.iv) // co

程式Swiper+wx.request 資料重新整理

.wxml <swiper class="swiper1" indicator-dots="{{indicatorDots}}"   autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duratio

如何在原生程式中實現資料雙向歡迎使用CSDN-markdown編輯器

在原生小程式開發中,資料流是單向的,無法雙向繫結,但是要實現雙向繫結的功能還是蠻簡單的! 下文要講的是小程式框架 minapp 中實現雙向繫結的原理,在 minapp 中,你只需要在 wxml 模板中給元件的屬性名後加上 .sync 就可以實現雙向繫

程式頁面跳轉事件/冒泡,非冒泡事件

什麼是事件 事件是檢視層到邏輯層的通訊方式。 事件可以將使用者的行為反饋到邏輯層進行處理。 事件可以繫結在元件上,當達到觸發事件,就會執行邏輯層中對應的事件處理函式。 事件

程式 獲取標籤裡面的自定義資料

<view wx:for="{{receiverlist}}" wx:for-item="receiver" wx:key="" wx:for-index="idx"> <input type='number' value='{{salesNumber}}' data-na

程式獲取openid返回40029的一種錯誤情況

微信小程式返回40029的情況原因有很多,遇到後大概總結了幾個已知的 1.小程式裡傳到後臺的code被微信的呼叫介面使用了兩次(只能使用一次) 2.appid、AppSecret的值不對(這個自己複製感覺一般不會錯) 3.自己遇到的最難受的原因:建立專案的appid跟你請求url裡的ap

解決 程式獲取使用者資訊時彈框不顯示的問題

在開發中碰到使用者點選按鈕獲取使用者資訊時,彈框出不來的情況 wxml: <button class='btn' bindgetuserinfo="loginClick" open-type="getUserInfo">請授權</button> js: l

程式 - 獲取所在位置(省、市、區)

    實現步驟 1. 獲取當前經緯度   2. 呼叫騰訊(百度、高德)地圖對應的請求地址,一般都會有獨一的key, 譬如   騰訊地圖呼叫地址: https://apis.map.qq.com/ws/geocoder/v1/?l

程式獲取經緯度

1、在index.wxml檔案建立如下程式碼,longitude,latitude為以獲取經緯度為地圖中心,獲取當前位置經緯度資訊 <view>緯度:{{latitude}}</view> <view>經度:{{longitude}}</view&g

程式獲取使用者位置以及城市

做小程式的時候,有需要維護使用者地理位置的地方,這時如果可以自動獲取當前位置,對於提升使用者體驗有很大的幫助,然後檢視官方文件,有個wx.getLocation介面,詳細說明如下: wx.getLocation(Object object) 呼叫前需要 使用者授權 

程式 獲取元素高度(獲取元素節點資訊)

微信小程式 獲取元素高度(獲取元素節點資訊)   如果高度要px單位的話: let query = wx.createSelectorQuery(); query.select('.content').boundingClientRect(rect=>{ let he

程式-獲取使用者資訊-前端寫法

開發微信小程式,前提是申請到一個 appId 並拿到 appSecret ,並在微信公眾平臺配置好小程式對應的伺服器域名。 小程式可以通過兩種方式獲取到使用者資訊,並且獲取到資訊之後,推薦直接存到小程式的全域性變數中,後續直接在全域性變數中讀取,無需在重新獲取。 方法一: 使用 appI

程式-獲取使用者資訊-後端寫法

之前介紹了兩種小程式獲取使用者資訊的寫法,其中第二種需要後端配合完成。 後端我使用了一個第三方的 jar 包: 我使用的是 2.9.6.BETA 版本。 這個版本提供了通過微信引數解析使用者資訊的方法,只要在配置檔案中把微信小程式的資訊配置完成就可以直接使用,非常方便。

程式獲取cookie以及設定cookie

小程式開發中我們需要獲取到後端給的cookie進行請求驗證,但是微信並沒有幫我們儲存cookie,那麼我們要維持會話需要自己來儲存cookie,並且請求的時候加上cookie 1.獲取cookie 在登入請求後讀取 返回值的, header的cookie,並本地儲存 //登入請求回來

程式獲取input輸入框的值

微信小程式獲取input輸入框的值 作者: 輕酌~淺醉 參考:ralStyle貴 官方文件 1,form表單獲取 wxml程式碼 <view class='box'> <form bindsubmit='searchBox'>

程式--獲取已釋出遊戲和程式原始碼

最近一直在做微信小遊戲的開發,發現了一個好玩的事 ,在這裡記錄一下。 這段時間一直在做一些小遊戲 ,小程式的開發,但有的時候會發現效能上總是不那麼的盡如人意(畢竟我這小菜鳥水平有限),於是就想到,想要看看別的大神們是怎麼處理這些問題的(其實就是想看一下大神們的程式碼怎麼寫!)。但是,有一個問題就

關於程式獲取使用者openid的問題

1.個人開發者是獲取不到OpenId:之前測試一直拿不到,讀者可以試一下。 2.獲取的程式碼和輸出: //app.js App({ globalData: { appid: 'wx62a1hh8cfc28fdb',//appid需自己提供,此處的appid我隨機編寫 secr

程式獲取手機驗證碼

一種比較常見的功能獲取手機驗證碼 先看效果圖:     其實這個功能實現起來很簡單,主要就是調取第三方介面,拿到返回值驗證的問題 直接上程式碼吧: wxml頁面: <view class='changeInfo'> <view class='ch

程式——獲取當前頁面路由

getCurrentPages() 函式用於獲取當前頁面棧的例項,以陣列形式按棧的順序給出,第一個元素為首頁,最後一個元素為當前頁面。 let pages = getCurrentPages(); let currPage = null; if (pages.length) {

程式獲取表單初始值,提交改變過的資料

 form表單,通過onload(options)獲取的引數給輸入框賦值,提交改變後的引數 <form bindsubmit="submitForm"> <view class='item'> <view class='label'>聯絡