PHP如何实现微信网页授权

微信网页授权是服务号才有的高级功能,开发者可以通过授权后获取用户的基本信息;在此之前,想要获取消息信息只能在用户和公众号交互时根据openid获取用户信息;而微信网页授权可在不需要消息交互,也不需要关注的情况下获取用户的基本信息。

首先先修改网页授权的阿里云域名


微信网页授权时通过OAuth2.0完成的,整个过程分为三步:

  • 用户授权,获取code;
  • 根据code获取access_token【可通过refresh_token刷新获取较长有效期】
  • 通过access_token和openid获取用户信息

1.用户授权,获取code

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
       //公众号
    	$appid='wx7e35296d7fd50349';

    	$redirect_uri=urlencode('http://www.foreverhao.top/vote/index.php/home/index/getcode');//将字符串以url编码

    	$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
    	header("Location:" . $url);//header函数向客户发送原始的HTTP报头
    }
    public function getcode(){
    	$code=$_GET['code'];//预定义$_GET变量用于收集来自method="get"的表单中的值
    	echo $code;
    	// $json = $this->access_token($code);
    	// echo $json;
    }

可以添加关键字投票和相应地址访问微信时可以获取code

2.根据code获取access_token

 public function getcode(){
    	$code=$_GET['code'];//预定义$_GET变量用于收集来自method="get"的表单中的值
    	// echo $code;
    	$json = $this->access_token($code);
    	echo $json;
    }
    //获取access_token
    private function access_token($code){
    	$appid="wx7e35296d7fd50349";
    	$appsecret="7313d506cd98681236061585c3cbb1f1";

    	$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";

    	$ret=https_request($url);
    	return $ret;
    }
目前先实现两步获取access_token;
展开阅读全文

没有更多推荐了,返回首页