微信开发第一步(接入配置)
来源:互联网 发布:sql server 教材 编辑:程序博客网 时间:2024/06/05 19:37
1.服务器,令牌。。
2.url访问地址
package com.tianxi.controller;import com.tianxi.util.CheckUtil;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;/** * Created by sq on 2017/7/12 0012. * description:微信公众号端 */@Controller@RequestMapping(value = "/weixin",produces = "application/json;charset=UTF-8")public class WeiXinController { /** * 配置接入 * @param request * @param response * @return * @throws IOException */ @RequestMapping(value = {"/index"}) @ResponseBody public String WeiXin(HttpServletRequest request, HttpServletResponse response) throws IOException { String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); PrintWriter out = response.getWriter(); if (CheckUtil.checkSinature(signature, timestamp, nonce)) { out.print(echostr); } out.close(); return null; }}2.
package com.tianxi.util;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Arrays;/** * Created by sq on 2017/7/12 0012. * description: */public class CheckUtil { private static final String token = "weixin"; public static boolean checkSinature(String signature,String timestamp,String nonce){ String[] arr = new String[]{token,timestamp,nonce}; //排序 Arrays.sort(arr); //生成字符串 StringBuffer content = new StringBuffer(); for(int i = 0;i<arr.length;i++){ content.append(arr[i]); } //sha1加密 String temp = getSha1(content.toString()); return temp.equals(signature); } public static String getSha1(String str){ if (null == str || 0 == str.length()){ return null; } char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; try { MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); mdTemp.update(str.getBytes("UTF-8")); byte[] md = mdTemp.digest(); int j = md.length; char[] buf = new char[j * 2]; int k = 0; for (int i = 0; i < j; i++) { byte byte0 = md[i]; buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; }}
只有书写以上代码才可进行微信公众号服务器配置
阅读全文
0 0
- 微信开发第一步(接入配置)
- 微信公众号开发第一步 - 接入
- 微信开发第一步,配置基本配置
- 微信开发学习笔记(第一步:)基本配置
- 微信后台开发第一步:nodeJS+express接入微信后台详细教程
- 微信后台开发第一步:nodeJS+express接入微信后台详细教程
- 微信后台开发第一步:nodeJS+express接入微信后台详细教程
- 微信公众号开发一(接入配置)
- nodejs微信公众号开发第一步(接入指南)--wechat模块
- 微信开发接入
- 微信开发-接入
- 微信开发(六)微信分享接入
- 微信开发(六)微信分享接入
- 微信开发 接入参数
- 微信开发【基本接入】
- 微信接入自定义开发
- 微信开发接入代码
- 知识库--微信开发文档第一步(115)
- 读取INRIA 说明文件 生成 voc xml python 版本
- 哈夫曼编码的设计与实现
- javascript中in关键字的作用
- 基于Dragonboard 410c的mic和speaker的loopback调试
- [NOIP模拟][分块]subset
- 微信开发第一步(接入配置)
- OneCache-针对redis代理服务
- Linux信号(二)-- signal()函数
- Java多线程 -- JUC包源码分析5 -- Condition/ArrayBlockingQueue/LinkedBlockingQueue/Deque/PriorityBlockingQueu
- RAID详解[RAID0/RAID1/RAID10/RAID5]
- 基于深度学习的人脸识别技术综述
- Kotlin与Java不兼容的情况
- nodejs入门(08)-全局对象
- yum-下载rpm包