微信

Thinkphp+微信公众号下静默获取用户openid

2017-05-12  本文已影响25人  geeooooz

1.首先必须是服务号且已认证。

2.以我的项目为例

如果code存在则不用静默获取 else 

$user_url=get_url();

//urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。

redirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid=".C("WX_APPID")."&redirect_uri=".$user_url."&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect");

scope值为snsapi_base时为静默获取 scope为snsapi_userinfo时不是静默获取

静默获取:

$user_url=get_url();

//urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。

redirect("https://open.weixin.qq.com/connect/oauth2/authorize?appid=".C("WX_APPID")."&redirect_uri=".$user_url."&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect");

get_url 函数放入function.php公共函数

//获取当前网址

function get_url() {

$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';

$php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];

$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';

$relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$_SERVER['QUERY_STRING'] : $path_info);

return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;

}

好了就到这里了。。

上一篇下一篇

猜你喜欢

热点阅读