微信开发关注回复 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  = date(‘Y-m-d‘);
					$desription = "内容:谢谢关注,这里只是测试!";
					$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=‘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

<?php
if (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 错误)

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

微信开发关注回复 oauth2(1),布布扣,bubuko.com

时间: 2024-12-21 20:30:59

微信开发关注回复 oauth2(1)的相关文章

记微信开发(关注回复)

记微信开发(关注回复) 在刚才增加的关键词回复代码上面添加代码: $ev = $postObj->Event; if ($ev = "subscribe") { $msgType = "text"; $contentStr = "感谢您的关注!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $r

记微信开发(关键词回复)

记微信开发(关键词回复) 将第50行的内容$contentStr = "欢迎光临!";变成一个选择条件句 测试结果: 更多的回复选择可以继续往下写-

[微信开发] - 消息回复及事件响应

微信平台的消息回复,的关键字(及)消息回复及关注事件消息响应, 其不同点如图: 在weixin4j作者的注释中,提到微信公众平台接受消息一共有这么8类: * <p> * Description: 接受消息分8类,普通消息(1.文本消息.2.图片消息.3.语音消息<br /> * .4.视频消息.5.地理位置消息.6.链接消息)<br /> * 事件推送(1.关注/取消关注事件.2.扫描带二维码参数事件.3.上报地理位置事件.4.自定义<br /> * 菜单事

tp5下php微信开发之上传图片素材

直接源代码了,比较累不想写了,里面由之前的基本的,本部分功能在最下面的2个函数里. 1 <?php 2 3 namespace app\index\controller; 4 5 use think\Controller; 6 7 //define your token 8 define("TOKEN", "weixin");//定义token 9 10 Class Index extends Controller 11 { 12 public functio

微信开发,springmvc,mybatis,java,公众平台

获取[下载地址] A 代码生成器(开发利器);     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身

php微信开发实现自定义菜单功能

首先说一下遇到的坑吧! 01我用的测试公众号,说好的有接口权限,结果呢,微信留了个坑,返回错误代码 48001 一查错误码 微信文档这样写:api功能未授权,请确认公众号已获得该接口,可以在公众平台官网-开发者中心页中查看接口权限 懵逼了吧! 半信半疑中,我果断换了认证过的服务号,一测试OK了 02代码的开头有空格也会报错,跟tp的机制有关,我的代码在tp下面. 03 调用接口的链接为https,结果我的服务器可能验证证书出错,最后找了半天才找到一种解决办法,就是在使用curl的部分使用如下代码

使用Java语言开发微信公众平台(三)——被关注回复与关键词回复

在上一篇文章中,我们实现了文本消息的接收与响应.可以在用户发送任何内容的时候,回复一段固定的文字.本章节中,我们将对上一章节的代码进行适当的完善,同时实现[被关注回复与关键词回复]功能. 一.微信可提供的消息类型 在上一篇文章中,在我们的Servalet中,我们有这样的一段代码: 我们说这是用于判断接收的消息类型是否为text,即是否为文本消息时,将用户发送的给信息拼接后返回.但这个这个功能现在不足以满足我们的时候,我们将重写代码,实现被关注时自动回复,以及根据关键词自动回复.而首先,我们需要了

《微信开发日志》之OAuth2验证接口

OAuth2接口说明: 企业应用中的URL链接(包括自定义菜单或者消息中的链接),可以通过OAuth2.0验证接口来获取员工的身份信息. 通过此接口获取用户身份会有一定的时间开销.对于频繁获取用户身份的场景,建议采用如下方案: 1.企业应用中的URL链接直接填写企业自己的页面地址 2.用户跳转到企业页面时,企业校验是否有代表用户身份的cookie,此cookie由企业生成 3.如果没有获取到cookie,重定向到OAuth验证链接,获取用户身份后,由企业生成代表用户身份的cookie 4.根据c

微信开发之关注自动回复

微信开发模式下关注自动回复官方给出的说明是: 推送XML数据包示例: <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[even