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

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;

}

好了就到这里了。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容