1、部署get-weixin-code.html至你的微信授权回调域名的目录下.例如:http://wx.abc.com/get-weixin-code.html
2、在其他页面的使用方式如下,类似于直接通过微信回调的方式,只是将请求地址改成了get-weixin-code.html的地址,另外省 去了response_type参数(因为它只能为code)以及#wechat_redirect的hash
它们会在get-weixin-code.html里面去加上location.href = 'http://wx.abc.com/get-weixin-code.html?appid=XXX&scope=XXX&state=XXX&redirect_uri=' + encodeURIComponent(location.href);
3、get-weixin-code.html页面从微信那里拿到code之后会重新跳转回调用的页面,并且在url后面带上code
附上在CI框架中实现代码示例:
public function GetOpenid() { if (!isset($_GET['code']))
{ //触发微信返回code码 $redirect_uri = urlencode(site_url('wap/login/GetOpenid')); $url = site_url('wap/common/get_weixin_code').'?appid='.APPID.'&scope=snsapi_userinfo&state=STATE&redirect_uri='.$redirect_uri; //请求公共的地址 redirect($url); exit();
} else { //获取code码,以获取openid $code = $_GET['code']; $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".APPID."&secret=".APPSECRET."&code={$code}&grant_type=authorization_code"; $result = weixinCurl($url); //curl请求微信获取access_token接口 print_r($result);
}
}