微信公众平台高级模式开发教程带有开发示例代码(带图)
首先注册
微信公众平台 账户,需要提供身份证的数码相片或公司执照,及办公电话和地址信息等。
微信公众平台注册地址:http://mp.weixin.qq.com/cgi-bin/readtemplate?t=wxm-realname-reg&lang=zh_CN
微信公众平台登录:
微信公众平台登录地址:http://mp.weixin.qq.com/cgi-bin/readtemplate?t=wxm-realname-reg&lang=zh_CN
首先进入到设置 中,上传自己的头像,及注册 微信号有情信息。这里的微信号或公众号名称可以在微信增加好友时能够查询的到。
下面开始激动人心的时刻吧:
点击高级功能 ,默认开启的是 编辑模式
我们点开进入到编辑模式,启用自动回复功能。
	
修改 被添加自动回复 的内容,里就是点击关注后,推送给用户的第一条信息,这里可以设置文字、语音、图片、视频等信息。
#p#副标题#e#
可以参考截图
	
点击保存后。我们就可以在微信客户端,增加对公众帐号的关注了。
这里我在 添加好友里,选择最后一项,增加公众帐号,输入PM25,点击关注。返回后,发现微信给我们发了条信息内容就是们上面输入的内容。
提供最新全国城市空气质量日报,实时推送最新 AQI、PM2.5(1h)、PM10(1h)、CO(1h)、NO2(1h)、O3(1h)、O3(8h)、SO2(1h)的空气质量数据,了解PM25数据,让您的生活更加安全、放心!
我们还可以根据关键词,回复定义好的内容等。
下面我们说下,高级模式的开发。
因为这种编辑模式 我们只能设置或回复有限的内容,假如我们有自己的会员信息有自己的客户群体,想让他们和现在有的平台对接起来,能够融合一起,这样就必须使用 开发模式
进入 开发模式 要先关闭 编辑模式,我们点击开启、关闭按钮,弹出关闭编辑模式,将停用相关功能。关闭编辑模式。
点击进入开发模式,点击开启关闭按钮。按钮成绿色状态为启用状态。
#p#副标题#e#
我们要配置 申请成为开发者,接口配置信息 填写URL和Token信息。
简单说明下:
URL这里为微信和你的数据接口对接的地址,这里微信主要是以POST方式把数据提交到你提供的接口平台,你对数据做出处理后显示的结果将在返回到微信公众平台上,并发布到用户客户端。
Token 这里是为了验证传过来的数据是不是微信官方的数据,预防有假冒的数据发送过来。
	
配置好后我们可以 开发文档 的示例 放到接受URL页面的代码里,进行对数据的处理
#p#副标题#e#
示例代码详解:
	
	对示例代码做下解释:
| 
<?php
/**
  * wechat php test
  */
//define your token
define("TOKEN", "weixin");  //这里填写在平台里填写的TOKEN了
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
	public function valid()
    {
        $echoStr = $_GET["echostr"];
        //valid signature , option
        if($this->checkSignature()){
        	echo $echoStr;
        	exit;
        }
    }
//这个函数是对过来的数据进行处理详细看内容
    public function responseMsg()
    {
		//get post data, May be due to the different environments
		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //这里是传送过来的数据内容是整个XML
      	//extract post data
		if (!empty($postStr)){
                
              	$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName; ////用户的名称
                $toUsername = $postObj->ToUserName;//用户的ID信息
                $keyword = trim($postObj->Content); //用户发送的内容
                $time = time();   //当前时间
                $textTpl = "<xml>
							<ToUserName><![CDATA[%s]]></ToUserName>
							<FromUserName><![CDATA[%s]]></FromUserName>
							<CreateTime>%s</CreateTime>
							<MsgType><![CDATA[%s]]></MsgType>
							<Content><![CDATA[%s]]></Content>
							<FuncFlag>0</FuncFlag>
							</xml>";             
				if(!empty( $keyword ))
                {//如果用户发送了内容就给在回复 "Welcome to wechat world!" ,这里你可以修改为自己的信息,或者对
                 //发送过来的数据进行整理处理,比方说像发送截取前1位数据,如果是1,处理1的内容,如果是2,处理2的内容
              		$msgType = "text";
                	$contentStr = "Welcome to wechat world!";
                	$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                	echo $resultStr;
                }else{
                	echo "Input something...";//如果没有内容则提示用户
                }
        }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;
		}
	}
}
?> | 



