`
wangmengbk
  • 浏览: 288795 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

微信公众号服务器配置验证实现

阅读更多
在微信公众号设置开发模式,需要调用后台服务器进行验证的伪代码实现:

微信公众号服务器配置验证实现

/**
 * 微信服务器配置验证方法
 *
 * @param request
* @param response
* @return
*/
private String access(HttpServletRequest request, HttpServletResponse response) {
    String signature = request.getParameter("signature");
    String timestamp = request.getParameter("timestamp");
    String nonce = request.getParameter("nonce");
    String echostr = request.getParameter("echostr");
    logger.info("微信请求的echostr:{}", echostr);
    // 将token、timestamp、nonce三个参数进行字典序排序
List<String> paramList = new ArrayList<String>();
    paramList.add(token);
    paramList.add(timestamp);
    paramList.add(nonce);
    SortUtils.arrayListSortByDict(paramList);
    logger.info("timestamp、nonce、token三个参数进行字典序排序:{}", JSON.toJSONString(paramList));
    // 将三个参数字符串拼接成一个字符串进行sha1加密
String result = "";
    for (String str : paramList) {
        result += str;
    }
    String resultPass = DigestUtils.sha1Hex(result);
    // 加密后的字符串可与signature对比,标识该请求来源于微信
if (resultPass.equals(signature)) {
        logger.info("返回的echostr:{}", echostr);
        return echostr;
    }
    logger.info(String.format("微信请求验证失败!token:[%s],本服务器signature:[%s],微信signature:[%s]", token, resultPass, signature));
    return "";
}


public class SortUtils {
   /**
    * 根据字典排序
    * 
    * @param sortList
*/
public static void arrayListSortByDict(List<String> sortList) {
      Collections.sort(sortList, new RealizeComparator());
   }
}


分享到:
评论

相关推荐

    微信公众号无限回调授权系统源码

    域名一枚,也需要微信公众号加进去受访信任,服务器一台。 LINUX服务器安装宝塔,添加一个站点,站点内不需要什么页面,宝塔默认的就可以 这个文件不需要设置什么,再上传放入公众号验证的文件验证一下域名归属权...

    微信公众号token验证

    验证微信公众号的token

    微信公众号服务器验证Token步骤图解

    这篇文章主要介绍了微信公众号服务器验证Token步骤图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 服务器验证Token验证分为以下及步骤 一,在微信公众号...

    MVC开发的微信公众号

    MVC模式的微信公众平台接口开发DEMO,验证。

    微信公众号验证token代码

    微信公众号验证token经常失败,是一件很让人抓狂的事。找了很久,终于找相关一个可用的相关代码,希望对你有用。

    微信授权登录源码 微信公众号关注授权登录源码 扫码关注微信公众号授权登录源码

    第三步:每隔2秒检测是否关注微信公众号 通过微信openid和access_token获取微信用户信息,并存入表当中的信息 若是没有获取到数据,记得开启curl,检查防火墙、启用 微信服务器IP白名单设置 PHP扫码关注公众号更新...

    微信公众号智能绑定实例

    微信公众号智能绑定功能所有的步骤都是以模拟实现的。 1.模拟打开微信公众帐号登录页面; URL地址:https://mp.weixin.qq.com/ 2.读取自己微信公众帐号的用户名和密码; 此处用户名和密码可以持久化到内存,文件,...

    C#微信公众号开发SDK

    C#版的微信公众号开发SDK Senparc.Weixin.MP几个关键类介绍如下: Entities/Request*.cs 用于接收微信平台自动发送到服务器的实体(发送过来的是XML),包括文本、位置、图片三类 Entities/Response*.cs 用于反馈...

    微信公众号连接服务器端验证PHP

    微信公众号开发,微信平台连接个人服务器时用于验证的代码文件;用法:上传部署到服务器即可

    SpringBoot 微信公众号开发

    实现了基本的服务器验证,网页授权,模版消息发送。运行前请修改相应参数。application.properties 中的ql.wx.appID和ql.wx.appsecret是自己公众号中的参数。com.ql.weChat.model类中的token用于服务器验证,自定义...

    java实现微信企业号和公众号服务端调用方法封装源码

    2、微信公众号服务端调用方法java源码实现 2.1 在回调模式下验证服务器接口地址 2.2 检验消息的真实性,并且获取解密后的明文. 2.3 将公众平台回复用户的消息加密打包. 2.4 获取AccessToken 2.5 获取网页授权access_...

    C#微信公众号开发

    1、服务器和微信的链接 2、图文回复消息 3、创建删除菜单 4、获取用户openid信息 5、代码仅供参考,需要在服务号上配置和获取 token,AppID,AppSecret,access_token以及设置网页OAuth2.0鉴权的网页地址。 6、全程...

    Snapper:微信公众号的Java库

    wx_maven基于maven的微信公众后台源码,它是一个标准的maven项目,里面是微信公众号后台的主要源码。源码的目录结构如下:... 微信公众号的名称TOKEN: 微信公众号的token,用于验证之用,这个字段的值需要和

    微信公众号token验证问题

    在设置微信后台的基本配置环节,我们需要定义令牌(Token)来和服务器进行验证,在验证过程中,我们要保持服务器中运行了带token的werobot程序。 最简单的程序如下(该程序的功能是在读者订阅的时候自动回复“欢迎...

    java实现微信公众号-回复关键字逻辑

    消息接收接口和上面我们所说的服务器校验接口地址其实是一样的,他们都是我们在公众号后台配置的地址,只是我们消息接收的接口是一个post请求。 还记得上篇文章我们选择的消息加解密的方式是明文模式吗?这样我们就...

    使用Nodejs接入并验证微信公众号和微信小程序服务器配置

    使用Nodejs接入并验证微信公众号和微信小程序服务器配置 接入步骤 1、微信后台配置 [url] 写自己的已经绑定服务器的域名  [Token] 随便写 2、自己的服务器部署以下代码   check.js   'use strict';   const ...

    微信公众平台开发的验证服务器和自动回复用户消息

    该例子仅简单的对微信服务器验证和用户信息的自动回复做了处理,为初学者在怎样开始微信公众平台的开发毫无头绪的时候提供一点儿帮助. 本例子使用了.net4.0框架,直接用VS2010打开网站,找到该文件夹,打开即可. 将...

Global site tag (gtag.js) - Google Analytics