微信登陆包括两部分:1.常用的静默授权;2.获取用户身份信息
开发环境:
Thinkphp3.2.3beta+onethink、yershop
新浪SAE服务器,点此注册
认证微信服务号
静默授权
微信公众号授权登陆有两种,常用的一种为静默授权snsapi_base。下面讲它的实现代码
开发文档:http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html
目标:获取用户openid
假设我的微信登陆地址为 Wap/User/wxlogin()方法
基础配置
1.认证微信服务号
2.接口权限:网页账号,填写自己要使用的域名(www.abc.com这样的)
3.服务器后台添加配置字段:C(‘DOMAIN’) C(‘APPID’) C(‘AppSecret’),在代码中调用
C(‘DOMAIN’),在yershop后台中为自动获取的域名地址
C(‘APPID’),公众平台应用ID
C(‘AppSecret’),公众平台密钥
获取code核心代码
//获取code代码
function createOauthUrlForCode($redirectUrl)
{
//lifan
$param ['appid'] =C('APPID');
$param ['redirect_uri'] = $redirectUrl. '&getOpenId=1';
$param ['response_type'] = 'code';
$param ['scope'] = 'snsapi_base';
$param ['state'] = 123;
$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?' . http_build_query ( $param ) . '#wechat_redirect';
return $url;
}
获取openid核心代码
function getOpenid()
{
$urlObj["appid"] = C('APPID');
$urlObj["secret"] = C('AppSecret');
$urlObj["code"] = I ( 'code' );
$urlObj["grant_type"] = "authorization_code";
$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?' . http_build_query ( $urlObj );
//初始化curl
$ch = curl_init();
//设置超时
curl_setopt($ch, CURLOP_TIMEOUT, 60);
curl_setopt($ch