美文网首页互联网科技PHP经验分享
PHP获取小程序openid,10行代码快速获取小程序openi

PHP获取小程序openid,10行代码快速获取小程序openi

作者: 编程小石头666 | 来源:发表于2019-09-21 21:23 被阅读0次

    上一节教大家如何在本地运行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和小程序的文章,敬请关注。

    相关文章

      网友评论

        本文标题:PHP获取小程序openid,10行代码快速获取小程序openi

        本文链接:https://www.haomeiwen.com/subject/oxgeuctx.html