微信公众号开发笔记(一)
将内网地址映射到外网
2016 年 4 月 8 日发现的新工具 网址:
配置文件的写法:
server_addr: "server.ngrok.cc:4443" auth_token: "abfdc23163c424a7956d0543fe53b4e2" tunnels: sunny: subdomain: "liweismile" proto: http: 8088
其中,token 是登录平台以后可以查询到的;subdomain 是登录平台以后自己添加的。 启动命令:ngrok.exe -config ngrok.cfg start sunny。
映射的新网址:
所以,我们要将自己的应用配置成 80 端口可以访问的应用就可以了。
工具:ngrok 使用方法非常简单。 命令行:
在 cmd 命令中先切换到 ngrok 所在的位置再进行如下操作
ngrok -config ngrok.cfg -subdomain example 8080
说明:example:自己任意设置;8080:tomcat的端口号。
我的实践:
ngrok -config ngrok.cfg -subdomain liwei 8080
命令行工具非常直观地显示出映射关系:
开发模式接入
第一步:填写服务器配置
这一部分详细信息,可以查看【公众平台开发者文档】【开发者必读】【接入指南】。
第二步:验证服务器地址的有效性
Java 示例代码:
注意事项:我们这里使用了 SpringMVC 框架开发,在这个控制器方法里,我们一定要使用 void 作为返回值,并且将返回给服务器的信息使用 PrintWriter 这个类输出回去。
这里我们还使用到一个校验工具类,代码如下:
接收并且处理文本消息
我们写一个和配置的 URL 相同的控制器方法,注意,这里是 post 请求。请看下面的示例代码:
这里使用到一个工具类:
public class MessageUtil { /** * 将 XML 转换为 Map * * @param request * @return * @throws IOException * @throws DocumentException */ @SuppressWarnings("unchecked") public static Map<String, String> xmlToMap(HttpServletRequest request) throws IOException, DocumentException { Map<String, String> map = new HashMap<>(); SAXReader reader = new SAXReader(); InputStream ins = request.getInputStream(); Document doc = reader.read(ins); Element root = doc.getRootElement(); List<Element> list = root.elements(); for (Element e : list) { map.put(e.getName(), e.getText()); } ins.close(); return map; } /** * 将文本消息(TextMessage 对象)转换为 xml 格式 * * @param textMessage * @return */ public static String textMessageToXML(TextMessage textMessage) { XStream xtream = new XStream(); xtream.alias("xml", textMessage.getClass()); String xmlStr = xtream.toXML(textMessage); return xmlStr; } }
实现效果和控制台:
在这篇文章的最后,我们再介绍一种加密的写法:
public static String sha1(String str) { StringBuffer sb = new StringBuffer(); try { MessageDigest md = MessageDigest.getInstance("sha1"); md.update(str.getBytes()); byte[] msg = md.digest(); // 将 十进制转换为 十六进制 for (byte b : msg) { sb.append(String.format("%02x", b)); } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return sb.toString(); }
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序制作(Vant Weapp)