微信公共账号开发(未认证服务号)

最近微信公共账号很火

一、注册

https://mp.weixin.qq.com/申请注册一个公共账号

根据提示一步一步将各种信息完整(官方客服问答:http://kf.qq.com/faq/120911VrYVrA130619v6zaAn.html)

二、账号类型

公共账号类型有两种:订阅号与服务号(详细区别见:http://kf.qq.com/faq/120911VrYVrA130805byM32u.html

订阅号:为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式。

服务号:给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台。

        主要区别:

        1、服务号可以申请自定义菜单,而订阅号不能;

        2、服务号每月只能群发一条信息,订阅号可以每天群发一条消息;

        3、服务号群发的消息有消息提醒,订阅号群发的消息没有,并直接放入订阅号文件夹当中;

三、功能

1、群发功能:每月可手动群发一条信息(可图可文可语音视频)

2、高级功能:分为两类:编辑模式、开发模式(只可启用一种)

(a)编辑模式:指所有的公众号运营者都可以通过简单的编辑,设置“按关键字回复”等功能。您可以设定常用的文字/语言/图片/录音作为回复消息,并制定自动回复的规则。当订阅用户的行为符合自动回复规则的时候,就会收到自动回复的消息。

(b)开发模式:为开发者提供与用户进行消息交互的能力。对于成功接入消息接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用http请求对接入的网址进行消息推送,第三方服务器可通过响应包回复特定结构,从而达到回复消息的目的。

tip:微信公众平台编辑模式和开发模式互相切换后对原保存在内容不会做更改的,原来保存的内容是不会丢失的。

四、模式开发配置

1、服务器配置(用于接收用户信息)

需要绑定接受消息的URL与自定义的Token。

2、开发者凭据(用于)

只有服务号与通过微信认证的才会有AppId、AppSecre;

用于获取access_token。

具备以上2项,就可以自行开发。官方也有在线接口测试(http://mp.weixin.qq.com/debug

tip:在线测试的所有操作皆会真实影响账号

3、下载sample

在 http://mp.weixin.qq.com/wiki/index.php?title=接入指南 连接中找到“PHP示例代码下载:下载”

将官方sample下载下来并且置于之前设置的URL的路径下(URL:http://www...../sample.php)

文件名可任意更改,只要与URL匹配就好;

五、代码讲解

1、验证

[php]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. define("TOKEN""weixin");//此处“weixin”改成在官网中自定义填写的Token  
  2. $wechatObj = new wechatCallbackapiTest();  
  3. $wechatObj->valid();//验证方法,仅第一次验证时使用,成功验证后注释掉  
  4. //$wechatObj->responseMsg (); // 添加这句,验证成功后取消注释。此方法用于接收数据与发送数据  

2、接收数据

[php]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. public function responseMsg()  
  2.     {  
  3.     //get post data, May be due to the different environments  
  4.     $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];  
  5.   
  6.         //extract post data  
  7.     if (!empty($postStr)){  
  8.                   
  9.                 $postObj = simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA);  
  10.                 $fromUsername = $postObj->FromUserName;      //获取发送者账号(OpenID)  
  11.                 $toUsername = $postObj->ToUserName;      //获取接受者账号  
  12.                 $keyword = trim($postObj->Content);      //获取发送者发出的字符  
  13.                 $time = time();                 //获取当前时间  
  14.                 $textTpl = "<xml>  
  15.                     <ToUserName><![CDATA[%s]]></ToUserName>  
  16.                     <FromUserName><![CDATA[%s]]></FromUserName>  
  17.                     <CreateTime>%s</CreateTime>  
  18.                     <MsgType><![CDATA[%s]]></MsgType>  
  19.                     <Content><![CDATA[%s]]></Content>  
  20.                     <FuncFlag>0</FuncFlag>  
  21.                     </xml>";             //此为文本回复的模板,可参照官网(皆为xml)  
  22.         if(!empty$keyword ))//无论发什么,只要不为空  
  23.                 {  
  24.                     $msgType = "text";          //类型为文本回复  
  25.                     $contentStr = "Welcome to wechat world!";//发送内容  
  26.                     $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr);//除了第一个参数外,剩下每个参数对应着$textTpl中每个%s  
  27.                     echo $resultStr;  
  28.                 }else{  
  29.                     echo "Input something...";  
  30.                 }  
  31.   
  32.         }else {  
  33.             echo "";  
  34.             exit;  
  35.         }  
  36.     }  

