OAuthWeixin
function OAuthWeixin($callback) { $isWeixinBrowser = isWeixinBrowser(); if (empty($GLOBALS ['user'] ['appid'])) { $memberPublicInfo = M('member_public')->where(array('token'=>get_token()))->find(); $GLOBALS ['user'] ['appid'] = $memberPublicInfo['appid']; $GLOBALS ['user'] ['secret'] = $memberPublicInfo['secret']; } if (!$isWeixinBrowser || empty($GLOBALS ['user'] ['appid'])) { redirect($callback . '&openid=-1'); } $param ['appid'] = $GLOBALS ['user'] ['appid']; if (!isset($_GET ['getOpenId'])) { $param ['redirect_uri'] = $callback . '&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'; redirect($url); } elseif ($_GET ['state']) { $param ['secret'] = $GLOBALS ['user'] ['secret']; $param ['code'] = I('code'); $param ['grant_type'] = 'authorization_code'; $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?' . http_build_query($param); $content = file_get_contents($url); $content = json_decode($content, true); redirect($callback . '&openid=' . $content ['openid']); } }
getWeixinUserInfo
// 通过openid获取微信用户基本信息,此功能只有认证的服务号才能用 function getWeixinUserInfo($openid, $token) { if (empty($GLOBALS ['user'] ['appid'])) { $memberPublicInfo = M('member_public')->where(array('token'=>$token))->find(); $GLOBALS ['user'] ['appid'] = $memberPublicInfo['appid']; $GLOBALS ['user'] ['secret'] = $memberPublicInfo['secret']; } $param ['appid'] = $GLOBALS ['user'] ['appid']; $param ['secret'] = $GLOBALS ['user'] ['secret']; $param ['grant_type'] = 'client_credential'; $url = 'https://api.weixin.qq.com/cgi-bin/token?' . http_build_query($param); $content = file_get_contents($url); $content = json_decode($content, true); $param2 ['access_token'] = $content ['access_token']; $param2 ['openid'] = $openid; $param2 ['lang'] = 'zh_CN'; $url = 'https://api.weixin.qq.com/cgi-bin/user/info?' . http_build_query($param2); $content = file_get_contents($url); $content = json_decode($content, true); session('wxUserInfo',$content); return $content; }
/** * 积分添加 */ function integralSetInc(){ $map['token'] = get_token(); $map['openid'] = get_openid(); $res = M('card_member')->where($map)->setInc('integral',10); if($res){ $this->ajaxReturn('ok'); }else{ $this->ajaxReturn('error'); } }