微信公众号制作怎么设置 用户发送代码自动回复,例如:用户发送茂个号码公众号就自动回复 该号码中奖或没有

&&&&& 最近一直在网上捣鼓东西,之前看到有篇文章介绍微信开发,感觉很有意思,然后在官方网站找到API文档就开始开发了,花了一晚上时间,基本实现一般关键字的处理回复,以及城市天气的预报。因为文档是PHP示例,我也边学习边用PHP开发起来。
  可以先微信扫一扫,体验一下."看完代码就不神奇了" .&_&.
  注:代码GitHub地址在文章后面列出.
一.功能介绍:
  可以识别多种关键字,可以查询城市天气,许多功能用户可以自己探索.
  输入 help 的提示信息如下:
  发送 城市名天气 获取城市天气,  如:发送 北京天气 获取城市北京的天气.
  发送 help 可以获得帮助.
  发送 img 可看到网站预览图.
  发送 news 可看图片新闻.
  发送 music 可听音乐.
  当然也可以发送其他关键字来查看是否能获得您想要的信息.  您还可以给我发语音,位置,图片等.
二.使用方法:
&&& 1.直接使用.
&  直接使用已经搭建好的新浪云应用程序,那"URL"填写/index.php 和"Token"填写superman这两个就不能更改了。
&  2.自己部署程序.
   如果自己部署,如果你没有服务器,对PHP程序部署不熟悉的。
&&&&& 你可以参考我的另一篇文章:
  部署好以后,&URL&改为你的新浪应用程序地址,"Token"改为你代码中的token配置。如果你不修改代码,那token就不用改,还是之前的superman。
三.代码解释.
&&&& 1.定义自己的token.
define("TOKEN", "superman");
  2.验证签名.