在接收数据时,亦可再添加几句
[php]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. $msgType = $postObj->MsgType;  
  2. $event = $postObj->Event;  
  3. $eventKey = $postObj->EventKey;  
3、分类(详情请见官方文档)

(a)普通类型$msgType为(文本text、图片image、语音voice、视频video、地理位置location、连接ink)

(b)事件推送$msgType为event。

事件推送需根据$event再分类:

subscribe(订阅)、unsubscribe(取消订阅)、ticket(二维码,已关注为SCAN、为关注为subscribe)、LOCATION(地理位置)、CLICK(菜单点击事件:事件KEY值与自定义菜单接口中KEY值对应)、VIEW(菜单点击事件:事件KEY值为设置的跳转URL)

4、回复模板(http://mp.weixin.qq.com/wiki/index.php?title=发送被动响应消息

1) 回复文本消息

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <xml>  
  2. <ToUserName><![CDATA[toUser]]></ToUserName>  
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4. <CreateTime>12345678</CreateTime>  
  5. <MsgType><![CDATA[text]]></MsgType>  
  6. <Content><![CDATA[你好]]></Content>  
  7. </xml>  

2 )回复图片消息

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <xml>  
  2. <ToUserName><![CDATA[toUser]]></ToUserName>  
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4. <CreateTime>12345678</CreateTime>  
  5. <MsgType><![CDATA[image]]></MsgType>  
  6. <Image>  
  7.     <MediaId><![CDATA[media_id]]></MediaId>  
  8. </Image>  
  9. </xml>  

3 )回复语音消息

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <xml>  
  2. <ToUserName><![CDATA[toUser]]></ToUserName>  
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4. <CreateTime>12345678</CreateTime>  
  5. <MsgType><![CDATA[voice]]></MsgType>  
  6. <Voice>  
  7.     <MediaId><![CDATA[media_id]]></MediaId>  
  8. </Voice>  
  9. </xml>  

4 )回复视频消息

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <xml>  
  2. <ToUserName><![CDATA[toUser]]></ToUserName>  
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4. <CreateTime>12345678</CreateTime>  
  5. <MsgType><![CDATA[video]]></MsgType>  
  6. <Video>  
  7.     <MediaId><![CDATA[media_id]]></MediaId>  
  8.     <Title><![CDATA[title]]></Title>  
  9.     <Description><![CDATA[description]]></Description>  
  10. </Video>   
  11. </xml>  

5 )回复音乐消息

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <xml>  
  2. <ToUserName><![CDATA[toUser]]></ToUserName>  
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4. <CreateTime>12345678</CreateTime>  
  5. <MsgType><![CDATA[music]]></MsgType>  
  6. <Music>  
  7.     <Title><![CDATA[TITLE]]></Title>  
  8.     <Description><![CDATA[DESCRIPTION]]></Description>  
  9.     <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>  
  10.     <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>  
  11.     <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>  
  12. </Music>  
  13. </xml>  

6 )回复图文消息(第一个item为大图模式,item个数上线为10)

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <xml>  
  2. <ToUserName><![CDATA[toUser]]></ToUserName>  
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4. <CreateTime>12345678</CreateTime>  
  5. <MsgType><![CDATA[news]]></MsgType>  
  6. <ArticleCount>2</ArticleCount>  
  7. <Articles>  
  8.     <item>  
  9.         <Title><![CDATA[title1]]></Title>   
  10.         <Description><![CDATA[description1]]></Description>  
  11.         <PicUrl><![CDATA[picurl]]></PicUrl>  
  12.         <Url><![CDATA[url]]></Url>  
  13.     </item>  
  14.     <item>  
  15.         <Title><![CDATA[title]]></Title>  
  16.         <Description><![CDATA[description]]></Description>  
  17.         <PicUrl><![CDATA[picurl]]></PicUrl>  
  18.         <Url><![CDATA[url]]></Url>  
  19.     </item>  
  20. </Articles>  
  21. </xml>   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值