微信公众平台高级模式开发教程带有开发示例代码(带图)
首先注册
微信公众平台 账户,需要提供身份证的数码相片或公司执照,及办公电话和地址信息等。
微信公众平台注册地址: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; } } } ?> |