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;
}
好了就到这里了。。