最近开始做公司的微信项目,深切的感受到了微信的不同,做微信是需要从头开始好好学的,在此记录一下学习微信的过程,也希望以后能根据这些文章迅速掌握微信开发的知识。少踩坑,,(laravel框架)

1、首先需要进入微信公众号--》基本配置--》填上你的服务器信息--》验证TOKEN,获取appId和appkey

2、下载官方的SDK文件,参考文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543

demo下载地址:       方倍工作室 的。

3、首先需要明确(1)验证token通过,证明你的服务器可以和微信进行交互

(2)进入微信页面,发送消息,此时,后台应接受消息,并判断消息类型

(3)根据消息类型,拼接不同的xml数据,返回给模板

(4)然后就实现了微信上自动回复的功能了。

4、

Java 微信自动回复 a标签 微信自动回复开发教程_图文信息


以上为验证token之后,在控制器设置的微信入口文件:这个文件也就是demo中的reponseMsg()方法:

主要用于获得微信发送过来的数据,然后再把tousername,fromusername等信息放到一起,提取用户发送消息的类型$event,并且请求下一个方法:

5、

Java 微信自动回复 a标签 微信自动回复开发教程_Java 微信自动回复 a标签_02

这个方法主要是为了判断请求的类型,根据不同的类型会有不同的处理方法。在此只处理text类型的数据,并且调用text方法,获取拼接的数据。最后返回给响应方法handle_response()方法。

6、

Java 微信自动回复 a标签 微信自动回复开发教程_Java 微信自动回复 a标签_03

在这里,我们把回复的内容都给写死了,大家到时候也完全可以从数据库读出这些数据。里面就是简单的拼接了一些图文信息,然后把这些信息返回。数组$arr是方便在模板上输出图文消息。

7、

Java 微信自动回复 a标签 微信自动回复开发教程_Java 微信自动回复 a标签_04

该控制器主要是根据传过来的event不同,判断该调用哪个模板,该回复什么样的消息等。如果$event==text,则调用默认的模板:$xml = view(wechat.tpl_reply_text) ;如果$event为news,则需要返回图文消息,我们把数据都放到数组里面,在模板上输出即可。

8、

<xml>
  <ToUserName><![CDATA[{{$ToUserName}}]]></ToUserName>
  <FromUserName><![CDATA[{{$FromUserName}}]]></FromUserName>
  <CreateTime>{{$CreateTime}}</CreateTime>
  <MsgType><![CDATA[news]]></MsgType>
  <ArticleCount>{{$ArticleCount}}</ArticleCount>
  <Articles>
@foreach ($news  as $k => $v)
  <item>
  <Title><![CDATA[{{$v['Title']}}]]></Title>
  <Description><![CDATA[{{$v['Description']}}]]></Description>
  <PicUrl><![CDATA[{{$v['PicUrl']}}]]></PicUrl>
  <Url><![CDATA[{{$v['Url']}}]]></Url>
  </item>
@endforeach
  </Articles>
</xml>

这就是模板部分:直接输出即可。

9、在此已经是完成了微信的自动回复功能。用户输入指定的内容的时候,,我们也回复指定的内容回去。

微信官方的给的demo被拆分了,没有按照官方上那种返回xml数据,而是采用了laravel的模板来输出。


10、总结:虽然整体来说不够简洁,但也算是实现了功能,在此做个记录。以后水平高了再完善完善。