當(dāng)前位置:首頁(yè) > IT技術(shù) > 微信平臺(tái) > 正文

PHP獲取小程序openid,10行代碼快速獲取小程序openid
2021-08-07 18:56:24

上一節(jié)教大家如何在本地運(yùn)行php后臺(tái)項(xiàng)目,并可以被小程序訪問(wèn)到,這一節(jié)就來(lái)給大家講一個(gè)實(shí)際工作中常用的需求,微信小程序openid的獲取。當(dāng)然了,還是用我們的php做為后臺(tái)。

老規(guī)矩,先看效果圖

PHP獲取小程序openid,10行代碼快速獲取小程序openid_PHP
通過(guò)上圖我們可以看到我們成功的獲取到了小程序的openid,而這里獲取openid是借助php后臺(tái)獲取的。

我們的php核心代碼,只有下面10行

PHP獲取小程序openid,10行代碼快速獲取小程序openid_小程序_02
下面就來(lái)講講具體的實(shí)現(xiàn)步驟。

一,首先要搭建一個(gè)可以本地訪問(wèn)的php后臺(tái)

這里我在上一節(jié)的文章已經(jīng)講過(guò)了,還不知道怎么配置本地php項(xiàng)目的同學(xué)可以去翻看我上篇文章:phpstorm運(yùn)行本地PHP服務(wù)器,實(shí)現(xiàn)小程序可以訪問(wèn)的PHP后臺(tái)

二,編寫php代碼

只需要?jiǎng)?chuàng)建一個(gè)如下圖所示的簡(jiǎn)單的php文件就可以了。
PHP獲取小程序openid,10行代碼快速獲取小程序openid_PHP_03
把代碼給大家貼出來(lái)。要記得把下面的appid和appSecret換成你自己的。至于如果獲取,我之前的文章也有講過(guò),去翻下我零基礎(chǔ)入門小程序開(kāi)發(fā)的文章即可。

<?php
/**
 * 2019/9/21 20:34
 * author: 編程小石頭
 * wechat:2501902696
 * desc: 獲取小程序用戶openid
 */

getOpenid();
function getOpenid() {
    $code = $_GET['code'];//小程序傳來(lái)的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);//把a(bǔ)ppid,appsecret,code拼接到url里
    $result = curl_get($getUrl);//請(qǐng)求拼接好的url
    $wxResult = json_decode($result, true);
    if (empty($wxResult)) {
        echo '獲取openid時(shí)異常,微信內(nèi)部錯(cuò)誤';
    } else {
        $loginFail = array_key_exists('errcode', $wxResult);
        if ($loginFail) {//請(qǐng)求失敗
            var_dump($wxResult);
        } else {//請(qǐng)求成功
            $openid = $wxResult['openid'];
            echo "獲取openid成功成功:" . $openid;
        }
    }
}

//php請(qǐng)求網(wǎng)絡(luò)的方法
function curl_get($url, &$httpCode = 0) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    //不做證書校驗(yàn),部署在linux環(huán)境下請(qǐng)改為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;
}

代碼就這么多,我們編寫好以后,運(yùn)行下項(xiàng)目。
PHP獲取小程序openid,10行代碼快速獲取小程序openid_php小程序_04

三,編寫小程序代碼

小程序的代碼很簡(jiǎn)單,就是一個(gè)按鈕,點(diǎn)擊按鈕的時(shí)候我們請(qǐng)求上面定義好的php后臺(tái)項(xiàng)目。
小程序代碼也很簡(jiǎn)單
PHP獲取小程序openid,10行代碼快速獲取小程序openid_PHP_05
PHP獲取小程序openid,10行代碼快速獲取小程序openid_php小程序_06
代碼就上圖這么點(diǎn),我把code.js里的代碼貼出來(lái)給大家

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)
      }
    })
  }
})

給大家解釋下上面的代碼,我們通過(guò)wx.login來(lái)獲取code,然后通過(guò)wx.request調(diào)用我們定義的php后臺(tái)。url里的 Demo.php必須和你的php文件名保持一致。
PHP獲取小程序openid,10行代碼快速獲取小程序openid_php+小程序_07

效果

點(diǎn)擊按鈕以后,就可以成功的獲取到我們所需的小程序openid了。效果圖如下
PHP獲取小程序openid,10行代碼快速獲取小程序openid_小程序_08

到這里我們就成功的實(shí)現(xiàn)了PHP獲取小程序openid的功能了,是不是很簡(jiǎn)單。

后面我會(huì)寫更多關(guān)于php和小程序的文章,敬請(qǐng)關(guān)注。

?

本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >