评论

PHP获取小程序的openid(附小程序与php完整代码)

1.在微信小程序开发者平台,配置服务器域名 2.在小程序的app.js中请求接口 3.PHP请求接口获取openid

1.在微信小程序开发者平台,配置服务器域名

这里配置的是https的,需要先在服务器配置ssl证书,我使用的是阿里云的证书,在阿里云的文档里面有详细步骤。

2.在小程序的app.js中请求接口

微信官方文档地址 https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject

// 登录
   wx.login({
     success: res => {
       // 发送 res.code 到后台换取 openId, sessionKey, unionId
       wx.request({
         url: "https://配置的合法域名/test.php",
         data: {
           code: res.code
         },
         method: 'POST',
         header: { 'content-type': 'application/x-www-form-urlencoded' },
         success: res=> {
           that.globalData.openid = res.data.openid;
           console.log(that.globalData.openid)
         }
       })
     }
   })

   globalData: {
       userInfo: null,
       openid: 0
}

3.PHP请求接口获取openid

class testController extends Yaf_Controller_Abstract
{
    protected $appid = "你的appid";

    protected $secret = "你的secret";

    protected $grant_type = "authorization_code";


    //获取用户openid
    public function getOpenidAction()
    {
        $request = $this->getRequest();

        //获取微信小程序传过来的code
        $js_code = $request->getPost("code");

        $curl = curl_init();

        //使用curl_setopt() 设置要获得url地址
         $url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $this->appid . '&secret=' . $this->secret . '&js_code=' . $js_code . '&grant_type=' . $this->grant_type;
         curl_setopt($curl, CURLOPT_URL, $url);

         //设置是否输出header
         curl_setopt($curl, CURLOPT_HEADER, false);

         //设置是否输出结果
         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

         //设置是否检查服务器端的证书
         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

         //使用curl_exec()将curl返回的结果转换成正常数据并保存到一个变量中
         $data = curl_exec($curl);

         //关闭会话
         curl_close($curl);

         print_r($data);
    }
  } 

PHP完整代码:http://github.crmeb.net/u/LXT

点赞 1
收藏
评论
登录 后发表内容