昨天把一个微信公众号从“编辑模式”转入了“开发模式”,捣鼓了一天,算是完成了该公众号的个人开发计划的第一步。这里简单记录一下如何在公众平台上“成为开发者”。

1.填写接口配置信息。
       当我们申请完一个公众号以后,在公众平台登陆该账号,选择“功能-高级功能-开发模式” 。选择开启开发模式(一定要打开,否则很可能在代码调试半天后发现没有反应,实际上是开发模式没打开)。
       在开启开发模式前,系统会要求你先成为开发者。成为开发者需要两个信息:
      
      URL对应的是你的网页所在响应php文件。比如我使用了公众平台上面的wx_sample.php文件来测试响应,而我的文件可以通过www.test.com/testing/wx_sample.php进行访问,那么我这里就直接填写www.test.com/testing/wx_sample.php。
      对应Token,如上所示为英文或数字,长3-32的任意串。可以随便给。比如我的公众号是做英语学习的话,我可以填yingyu。
      这个时候点击“提交”可能会发现提交失败,公众平台上提示“反应超时”之类的,这是因为我们还没有把wx_sample.php修改好并放到我们指定的URL里,这样的话我们点击提交,系统向该URL发包,却没有收到URL指定php文件的响应。自然会失败了。所以我们需要执行下面的第二步。
   
       2.修改wx_sample.php响应。
       打开wx_sample.php文件,在最开始有一句define语句:
       define("TOKEN", "weixin");
       这个示例中,把TOKEN定为了“weixin”。联想起我们在第一步中也遇到过一个Token,其实这2者是对应的,必须相同。我们这里需要把“weixin”改成在第一步中定下来的Token,这里用的是“yingyu”。
       将这个修改好的文件放到URL指定的位置,然后可以在公众平台上点击提交了。如无意外会收到成功的提示:
     
       完成上面2步,我们可以说就是已经完成公众号的“开发模式“接入了。但是到目前为止,我们的所作所为其实都”没有收到成效“——毕竟我们现在的公众号对我们发出的消息是没有任何响应的,我们也还没有体验过通过调试代码来对该公众号进行操控。下面第三步,我们将通过代码来控制我们的公众号——让我们的公众号对接收到的任意非空字符响应”Welcome to wechatworld!”
    
       3.文字响应消息。
       查看wx_sample.php文件,可以发现里面其实已经写有responseMsg函数,正是对任何非空字符响应welcome to wechatworld。我们需要做的是调用它。
      这里把responseMsg放到valid函数里面调用。每次用户发送消息上来,valid函数通过checkSighature函数的判断,确定消息是否来自微信服务器。如果是,那么调用responseMsg进行响应。
  

另外要注意的点是responseMsg必须在exit前被调用,否则会退出该php,那么就调用无效了。到这一步,我们基本算是体验了一下微信公众号的开发者接口入门了。后续要实现图文响应、语音响应等,都是大同小异了。主要就是对xml和部分参数的调整,xml格式和参数等在公众平台上都有详细的解析。第四步会以一个图文消息响应为例简单说说。

4. 图文响应消息。
   
    如上所示,首先要注意MsgType在这里是news,区别于原来的文字响应(text),其次,这个示例的图文消息是两条并存,所以ArticleCount是2,代表底下是2个item。如果只需要1个item,那么这里切记要改成1,去掉一个item。一个图文消息最多可以有十个item并存。还有就是对于里面各个变量的赋值。在原来的文字响应中我们没有提到是因为wx_sample.php里面已经帮我们很好的完成了,不需要操心。这里只需要根据原来wx_sample.php里的方法简单修改一下就好。
    wx_sample.php文字响应的xml对应赋值如下。有一点可能回引起不解地是在sprintf赋值中,fromUsername变量和toUsername变量对应的赋值似乎反了,分别对应了To和From。其实这没有错,因为对于发送过来的消息A,它存在发送方(用户)和接收方(公众号)。但是当我们回复消息时,我们的发送方与接收方应当是相反的,我们的发送方是我们自己,也就是公众号,而接收方应当是用户。之后的任何类型的响应消息的修改,也都是这个道理。
   



