`
362217990
  • 浏览: 51893 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

微信开发者验证接口开发

阅读更多
微信开发者接口验证。
Token,自己随便定义,与微信填写一致就可以了。

根据微信接入指南描述 http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html
第一步:填写服务器配置
第二步:验证服务器地址的有效性
第三步:依据接口文档实现业务逻辑

这里主要讲第二步验证服务器有效性。

建一个普通javaweb项目即可


建一个验证的Servlet,AccessAction.java

/*
 * Copyright (c) 2014-2018 Swingsoft Co.Ltd. All rights reserved.
 */

package com.mn606.weixin.action;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mn606.weixin.util.AccessUtil;

/**
 * 微信开发者验证接口
 * 
 * @author Swing
 */
public class AccessAction extends HttpServlet {

	/**
	 * Comment for <code>serialVersionUID</code>
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String signature = req.getParameter("signature");
		String timestamp = req.getParameter("timestamp");
		String nonce = req.getParameter("nonce");
		String echostr = req.getParameter("echostr");
		if (AccessUtil.checkSignature(signature, timestamp, nonce)) {
			resp.getWriter().write(echostr);
			resp.getWriter().flush();
			resp.getWriter().close();
		}
	}
}




第二个创建验证工具类AccessUtil.java
/*
 * Copyright (c) 2014-2018 Swingsoft Co.Ltd. All rights reserved.
 */

package com.mn606.weixin.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

/**
 * 微信开发者工具类
 * 
 * @author Swing
 */
public class AccessUtil {

	public final static String TOKEN = "abcdefg";

	/**
	 * 
	 * 校验签名是否正确
	 *
	 * @param signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
	 * @param timestamp 时间戳
	 * @param nonce 随机数
	 * @return 正确返回true
	 */
	public static boolean checkSignature(String signature, String timestamp, String nonce) {
		// 验证参数是否为空
		if (isBank(signature) || isBank(timestamp) || isBank(nonce)) {
			return false;
		}
		// 1.将token、timestamp、nonce三个参数进行字典序排序
		String tmpStr = sort(TOKEN, timestamp, nonce);

		System.out.println(tmpStr);
		// 2.将三个参数字符串拼接成一个字符串进行sha1加密
		tmpStr = sha1(tmpStr);
		System.out.println(tmpStr);

		// 3.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
		if (tmpStr.equals(signature)) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 
	 * 进行字典序排序
	 *
	 * @param value
	 * @return
	 */
	public static String sort(String token, String timestamp, String nonce) {
		StringBuilder result = new StringBuilder();
		String[] strArr = { TOKEN, timestamp, nonce };
		Arrays.sort(strArr);
		for (int i = 0; i < strArr.length; i++) {
			result.append(strArr[i]);
		}
		return result.toString();
	}

	/**
	 * 
	 * 判断参数是否为空
	 *
	 * @param value
	 * @return
	 */
	public static boolean isBank(String value) {
		if (value != null && !value.trim().isEmpty()) {
			return false;
		}
		return false;
	}

	/**
	 * 
	 * 使用SHA1加密
	 *
	 * @param input
	 * @return
	 * @throws NoSuchAlgorithmException
	 */
	public static String sha1(String input) {
		MessageDigest mDigest;
		try {
			mDigest = MessageDigest.getInstance("SHA1");
			byte[] result = mDigest.digest(input.getBytes());
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i < result.length; i++) {
				sb.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));
			}
			return sb.toString();
		} catch (NoSuchAlgorithmException e) {
			return null;
		}
	}

}




其他的servlet自己去配置吧。

完成后,自己去在微信的接口填写正确的url,token提交验证。
2
3
分享到:
评论

相关推荐

    C#开发微信公众号验证接口

    C#写的进行微信公众号开发者验证,微信公众号平台给出的是PHP版本,

    关于微信开发者平台移动应用(android)获取签名问题

    在Android开发过程中,微信开发者平台是一个重要的接口,用于实现微信登录、支付和其他社交功能。然而,在集成微信SDK时,一个必不可少的步骤就是获取应用的签名信息。本文将深入探讨微信开发者平台移动应用...

    基于人脸识别的宿舍出入统计微信小程序,在微信开发者工具里运行

    4. **微信开发者工具运行**:整个程序在微信开发者工具中开发和测试,利用微信提供的API和框架,确保小程序在微信环境下的稳定运行和良好用户体验。 【软件架构】: 此项目的软件架构主要包括以下几个部分: 1. *...

    微信现金红包接口开发

    微信现金红包接口开发是微信支付平台提供的一项服务,允许开发者集成到自己的应用程序中,以便用户可以向其他用户发送或接收红包。在这个过程中,开发者需要熟悉微信支付API的使用,理解红包业务逻辑,并能够处理...

    微信小程序接口测试工具

    这个工具简化了测试过程,使得初级或经验较少的PHP和微信小程序开发者也能高效地进行后端接口的验证和优化。 接口测试在软件开发中扮演着至关重要的角色,它确保了不同组件之间的数据交换正确无误。对于微信小程序...

    PHP微信公众号接口开发在线调试工具 v2.0

    PHP微信公众号接口开发在线调试工具可以随时随地进行微信公众号接口调试,也可以让更多的新手了解微信接口通信过程。这是PHP版,比之前的asp执行效率高多倍。性能说明:1、可以进行接口token绑定验证,关注、取消...

    微信ipad协议,安卓协议,微信开发API接口

    微信开发API接口是微信平台为开发者提供的一套用于构建基于微信生态的应用程序的接口标准。这些接口涵盖了微信的多种功能,包括用户身份验证、消息收发、朋友圈操作、群聊管理等多个方面。在iOS和Android平台上,...

    微信开发者工具(wechat_web_devtools) Linux版微信小程序Linux版,支持最新微信小程序开发和微信网页开发- yuan1994 / wechat_web_devtools

    4. **接口测试**:提供微信小程序API的测试功能,帮助开发者验证接口的正确性和兼容性。 5. **性能监控**:可以查看小程序运行时的内存、CPU、网络等性能指标,帮助优化代码性能。 6. **资源分析**:分析小程序的...

    微信企业号开发接口

    本项目涉及的是微信企业号的接口开发,通过源码实现对机构、通讯录、菜单等核心资源的管理。下面我们将深入探讨这些知识点。 1. **微信企业号接口**: 微信企业号提供了丰富的API接口,包括但不限于用户管理、部门...

    微信企业号接口开发源码

    9. **微信开发者工具**:微信提供了一款开发者工具,可以帮助开发者进行接口测试、调试和应用预览,提高开发效率。 10. **企业号应用的部署与发布**:完成开发后,需要将应用部署到服务器,并在微信企业号后台进行...

    微信支付开发流程-开发者文档

    本教程将深入探讨微信支付的开发流程,适用于Java开发者。以下是对关键知识点的详细说明: 1. **微信支付接入流程**: - **注册成为微信开放平台开发者**:首先,你需要在微信开放平台上注册并创建应用,获取AppID...

    微信公众平台开发 实例 java 开发资料

    10. **测试与调试**:学习如何使用微信开发者工具进行接口测试,以及如何解决在开发过程中遇到的问题。 11. **性能优化**:了解如何提高公众号的响应速度和服务稳定性,例如合理使用缓存、优化数据传输等。 12. **...

    Asp微信支付接口V5_Asp微信支付接口V5_

    Asp微信支付接口V5是针对ASP(Active Server Pages)开发环境设计的一种微信支付解决方案,它使得ASP开发者能够轻松地集成微信支付功能到他们的网站或应用程序中。在使用这个接口时,开发者需要对微信支付的相关协议...

    c# 微信接口,包括小程序,企业微信

    3. **模拟测试**:使用微信开发者工具进行接口调用的模拟测试,确保功能正常。 4. **异常处理**:考虑到网络不稳定和微信服务器可能出现的问题,需要对异常进行妥善处理。 5. **安全性考虑**:对敏感信息如用户密码...

    微信企业号二次验证接口PHP代码

    微信企业号二次验证接口是微信为企业用户提供的一个增强安全性的功能,它允许企业在用户完成基本认证后,通过自定义的验证流程进一步确认用户身份。在本案例中,我们讨论的是如何使用PHP语言来实现这个接口。 首先...

    微信记账小程序源码.zip

    此外,考虑到微信小程序的特性,开发者还需要熟悉微信开发者工具,掌握WXML和WXSS(微信小程序的标记语言和样式语言),以及JavaScript的微信小程序API。这些API包括网络请求、本地存储、用户授权等功能,是微信小...

    java 微信退款接口

    Java微信退款接口是微信支付提供的一种服务,允许商家在用户退款请求时,通过API与微信服务器进行交互,完成退款操作。这个过程涉及到的关键技术主要包括Java编程、HTTPS通信、数字证书以及JSON数据格式处理。 首先...

    微信小程序开发猜数字游戏

    1. **微信小程序环境搭建**:首先,你需要安装微信开发者工具,这是一个集成了代码编辑、预览、调试功能的平台。通过它,你可以编写并测试你的小程序。 2. **WXML与WXSS**:微信小程序的界面结构由WXML(WeChat XML...

    微信企业号接口开发框架实例

    微信企业号接口开发框架是一个专为微信企业号应用设计的开发工具,旨在简化开发者在构建企业内部应用时对接微信API的复杂过程。本框架提供了一个完整的结构,允许开发者快速搭建和自定义功能,以满足企业的特定需求...

    C#、.NET调用微信扫一扫接口完整demo

    要调用微信扫一扫接口,我们首先需要注册成为微信开发者,并创建一个应用,获取到AppID和AppSecret。这两个值是验证应用程序身份的关键,后续的接口调用都会用到。 接着,我们要使用OAuth2.0授权机制获取用户的微信...

Global site tag (gtag.js) - Google Analytics