微信公众号开发-客户端侧-服务器URL认证 Java版

https://mp.weixin.qq.com/wiki 


<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collections" %>
<%@ page import="java.util.Comparator" %>
<%@ page import="java.security.MessageDigest" %>
<%@ page import="com.xxxxx.xxxxx.brand.wx.util.SHA1" %>
<%@ page import="java.io.IOException" %>
<%@ page import="com.xxxxx.xxxxx.brand.wx.util.HttpClientUtil" %>
<%@ page import="com.xxxxx.xxxxx.brand.wx.util.WxUtil" %>
<%@ page import="com.xxxxx.xxxxx.brand.wx.bean.AccessTokenResult" %>
<%@ page import="com.xxxxx.xxxxx.brand.wx.bean.UserInfoResult" %>
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%!
    private String access(HttpServletRequest request, HttpServletResponse response) {
        // 验证URL真实性
        System.out.println("进入验证access");
        String signature = request.getParameter("signature");// 微信加密签名
        String timestamp = request.getParameter("timestamp");// 时间戳
        String nonce = request.getParameter("nonce");// 随机数
        String echostr = request.getParameter("echostr");// 随机字符串
        List<String> params = new ArrayList<String>();
        params.add("zhoushun");
        params.add(timestamp);
        params.add(nonce);
        // 1. 将token、timestamp、nonce三个参数进行字典序排序
        Collections.sort(params, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        // 2. 将三个参数字符串拼接成一个字符串进行sha1加密
        String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2));
        if (temp.equals(signature)) {
                //response.getWriter().write(echostr);
                System.out.println("成功返回 echostr:" + echostr);
                return echostr;
        }
        System.out.println("失败 认证");
        return null;
    }
%>
<%
    System.out.println("进入chat");
    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");
        System.out.println(signature);
        System.out.println(timestamp);
        System.out.println(nonce);
        System.out.println(echostr);
        out.println(access(request, response));
    }else {
        // 进入POST聊天处理
        System.out.println("enter post");
    }
%>

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>


OAUTH2.0 接入详见:

http://blog.csdn.net/z69183787/article/details/50674902

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值