码迷,mamicode.com
首页 > 微信 > 详细

微信公众平台开发模式

时间:2014-08-13 18:30:46      阅读:498      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   io   文件   

微信公众平台提供了开发者模式,开启开发者模式的方法入下图

bubuko.com,布布扣

在右侧的工具栏最后一项“开发者中心”。点击进入“开发者中心”,需要配置服务器路径URL,和表示符Token。之后完成申请接入:

(1)将微信提供的php文件放到服务器上,下载地址:http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip;

(2)确认文件名和配置URL中的文件名一致;

(3)修改php文件中define("TOKEN", "weixin")修改成页面中的配置;

(4)完成接入。

为了完成接受用户消息,需要修改wx_sample.php文件,注释接入认证的代码,添加消息返回的代码。

$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();//必须注释掉
$wechatObj->responseMsg();

此时,用户向公众平台发送消息,都会返回“Welcome to wechat world!”。

  接受和回复消息都是在responseMsg函数中定义的。该函数代码:

 1     public function responseMsg()
 2     {
 3         //get post data, May be due to the different environments
 4         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 5           //extract post data
 6         if (!empty($postStr)){              
 7                 $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
 8                 $fromUsername = $postObj->FromUserName;
 9                 $toUsername = $postObj->ToUserName;
10                 $keyword = trim($postObj->Content);
11                 $time = time();
12                 $textTpl = "<xml>
13                             <ToUserName><![CDATA[%s]]></ToUserName>
14                             <FromUserName><![CDATA[%s]]></FromUserName>
15                             <CreateTime>%s</CreateTime>
16                             <MsgType><![CDATA[%s]]></MsgType>
17                             <Content><![CDATA[%s]]></Content>
18                             <FuncFlag>0</FuncFlag>
19                             </xml>";             
20                 if(!empty( $keyword ))
21                 {
22                     $msgType = "text";
23                     $contentStr = "Welcome to wechat world!";
24                     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
25                     echo $resultStr;
26                 }else{
27                     echo "Input something...";
28                 }
29 
30         }else {
31             echo "";
32             exit;
33         }
34     }

微信推送到后台服务器的数据都是XML格式,不同类型的消息有不同的格式,接受文字消息的格式如下:

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
解析原始数据,将XML文件转换为对象,
ToUserName: 代表公众平台的id号,你可以将多个微信公众平台的后台配置成一个位置,通过toUserName判断是哪个公众平台。
FromUserName:用户id号
MsgType: 是消息类型,普通文本消息是“text”,图片消息是“image”。
示例代码接受文本消息,构造返回普通文本消息的XML文件。如果想实现接受用户发送的图片信息,可以用用下面的代码:
 1 if(!strcmp($postObj->MsgType,‘image‘))
 2 {//判断消息是图片类型
 3       $url = $postObj->PicUrl;//PicUrl是图片存储在微信服务器的地址
 4       $rand= md5(rand()*10000000);
 5       $file= "/wxpicfiles/".$rand.".jpg";//设置图片保存在本地的位置
 6       $ch = curl_init($url);
 7       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 8       $out = curl_exec($ch);//下载图片文件
 9       file_put_contents($file,$out);//保存在本地            
10  }

如果想返回给用户图文链接消息,入下图,需要(1)标题、(2)图片地址、(3)图片说明、(4)链接地址。四个选项。

bubuko.com,布布扣

$linkTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]></Url>
</item>
</Articles>
</xml>"; 
$title = "文章标题";
$pic_descript = "详细描述";
$pic_url = "http://www.sina.cn/pic/2234.jpg";
$link = "http://www.baidu.com";
$resultStr = sprintf($linkTpl, $fromUsername, $toUsername, $time,$title,$pic_descript,$pic_url,$url);

 

 

微信公众平台开发模式,布布扣,bubuko.com

微信公众平台开发模式

标签:des   style   blog   http   color   os   io   文件   

原文地址:http://www.cnblogs.com/birdskyws/p/3910493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!