微信公众平台开发实例教程第1章微信公众平台开发概述
- 格式:pptx
- 大小:2.65 MB
- 文档页数:24


微信公众平台的Java开发详解(工程代码+解析)说明:本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行讲解分析,让初学者尽快上手。
在阅读本文之前,应对微信公众平台的官方开发文档有所了解,知道接收和发送的都是xml格式的数据。
另外,在做内容回复时用到了图灵机器人的api接口,这是一个自然语言解析的开放平台,可以帮我们解决整个微信开发过程中最困难的问题,此处不多讲,下面会有其详细的调用方式。
1.1 在登录微信官方平台之后,开启开发者模式,此时需要我们填写url和token,所谓url就是我们自己服务器的接口,用WechatServlet.java来实现,相关解释已经在注释中说明,代码如下:[java]view plaincopy1.package demo.servlet;2.3.import java.io.BufferedReader;4.import java.io.IOException;5.import java.io.InputStream;6.import java.io.InputStreamReader;7.import java.io.OutputStream;8.9.import javax.servlet.ServletException;10.import javax.servlet.http.HttpServlet;11.import javax.servlet.http.HttpServletRequest;12.import javax.servlet.http.HttpServletResponse;13.14.import demo.process.WechatProcess;15./**16. * 微信服务端收发消息接口17. *18. * @author pamchen-119. *20. */21.public class WechatServlet extends HttpServlet {22.23./**24. * The doGet method of the servlet. <br>25. *26. * This method is called when a form has its tag value method equals toget.27. *28. * @param request29. * the request send by the client to the server30. * @param response31. * the response send by the server to the client32. * @throws ServletException33. * if an error occurred34. * @throws IOException35. * if an error occurred36. */37.public void doGet(HttpServletRequest request, HttpServletResponse response)38.throws ServletException, IOException {39. request.setCharacterEncoding("UTF-8");40. response.setCharacterEncoding("UTF-8");41.42./** 读取接收到的xml消息 */43. StringBuffer sb = new StringBuffer();44. InputStream is = request.getInputStream();45. InputStreamReader isr = new InputStreamReader(is, "UTF-8");46. BufferedReader br = new BufferedReader(isr);47. String s = "";48.while ((s = br.readLine()) != null) {49. sb.append(s);50. }51. String xml = sb.toString(); //次即为接收到微信端发送过来的xml数据52.53. String result = "";54./** 判断是否是微信接入激活验证,只有首次接入验证时才会收到echostr参数,此时需要把它直接返回 */55. String echostr = request.getParameter("echostr");56.if (echostr != null && echostr.length() > 1) {57. result = echostr;58. } else {59.//正常的微信处理流程60. result = new WechatProcess().processWechatMag(xml);61. }62.63.try {64. OutputStream os = response.getOutputStream();65. os.write(result.getBytes("UTF-8"));66. os.flush();67. os.close();68. } catch (Exception e) {69. e.printStackTrace();70. }71. }72.73./**74. * The doPost method of the servlet. <br>75. *76. * This method is called when a form has its tag value method equals to77. * post.78. *79. * @param request80. * the request send by the client to the server81. * @param response82. * the response send by the server to the client83. * @throws ServletException84. * if an error occurred85. * @throws IOException86. * if an error occurred87. */88.public void doPost(HttpServletRequest request, HttpServletResponse response)89.throws ServletException, IOException {90. doGet(request, response);91. }92.93.}1.2 相应的web.xml配置信息如下,在生成WechatServlet.java的同时,可自动生成web.xml中的配置。
微信公众平台接口开发指南注册成为开发者注册公众账号,需要登记自己的真实身份信息注意:设置公众号信息时一定要谨慎,‘公众号名称’与‘微信号’填写后是不能修改的,需事先认真想好注册完成后,进入系统,选择导航上的‘高级功能’其中有两个模式:‘编辑模式’与‘开发模式’默认开启的为‘编辑模式’进入‘编辑模式’,点击右上角的‘关闭’链接进入‘开发模式’,点击右上角的‘开启’按钮开启后可以看到:点击‘成为开发者’URL、TOKEN认证成为开发者的第一步就是填写URL、TOKEN信息,来对你服务器进行验证1)把下面代码复制并保存为一个php文件(如weixin.php)<?php/*** wechat php test*///define your tokendefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();class wechatCallbackapiTest{public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDA TA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDA TA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";if(!empty( $keyword )){$msgType = "text";$contentStr = "Welcome to wechat world!";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}else {echo "";exit;}}private function checkSignature(){$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 ){return true;}else{return false;}}}?>2)修改TOKENTOKEN是用来进行交互安全认证的,你自己随意定义,注意保证安全定义后修改代码,在代码顶部找到define("TOKEN", "weixin");把值改为你自己的TOKEN值(如:mytoken),保存文件,然后上传到服务器,要确保可以访问3)填写URL TOKEN信息回到公众平台页面,把URL TOKEN信息填写后提交,需要保证URL与上传的php文件地址一致,并且TOKEN值与php中定义的一致信息填写正确后提交,正常会提示完成信息至此,已经正式成为了开发者,接下来就可以安装自己的思路开发程序了微信交互示例做一个简单的示例:用户发送什么文字,我们就回复什么文字注意:复制代码后要把TOKEN值修改为自己的<?php/*** wechat php test*///define your tokendefine("TOKEN", "xxx");$str = '';$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();class wechatCallbackapiTest{public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;$this->responseMsg();exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDA TA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDA TA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>1</FuncFlag></xml>";if(!empty( $keyword )){$msgType = "text";$contentStr = $keyword;$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else{echo "Input something...";}}else {echo "";exit;}}private function checkSignature(){$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 ){return true;}else{return false;}}}?>用户关注后发送欢迎信息在实际应用中,用户第一次关注是,我们需要发送欢迎和提示信息,就需要下面的判断代码if($keyword === "Hello2BizUser"){$contentStr = "欢迎信息";}开发文档中写明,用户关注后服务器自动发送过来的字符串为"Hello2BizUser",我们就依次来判断了注意:信息模板中此项<FuncFlag>1</FuncFlag>的值要设为1,这样用户微信中才会显示有新消息的标志此文档总结了微信公众平台开发的起步过程,接下来就需要大家发挥自己创造力了,祝大家开发出更多更有益的应用。
微信公众平台开发者文档整理自微信官网微信公众平台作为一个最受欢迎的社交媒体平台,它提供了许多有用的功能,这些功能可以帮助企业、组织和个人与他们的客户和关注者进行更加紧密和有效的互动。
与此同时,微信公众平台还提供了开发者工具,让开发者可以自由地为自己的公众号定制各种功能。
本篇文章将给大家介绍微信公众平台开发者文档的主要内容,以帮助开发者更好地了解和使用微信公众平台的功能。
1. 开发工具概述微信公众平台的开发工具是专门为开发者设计的,它们可以帮助开发者轻松地定制他们的公众号功能,包括图文信息、自动回复、自定义菜单、模板消息、素材管理、客服等。
此外,微信公众平台还提供了一系列API接口,可以帮助开发者更加灵活地定制和使用微信公众平台的功能。
2. 开发文档微信公众平台的开发文档非常全面,可以帮助开发者深入了解微信公众平台的各种功能和接口。
开发文档分为三个部分:基础介绍、API文档和FAQ。
基础介绍部分主要介绍了微信公众平台的基本概念和功能,开发者可以通过阅读此部分文档来了解微信公众平台是如何工作的。
API文档部分详细介绍了微信公众平台提供的各个API接口,开发者可以根据自己的需求来选择和使用适当的API接口。
FAQ部分则包含了微信公众平台开发中可能遇到的一些常见问题和解决方法,帮助开发者快速解决问题并提高开发效率。
3. 开发者社区和示例代码微信公众平台还提供了一个开发者社区,可以帮助开发者之间互相交流和分享开发经验。
开发者社区中包含了丰富的文章和教程,帮助开发者更好地了解和使用微信公众平台的各种功能。
此外,微信公众平台还提供了示例代码,开发者可以通过模仿这些示例代码来学习如何使用各种API接口和定制功能。
4. 开发者认证和接口权限为了保障微信公众平台的安全和稳定运行,微信公众平台对开发者进行了认证,并提供了不同级别的接口权限。
开发者需要提交相关的认证申请并通过审核后才能获得相应的接口权限。
认证和接口权限的申请流程可以在微信公众平台的开发者文档中找到。