//验证签名
public function valid()
$echoStr = $_GET["echostr"];
$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){
echo $echoS
&& 3.消息类型分类处理
//消息类型处理
switch ($RX_TYPE)
case "event"://微信事件消息
$result = $this-&receiveEvent($postObj);
case "text"://文本消息,微信自带表情也是文本符号,(着重处理这种类型消息)
$result = $this-&receiveText($postObj);
case "image"://图片消息
$result = $this-&receiveImage($postObj);
case "location"://位置信息
$result = $this-&receiveLocation($postObj);
case "voice"://语言信息
$result = $this-&receiveVoice($postObj);
case "video"://视频信息
$result = $this-&receiveVideo($postObj);
case "link"://链接消息
$result = $this-&receiveLink($postObj);
$result = "unknown msg type: ".$RX_TYPE;
&4.天气播报功能.
else if(strstr($keyword, "天气") )//包含天气关键字
$code=$this-&check(mb_substr($keyword , 0 , 2 , 'utf-8'));//获取中文字符&南京天气&前两个中文,"南京",通过check(str)找到城市对应的天气编码.
$getcontent = file_get_contents(".cn/data/cityinfo/{$code}.html");//通过url获取json数据.
if(!$getcontent){
return '暂时没有取到天气数据,请稍后再试';
$getresult=json_decode($getcontent,true);
$info=$getresult['weatherinfo'];
$content="{$info['city']}的天气情况:\n";//解析获取json数据,展示天气情况.
$content .= "今天天气:{$info['weather']}\n";
$content .= "最低温度:{$info['temp1']}\n";
$content .= "最高温度:{$info['temp2']}\n";
&四.效果预览:
&1.关注后提示信息.
2.天气播报功能.
&代码GitHub地址:
&微信公众帐号开发帮助文档:
阅读(...) 评论()微信公众平台关键词自动回复的设置方法
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
  来源:网络 作者:未知
  微信公众号关键词自动回复的操作步骤
  登录微信公众平台=》高级功能=》编辑模式=》自动回复-设置=》关键词自动回复=》添加规则,即可添加相应的关键词自动回复信息,每个回复您信息的微信用户回复时匹配相关内容就会自动回复相应的信息。
  这里的全匹配是指是否匹配整个关键词,若不选中则关键词部分命中也会匹配。如&微信公众平台&,不全匹配的话,用户输入&微信&也能匹配到。
  注:关键词自动回复字数上限为300个字,关键词自动回复规则的条数:认证与非认证用户上限为200条;此功能暂不支持区分组别
  注:关注用户发送消息命中设置关键字回复规则后会有5秒钟的响应时间。
  关于自定义回复的一些技巧
  自定义回复目前已经统一权限。也就是说,现在普通用户和认证用户的自定义回复权限是一样的。也就是最多200条。但是关于这个200条微信官方并没有明确说明。
  这里我来给大家简单说明下。200条理论上可以创建200个不同的规则,如果每个规则的关键词不重复并且每个规则只有一个回复的话。但是实际应用中,大家肯定会遇到如下的场景。让我一一列出告知大家。
  (一)每个关键词最多只能有五个不同的回复。虽然官方已经放宽权限为200条,但是每个关键词的回复条数仍然为最多无个不同的回复。
  (二)规则名字不重要。只是方便用户快速认出自己创建的自定义回复。随你写什么名字。重复也不要紧。
  (三)关键词很重要。自定义回复只允许某个关键词出现一次。即使是在不同的规则下面。如果出现相同的关键词,则自动被最新设置的一个所替代。所以,关键词在设置的时候千万不要出现重复的情况。
  (四)匹配不匹配大不同。在自定义回复的旁边有一个全匹配的选择。可能很多人不懂这个全匹配的效果作用。我简单举例下,比如你设置的关键词是&听歌&。在全匹配的情况下,只有输入&听歌&才会产生效果,&我要听歌&不会产生效果。但是,如果在不设置全匹配的情况下,不管是&听歌&还是&我要听歌&都会产生效果。到底是全匹配还是不匹配就看你想要的效果了。
  (五)回复很随机,按序排列回复也可行。一般情况下,设置的自定义回复如果存在多个回复,那么是按照随机性质来反馈给用户的。
  可是,我想让它按照我设置的顺序回复,可不可以呢?可以说可以,也可以说不可以。怎么讲呢?本人发现,如果在自定义回复设置&发送全部回复&的话,发送全部回复的顺序是始终不变的,按照你设置的顺序一条条发送给对方的。从这个意义上来说,按序排列回复是可行的,只不过不是几次发送给用户,而是一次反馈全部。
小编工资已与此赏挂钩!一赏一分钱!求打赏↓ ↓ ↓
如果你喜欢本文章,请赐赏:
已赐赏的人
我的电子书微信--使用客服消息异步自动回复用户消息
接收到微信用户发送过来的消息,我们服务器处理并回应。
需要注意一下,微信说明
对于每一个POST请求,开发者在响应包(Get)中返回特定XML结构,对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。请注意,回复图片等多媒体消息时需要预先上传多媒体文件到微信服务器,只支持认证服务号。
微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次,如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。
关于重试的消息排重,有msgid的消息推荐使用msgid排重。事件类型消息推荐使用FromUserName + CreateTime 排重。
假如服务器无法保证在五秒内处理并回复,必须直接回复空串(是指回复一个空字符串,而不是一个XML结构体中content字段的内容为空,请切勿误解),微信服务器不会对此作任何处理,并且不会发起重试。。这种情况下,可以使用客服消息接口进行异步回复。
请开发者注意,一旦遇到以下情况,微信都会在公众号会话中,向用户下发系统提示&该公众号暂时无法提供服务,请稍后再试&:
1、开发者在5秒内未回复任何内容
2、开发者回复了异常数据,比如JSON数据等
我们无法保证我们服务器能在5秒回应的话,推荐使用异步处理,使用客服消息回复用户(不讨论客服消息次数限制等问题)
WeixinServer
#region 静态全局变量
private static Token _Token =
private static Ticket _Ticket =
private readonly static string appid = &wx&;
private readonly static string secret = &abcdefghijklmnopqrstuvwxyz&;
private readonly static string domain = &&;
#endregion
// 消息处理
public void DisposeMsg(Stream stream)
XmlDocument doc = new XmlDocument();
doc.Load(stream);
string type = GetMsgType(doc);
string openid = GetMsgOpenid(doc);
string access_token = AccessToken();
string url = &https://api./cgi-bin/message/custom/send?access_token=& + access_
switch (type)
case &event&:
string ev = GetMsgEvent(doc);
if (ev == &subscribe&)
//关注时,回复用户消息
string data = &{\&touser\&:\&& + openid + &\&,\&msgtype\&:\&news\&,\&news\&:{\&articles\&: [{\&title\&:\&欢迎关注
&XXXX& \&,\&description\&:\&\&,\&url\&:\&\&,\&picurl\&:\&& + domain + &/weixin/msg/face1.png\&},{\&title\&:\&&XXXX&
安卓版下载\&,\&description\&:\&\&,\&url\&:\&\&,\&picurl\&:\&& + domain + &/weixin/msg/jiantou.png\&},{\&title\&:\&&XXXX&
苹果版下载\&,\&description\&:\&\&,\&url\&:\&\&,\&picurl\&:\&& + domain + &/weixin/msg/jiantou.png\&}]}}&;
HttpHelper.Post(url, data);
case &text&:
string content = GetMsgContent(doc);
string data = &&;
switch (content)
case &tw&:
data = &{\&touser\&:\&& + openid + &\&,\&msgtype\&:\&news\&,\&news\&:{\&articles\&: [{\&title\&:\&欢迎关注
&XXXX& \&,\&description\&:\&\&,\&url\&:\&\&,\&picurl\&:\&& + domain + &/weixin/msg/face1.png\&},{\&title\&:\& &XXXX&
安卓版下载\&,\&description\&:\&\&,\&url\&:\&\&,\&picurl\&:\&& + domain + &/weixin/msg/jiantou.png\&},{\&title\&:\& &XXXX&
苹果版下载\&,\&description\&:\&\&,\&url\&:\&\&,\&picurl\&:\&& + domain + &/weixin/msg/jiantou.png\&}]}}&;
content = &欢迎关注 &XXXX&\n\nAPP下载:&a href=\\\&\\\&&Android&/a&
&a href=\\\&\\\&&IOS&/a&&;
data = &{\&touser\&:\&& + openid + &\&,\&msgtype\&:\&text\&,\&text\&:{\&content\&:\&& + content + &\&}}&;
HttpHelper.Post(url, data);
Action里面处理
[HttpPost]
public ActionResult Access()
//异步操作 使用客服消息接口回复用户
Stream stream = Request.InputS
AsyncManager.OutstandingOperations.Increment();
var task = Task.Factory.StartNew(() =& weixin.DisposeMsg(stream));
task.ContinueWith(t =&
//AsyncManager.Parameters[&model&] = t.R
AsyncManager.OutstandingOperations.Decrement();
return Content(&&);
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 微信公众号设置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信