从零开发微信公众号系列 【二】开发者基本配置和接入指南
2017-11-05 14:03
671 查看
微信文档
如果微信官方文档已能为您提供帮助,请忽略本文。
登录微信公众平台后台管理界面,左侧菜单开发->基本配置。
填写URL(服务器地址)、Token(令牌)、EncodingAESKey(消息加解密密钥)、明文加密。
填写完以上信息,验证时微信会发送一个get请求到填写的URL,开发者需要接收该请求并校验是否来自微信,如果是来自微信,返回请求中echostr参数内容(不校验直接返回也可以通过,校验是为了确保请求来自微信,而不是其它途径)。
WechatController.java
WechatService.java
SHA1.java
验证,至此,接入完成。
上一篇||下一篇
转载请注明来源【IT黑名单】
如果微信官方文档已能为您提供帮助,请忽略本文。
登录微信公众平台后台管理界面,左侧菜单开发->基本配置。
填写URL(服务器地址)、Token(令牌)、EncodingAESKey(消息加解密密钥)、明文加密。
填写完以上信息,验证时微信会发送一个get请求到填写的URL,开发者需要接收该请求并校验是否来自微信,如果是来自微信,返回请求中echostr参数内容(不校验直接返回也可以通过,校验是为了确保请求来自微信,而不是其它途径)。
WechatController.java
package com.blacklist.cotroller; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Scope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.blacklist.server.WechatService; @RestController @SpringBootApplication @RequestMapping("/wechat") @Scope("prototype") public class WechatController { @Autowired private WechatService wechatService; @RequestMapping(method = { RequestMethod.POST, RequestMethod.GET }, produces = "text/html;charset=UTF-8") @ResponseBody public void index(HttpServletRequest request, HttpServletResponse response) throws IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); boolean isGet = request.getMethod().toLowerCase().equals("get"); if (isGet) { String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); if (wechatService.validate(signature, timestamp, nonce)) { response.getWriter().write(echostr); } } } }
WechatService.java
package com.blacklist.server; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import com.blacklist.config.WechatConfig; import com.blacklist.utils.SHA1; @Service public class WechatService { private static Logger log = LoggerFactory.getLogger(WechatService.class); public boolean validate(String signature, String timestamp, String nonce) { List<String> list = new ArrayList<String>(); list.add(timestamp); list.add(nonce); list.add(WechatConfig.token); Collections.sort(list); String temp = String.join("", list); if (signature.equals(SHA1.str2SHA1(temp))) { return true; } return false; } }
SHA1.java
package com.blacklist.utils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class SHA1 { /** * SHA1加密 * */ public static String str2SHA1(String str) { try { MessageDigest digest = MessageDigest.getInstance("SHA-1"); digest.update(str.getBytes()); byte[] msgDigest = digest.digest(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < msgDigest.length; i++) { String shaHex = Integer.toHexString(msgDigest[i] & 0xFF); if (shaHex.length() < 2) { sb.append(0); } sb.append(shaHex); } return sb.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } }
验证,至此,接入完成。
上一篇||下一篇
转载请注明来源【IT黑名单】
相关文章推荐
- C#微信公众号开发系列教程二(新手接入指南)
- Java微信公众号--1--基本配置接入开发者模式
- 微信公众号接入指南——成为开发者配置
- C#微信公众号开发系列教程二(新手接入指南)
- nodejs微信公众号开发第一步(接入指南)--wechat模块
- 4 配置接入验证微信公众号--开发微信的第一道坎儿
- ASP.NET微信公众号开发实记之一 接入配置
- 微信公众号开发一(接入配置)
- 微信公众号开发教程01:接入指南
- 微信公众号开发一:接入指南
- C#微信公众号开发系列教程二(新手接入指南)
- 微信开发(1)--微信接入指南:成为微信开发者
- JAVA微信公众号开发第1篇之环境配置与开发接入
- VR系列——Oculus Rift 开发者指南:四、高级渲染配置(四)
- 微信公众号开发之测试号接口接入指南
- VR系列——Oculus Rift 开发者指南:四、高级渲染配置(二)
- C#微信公众号开发系列教程二(新手接入指南)
- 【微信开发系列】1. python开发微信公众号消息回复开发者模式
- VR系列——Oculus Rift 开发者指南:四、高级渲染配置(五)
- 微信公众号开发之测试号接口接入指南