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');
}
}