微信公众账号开发模式接入相关推荐

  1. 微信公众账号开发模式2

    原文链接:http://hetuo.kuaizhan.com/98/6/p13951590057aed 晚饭的时候发现微博不认识的人分享我快站的文章了,居然有自然流量了,O(∩_∩)O~~好吧,不说废 ...

  2. 微信公众账号开发模式1

    原文链接:http://hetuo.kuaizhan.com/70/28/p1382371171f506 最近调研微信公众平台,因为要接入,踩了一些坑,记录一下. 1.账号类型:未认证的微信公众平台订 ...

  3. 微信公众平台开发:接入JS-SDK和实现分享功能

    微信公众平台开发:接入JS-SDK和实现分享功能 一.本文是实现微信公众号自定义的分享功能开发,也是亲自实践实现该功的一些总结体会. 首先贴上微信JS-SDK说明文档地址:http://mp.weix ...

  4. 微信公众平台开发模式背后的原理?

    微信公众平台开发模式背后的原理? 想利用微信提供的网络通道实现自己的业务要求,想了解其背后的技术原理.给出建议或信息来源都好. 添加评论分享 查看全部 2 个回答 吴星,你好,很喜欢这个能学到许多知识 ...

  5. ICCMO微信公众账号开发系列(2)打造微信聊天机器人

    昨天我们已经成功的接入了微信公众账号.今天咱们来做一个微信聊天机器人.这个就需要一点点PHP的知识了.如果你不懂PHP呢,没关系,跟着一步一步做也 可以做出来. 这是在昨天的基础上做的,如果你还不会接 ...

  6. 编程语言PHP实现微信公众账号开发

    编程语言PHP实现微信公众账号开发 1.首先需要一个可以外网访问的接口url. 我这里是申请的新浪免费云服务器,http://xxxxx.applinzi.com/wx.php,具体自己可以去新浪云中 ...

  7. 微信公众账号开发利器 - jQuery WeUI V0.6.0 发布

    jQuery WeUI 是一个专门为对微信公众账号开发的一套UI库,它包含了 WEUI 的全部组件,另外还拓展了大量的常用组件,包括下拉刷新.滚动加载.日历.select 等. jQuery WeUI ...

  8. php判断微信内核,JavaScript_如何判断微信内置浏览器(通过User Agent实现),在进行微信公众账号开发的时 - phpStudy...

    如何判断微信内置浏览器(通过User Agent实现) 在进行微信公众账号开发的时候,其中很大一块是微站点的开发,我们需要知道当前的浏览器是微信内置的浏览器,那么如何判断呢? 微信内置浏览器的 Use ...

  9. 微信公众账号开发接口实现 - java servlet

    原文:微信公众账号开发接口实现 - java servlet 源代码下载地址:http://www.zuidaima.com/share/1550463697898496.htm 微信公众平台开发接口 ...

最新文章

  1. auuc 评估指标_分类之性能评估指标
  2. 循环获取结构体中的健名与值的实现
  3. [Angular2 Form] Style Validation in Angular 2 Forms
  4. 解决远程连接mysql错误1130
  5. 2020-12-14(全局/静态对象的构造函数和析构函数调用的时机以及地址)
  6. 中国煤化工行业运行现状与前景规划动向预测报告2022-2028年
  7. tentsqlserver中用bcp 来导入导出表数据
  8. .NET之生成数据库全流程
  9. OJ1034: 夏季促销
  10. rust异步之async、await、future
  11. 智能云端服务器连接不了,智能云解析,智能在哪里?
  12. 解决Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
  13. [leetcode]5179. 将二叉搜索树变平衡
  14. 评分卡模型开发(九)--上线监测
  15. udhcpc遇到问题
  16. 实施持续绩效管理流程的 6 大实用技巧
  17. 局域网流量监控_常见的企业电脑监控网络管理软件哪一款好呢?
  18. 玩数字域名投资有风险吗 风险与机遇并存
  19. 免费股票数据API接口
  20. 杀怪物(dfs)题解

热门文章

  1. 淘宝API获取商品详情
  2. 资源之基础知识(一)
  3. 简谈 HashMap 扩容过程
  4. 普通键盘如何改成和mac一样操作
  5. Python 商业网站
  6. 关于Taro3.0如何使用React-Native的Pushy以及android打包
  7. openwrt中日志记录操作
  8. ESP32的BLE使用学习
  9. js三元表达式的结果中不能使用逗号运行多行代码,逗号后的代码不受表达式控制
  10. Python和Php的比较