300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证

springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证

时间:2022-07-08 07:17:26

相关推荐

springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证

转:springmvc开发微信公众号接口 微信公众号测试账号配置接口Token验证

开发前必读以及准备工作:

1、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请开发者前往微信开放平台接入。

2、在申请到认证公众号之前,开发者可以先通过测试号申请系统,快速申请一个接口测试账号,立即开始接口测试开发。

微信公众号测试账号官方申请链接:http://mp./debug/cgi-bin/sandbox?t=sandbox/login微信扫描关注后登录

登录进来后即可看到申请的微信公众号测试账号信息以及appID和appsecret

一、接口开发

请求方式:http get请求(只能用get方式)

@Controller@RequestMapping(value = "msg")public class WeChatActionController { /*** 微信消息接收和token验证* @param request* @param response* @throws IOException*/ @RequestMapping("/weChatToken") public void weChat(HttpServletRequest request, HttpServletResponse response) throws IOException { 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"); // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败 if (signature != null && CheckoutUtil.checkSignature(signature, timestamp, nonce)) {try {PrintWriter print = response.getWriter();print.write(echostr);print.flush();} catch (IOException e) {e.printStackTrace();}}}}}

检验微信加密签名信息的工具类

public class CheckoutUtil {// 与测试账号接口配置信息中的Token要一致 private static String token = "999";/*** 验证签名* @param signature* @param timestamp* @param nonce* @return*/ public static boolean checkSignature(String signature, String timestamp, String nonce) {String[] arr = new String[] { token, timestamp, nonce };Arrays.sort(arr);// 将token、timestamp、nonce三个参数进行字典序排序StringBuilder content = new StringBuilder(); for (int i = 0; i < arr.length; i++) {content.append(arr[i]);}MessageDigest md = null;String tmpStr = null; try {md = MessageDigest.getInstance("SHA-1"); // 将三个参数字符串拼接成一个字符串进行sha1加密 byte[] digest = md.digest(content.toString().getBytes());tmpStr = byteToHex(digest );} catch (NoSuchAlgorithmException e) {e.printStackTrace();} // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信 return tmpStr != null ? tmpStr.equals(signature) : false;}//十六进制字节数组转为字符串 private static String byteToHex(final byte[] hash) {Formatter formatter = new Formatter(); for (byte b : hash) {formatter.format("%02x", b);}String result = formatter.toString();formatter.close(); return result;}}

二、配置接口信息

点击接口配置信息右侧的修改,填写接口的url和Token(任意填写都可以)提交。这个url用于服务端验证此处配置的Token

点击提交,显示Token验证成功,至此微信公众号测试账号接口配置以及Token验证已经完成,接着为了拥有微信更多的JS接口调用权限,继续按照下面过程配置JS安全接口域名。

三、配置JS接口安全域名

JS接口安全域名右侧的修改,填入上面配置的域名信息(注意是域名,不带http,不带www,例如:)

四、配置网页授权

填写安全域名(跟上面的一样,填写域名信息,不带http,不带www)

更多JavaEE资料请关注下面公众号,欢迎广大开发者朋友一起交流。笔者电话(微信):18629374628

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。