php抓取网页域名(php语言为例介绍如何获取微信公众号用户openid分享)

优采云 发布时间: 2021-10-05 22:09

  php抓取网页域名(php语言为例介绍如何获取微信公众号用户openid分享)

  微信公众平台,简称公众号。曾被命名为“公众平台”、“媒体平台”、微信公众号,最终定位为“公众平台”。作为一个公共平台,一个微信公众号会有很多订阅者,简称粉丝。微信公众平台获取微信订阅者(粉丝)的openid在公众号的开发中有很多用途,包括向订阅者发送消息,包括各种消息、模板消息等,这里分享给需要获取openid的开发者一个简单的流程和部分代码,以及一些解决问题的方法,第一次联系微信openid的朋友参考一下。目的只是为了获取openid和个人基本信息。至于优化和应用,

  openid是公众号订阅者(粉丝)的唯一标识,仅对当前公众号有效。

  下面以php语言为例介绍如何获取微信订阅者的openid。

  一、准备

  首先你得有公众号,类型是服务号,外网可以访问的域名(如果要映射公网服务器,需要备案)。获取openid需要的公众号的appid和secret(登录微信公众平台,【开发】->【基本配置】中的开发者ID(AppID)和开发者密码(AppSecret)只是)。二是设置网页授权域名(登录微信官方平台,在【设置】->【公众号设置】->【功能设置】->网页授权域名,按照步骤进行设置it),这个域名就是你得到openid的web项目发布的域名。请注意,服务器必须在端口 80 上运行。

  二、调用接口获取code

  public function getcode(){

//基本配置

$appid=**************;//这里填写你的appid

$redirect_uri=urlencode("http://*********/getuserinfo");//这里用你的网页授权回调地址替换一下

$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);

}

  当用户用微信进入我们的网页并调用getcode方法时,如果参数正确且网页的授权域名正确,微信会将页面重定向到我们提交的回调地址,我们想要的代码就会也被传递过去。.

  三、获取code作为参数调用接口获取openid

  //回调函数

public function getuserinfo(){

$appid = "***********";//这里添加你的微信公众号appid

$secret = "***********";//这里添加你的微信公众号secret

//这里获取到了code

$code = $_GET['code'];

//第一步:取得openid

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

$oauth2 = $this->http_curl($oauth2Url);

//accestoken

$access_token = $oauth2["access_token"];

//openid

$openid = $oauth2['openid'];

//第二步:根据全局access_token和openid查询用户信息

$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";

$userinfo = $this->http_curl($get_user_info_url);

dump($userinfo);

}

function http_curl($url){

//用curl传参

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

//关闭ssl验证

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch,CURLOPT_HEADER, 0);

$output = curl_exec($ch);

curl_close($ch);

return json_decode($output, true);

}

  四、备注

  1. 如果网页授权域名设置与提交的回调地址域名不对应,微信将无法回调。(网页授权域名:用户在网页授权页面同意对公众号进行授权后,微信会将授权数据发送到回调页面,回调页面需要在该域名下,以确保安全可靠。该域名需要ICP注册,不支持IP地址、端口号和短链域名)

  2. 获取openid使用的纯授权方式是静态授权,没有订阅用户的许可(用户看不到授权过程),想要获取用户头像、昵称等信息是另一种授权(用户端会弹出一个授权窗口)。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线