1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息

tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息

时间:2020-10-27 13:32:17

相关推荐

tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息

获取用户基本信息(UnionID机制)

获取用户基本信息(UnionID机制)

在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.)绑定公众号后,才可利用UnionID机制来满足上述需求。

UnionID机制说明:

开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

获取用户基本信息(包括UnionID机制)

开发者可通过OpenID来获取用户基本信息。请使用https协议。接口调用请求说明

http请求方式:GET

https://api./cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

参数说明

返回说明

正常情况下,微信会返回下述JSON数据包给公众号:{

"subscribe":1,

"openid":"o6_bmjrPTlm6_2sgVt7hMZOPfL2M",

"nickname":"Band",

"sex":1,

"language":"zh_CN",

"city":"广州",

"province":"广东",

"country":"中国",

"headimgurl":"/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",

"subscribe_time":1382694957,

"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"

"remark":"",

"groupid":0,

"tagid_list":[128,2],

"subscribe_scene":"ADD_SCENE_QR_CODE",

"qr_scene":98765,

"qr_scene_str":""

}

参数说明

实例:thinkphp5+微信公众号获取用户基本信息<?php

namespaceapp\wxapiswh\controller;

usethink\Controller;

error_reporting(0);

//基本设置

classWeixinextendsController

{

publicfunctionhead_user(){

$weixin_config=\think\Db::name('wx_setupdb')->find();

$appid=$weixin_config['appid'];

$redirect_uri=urlencode('/wxapiswh/Weixin/getUser');//将字符串以URL编码。

$url="https://open./connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&

response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";

header("Location:".$url);//header()函数向客户端发送原始的HTTP报头。

}

publicfunctiongetUser(){

header("content-type:text/html;charset=utf-8");

$code=$_GET["code"];//预定义的$_GET变量用于收集来自method="get"的表单中的值。

if(isset($_GET['code'])){//判断code是否存在

$userinfo=$this->getUserInfo($code);

$nickname=$userinfo['nickname'];//获取nickname对应的值,即用户名

$headimgurl=$userinfo['headimgurl'];

$city=$userinfo['city'];

$country=$userinfo['country'];

$province=$userinfo['province'];

echo"\n";

echo"html>

\n";

print'

';

print'';//打印输出

print'

用户名:'.$nickname.'

';//打印输出

print'

城市:'.$country.'-'.$province.'-'.$city.'

';//打印输出

print'

';

print'';

}else{

echo"NOCODE";

}

}

publicfunctiongetUserInfo($code)

{

$weixin_config=\think\Db::name('wx_setupdb')->find();

$appid=$weixin_config['appid'];

$appsecret=$weixin_config['appsecret'];

//Getaccess_token

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

$access_token_json=$this->https_request($access_token_url);//自定义函数

$access_token_array=json_decode($access_token_json,true);//对JSON格式的字符串进行解码,转换为PHP变量,自带函数

//获取access_token

$access_token=$access_token_array['access_token'];//获取access_token对应的值

//获取openid

$openid=$access_token_array['openid'];//获取openid对应的值

//Getuserinfo

$userinfo_url="https://api./sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";

$userinfo_json=$this->https_request($userinfo_url);

$userinfo_array=json_decode($userinfo_json,ture);

return$userinfo_array;

}

publicfunctionhttps_request($url)//自定义函数,访问url返回结果

{

$curl=curl_init();

curl_setopt($curl,CURLOPT_URL,$url);

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);

$data=curl_exec($curl);

if(curl_errno($curl)){

return'ERROR'.curl_error($curl);

}

curl_close($curl);

return$data;

}

}

效果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。