首页 > 代码库 > 微信开发关注回复 oauth2(1)

微信开发关注回复 oauth2(1)

服务器配置

第一步:服务器选择;

我选的是新浪的 http://sae.sina.com.cn/ ,具体如何配置就不用细说了,就相当于租用一台服务器一样

第二步:上传代码;共三个件,分别是index.php,oauth2.php,redirectUri.php

index.php 代码如下:

<?php/**	微信公众平台*/define("TOKEN", "weixin");//与管理平台的TOKEN设置一致$wechatObj = new wechatCallbackapiTest();$wechatObj->responseMsg();class wechatCallbackapiTest{	public function valid()//验证接口用,管理平台后台设置的时候请调用此方法进行验证    {        $echoStr = $_GET["echostr"];		        if($this->checkSignature()){        	echo $echoStr;        	exit;        }    }    public function responseMsg()//接受用户信息并返回图文信息    {		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];		if (!empty($postStr)){                              	$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);							                $fromUsername = $postObj->FromUserName;                $toUsername = $postObj->ToUserName;                $keyword = trim($postObj->Content);                $time = time();				//加载图文模版				$picTpl = "<xml>							<ToUserName><![CDATA[%s]]></ToUserName>							<FromUserName><![CDATA[%s]]></FromUserName>							<CreateTime>%s</CreateTime>							<MsgType><![CDATA[%s]]></MsgType>							<ArticleCount>1</ArticleCount>							<Articles>							<item>							<Title><![CDATA[%s]]></Title>							<Description><![CDATA[%s]]></Description>							<PicUrl><![CDATA[%s]]></PicUrl>							<Url><![CDATA[%s]]></Url>							</item>							</Articles>							<FuncFlag>1</FuncFlag>							</xml> ";              		$msgType = "news";					$title = "标题:关注回复";					$data  = http://www.mamicode.com/date(‘Y-m-d‘);"内容:谢谢关注,这里只是测试!";					$image = "http://m.baidu.com/static/index/l.gif";                    $turl="http://meapp.sinaapp.com/oauth2.php"; //这里需要改为你的域名                	$resultStr = sprintf($picTpl, $fromUsername, $toUsername, $time, $msgType, $title,$desription,$image,$turl);                	echo $resultStr;          }else {        	echo "请输入任意文字!";        	exit;        }    }		//封装的验证	private function checkSignature()	{        $signature = $_GET["signature"];        $timestamp = $_GET["timestamp"];        $nonce = $_GET["nonce"];	        				$token = TOKEN;		$tmpArr = array($token, $timestamp, $nonce);		sort($tmpArr);		$tmpStr = implode( $tmpArr );		$tmpStr = sha1( $tmpStr );				if( $tmpStr == $signature ){			return true;		}else{			return false;		}	}}?>

oauth2.php

<?php$strappid="wx0000000000"; //微信APPID$gourl=urlencode("http://meapp.sinaapp.com/redirectUri.php");//这里的域名换成自己的echo "<h1>";echo "<a href=http://www.mamicode.com/‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=$strappid&redirect_uri=$gourl&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect‘>点击这里获取用户信息</a>";echo "</h1>";?>

 

redirectUri.php

<?phpif (isset($_GET[‘code‘])){

$appid = "你的appid";
$secret = "你的secret";
$code = $_GET["code"];
$get_token_url = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=‘.$appid.‘&secret=‘.$secret.‘&code=‘.$code.‘&grant_type=authorization_code‘;

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_token_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);
$json_obj = json_decode($res,true);

//根据openid和access_token查询用户信息
$access_token = $json_obj[‘access_token‘];
$openid = $json_obj[‘openid‘];
$get_user_info_url = ‘https://api.weixin.qq.com/sns/userinfo?access_token=‘.$access_token.‘&openid=‘.$openid.‘&lang=zh_CN‘;

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$res = curl_exec($ch);
curl_close($ch);

//解析json
$user_obj = json_decode($res,true);
$_SESSION[‘user‘] = $user_obj;
print_r($user_obj);

}else{    echo "NO CODE";}echo "<hr>";echo "更详细请到http://mp.weixin.qq.com/wiki/index.php?title=%E7%BD%91%E9%A1%B5%E6%8E%88%E6%9D%83%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF"?>

 

微信配置

第一步:申请微信公众测试号,用微信扫一扫即可:

http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

第二步:配置测试号

接口配置信息

输入URL 如:http://meapp.sinaapp.com

输入Token 如:weixin

第三步:oauth2授权配置

点oauth2.0网页授权 后面的 修改 

授权回调页面域名:输入meapp.sinaapp.com (注意:这里不加http://,如果加http://会出现 redirect_uri 错误)

第四步:扫描测试号二维码,看看是不是可以了,简单吧!