`
newspringwork
  • 浏览: 101381 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

微信接入-1. 配置服务器与验证接口

 
阅读更多

1.配置服务器

登录公众平台后台后,在开发者中心中,填写服务器地址(URL)、Token和EncodingAESKey。

其中:

 - URL是开发者用来接收微信消息和事件的接口URL

 -Token在下面验证接口用来验证微信消息时会用到

 -EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

 

2.部署验证接口

使用附录中的SignUtil.checkSignature()结合之前的token来验证签名,以验证微信消息的有效性

 

2.配置验证接口

这个接口是微信调用以验证接口的有效性,微信会调用第二步配置的接口完成验证。

 

附:验证签名工具类

public class SignUtil {
	// 与接口配置信息中的Token要一致
	private static String token = "weixinCourse";

	public static void setToken(String token) {
		SignUtil.token = token;
	}

	/**
	 * 验证签名
	 * 
	 * @param signature
	 * @param timestamp
	 * @param nonce
	 * @return
	 */
	public static boolean checkSignature(String signature, String timestamp, String nonce) {
		String[] arr = new String[] { token, timestamp, nonce };
		// 将token、timestamp、nonce三个参数进行字典序排序
		Arrays.sort(arr);
		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 = byteToStr(digest);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}

		content = null;
		// 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
		return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;
	}

	/**
	 * 将字节数组转换为十六进制字符串
	 * 
	 * @param byteArray
	 * @return
	 */
	private static String byteToStr(byte[] byteArray) {
		String strDigest = "";
		for (int i = 0; i < byteArray.length; i++) {
			strDigest += byteToHexStr(byteArray[i]);
		}
		return strDigest;
	}

	/**
	 * 将字节转换为十六进制字符串
	 * 
	 * @param mByte
	 * @return
	 */
	private static String byteToHexStr(byte mByte) {
		char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
		char[] tempArr = new char[2];
		tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
		tempArr[1] = Digit[mByte & 0X0F];

		String s = new String(tempArr);
		return s;
	}
}

 

分享到:
评论

相关推荐

    微信小程序-商城.zip

    4. **统计分析**:"小程序统计[只需一行代码].url"可能是微信官方提供的数据分析工具,通过简单的代码接入,可以追踪用户行为、访问量、留存率等关键指标,帮助商家优化运营策略。 5. **用户体验**:微信小程序强调...

    182-微信小程序-知乎.zip

    同时,若需要接入第三方服务,如云存储、数据分析等,微信小程序也提供了相应的SDK。 七、性能优化与测试 为了提供良好的用户体验,性能优化是必不可少的。这包括合理使用异步加载、减少网络请求、优化图片大小等...

    详解nodejs微信公众号开发——1.接入微信公众号

    接入微信公众号是开发的第一步,万事开头难,走好第一步,后面的路就更宽广。 1.公众平台测试帐号的使用 登录微信公众平台,由于很多开发人员并没有认证的的微信公众号,所以比较折中的方式是使用公众平台测试帐号...

    php微信接口sign算法.zip

    1. **构建参数数组**:首先,你需要将所有发送到微信服务器的参数(不包括`sign`本身)放入一个关联数组中。这些参数可能包括`appid`、`noncestr`、`timestamp`等,具体取决于调用的接口。 2. **参数排序**:对数组...

    [点微]微信平台使用DZ官方微信登录接口设置开发者中心URL和TOKEN,并且接入TOM微信运营平台1

    在本文中,我们将深入探讨如何在Discuz论坛中利用DZ官方微信登录接口设置开发者中心URL和TOKEN,并将系统接入TOM微信运营平台,以便提升微信用户的登录体验和论坛的运营效率。 首先,让我们理解一下核心概念。微信...

    ASP版微信支付接口非常好用!!

    - **兼容性好**:对于还在使用ASP的老系统,这种接口能帮助它们快速接入微信支付,提升用户体验。 - **易用性强**:接口通常提供了清晰的文档和示例代码,方便开发者快速理解和集成。 - **稳定性高**:由于是经过...

    基于Java微信接口

    【基于Java微信接口】是关于使用Java编程语言与微信官方提供的API进行交互的技术主题。在进行这个项目的开发之前,首要的准备工作是确保你的计算机已经安装了Java Development Kit(JDK)。JDK是Java编程的基础,它...

    一个基于 Laravel 开发的微信、企业微信 SDK.zip

    【标题】中的“一个基于 Laravel 开发的微信、企业微信 ...通过这个基于 Laravel 的微信、企业微信 SDK,开发者可以快速地在其项目中接入微信和企业微信的功能,无需深入了解底层接口的复杂细节,大大提升了开发效率。

    Java接入H5微信支付demo.zip.zip

    Java接入H5微信支付涉及到的是在Java后端与微信支付平台进行交互,为前端H5页面提供支付接口的过程。这个过程主要包括以下几个关键步骤和技术点: 1. **申请微信支付商户平台账号**: 在实现H5微信支付之前,首先...

    ESP8266+阿里云+微信小程序(3)_微信小程序-阿里云-esp8266_微信小程序_

    2. **阿里云物联网平台配置**:在阿里云物联网平台上创建产品和设备,获取设备接入所需的密钥和连接参数。配置设备的属性和命令,以便接收和响应微信小程序的请求。 3. **微信小程序开发**:使用微信开发者工具,...

    微信认证-修改系统签名.zip

    对于需要修改系统签名的情况,可能是开发者在为微信开发插件或者集成微信支付等服务时,需要确保应用签名与微信服务器认可的签名一致,以通过微信的验证。 5. **修改系统签名流程**: - 创建或获取有效的`platform...

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

    1. **配置开发者模式**:首先,你需要在微信企业号的管理后台开启开发者模式,并获取到AppID和AppSecret,这两个是与微信服务器通信的重要凭证。 2. **接入验证**:当用户登录微信企业号并尝试访问受保护资源时,...

    微信小程序-扫码购物商城.zip

    此外,微信小程序支持微信支付,需要接入微信支付接口,确保交易安全便捷。 "源码"文件夹中的内容可能包括小程序的app.js、app.json、app.wxss以及各个页面的js、json、wxml和wxss文件。app.js是小程序的全局脚本...

    python 微信机器人程序源代码.rar

    1. **微信API接口**: Python微信机器人通常会基于微信官方提供的Web服务接口(如WeChat Official Accounts SDK或WeChat Work SDK)进行开发。开发者需要注册并获取自己的AppID和AppSecret,用于身份验证和调用接口。...

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

    在C#中开发微信接口,包括小程序和企业微信的应用,主要涉及到的是微信官方提供的开发者工具包,例如这里的"WeiXinMPSDK"。这个SDK是微信为C#开发者提供的,便于他们集成微信功能到自己的应用程序中。下面将详细介绍...

    asp微信支付接口(绝对可用!!)

    ASP微信支付接口是一种在ASP(Active Server Pages)环境中实现与微信支付系统对接的技术方案。它允许网站开发者通过编程方式调用微信支付的各种功能,如商品购买、订单支付等,以实现在线交易。以下是对这个主题的...

    微信小程序WordPress后台插件PluginForWordPress-master.zip

    3. 购物车和订单处理:如果WordPress网站已经集成了电子商务功能(如WooCommerce),插件可以将购物车和订单系统接入微信小程序,实现在线交易。 4. 自定义API:允许开发者自定义接口,以满足特定的业务需求,如评论...

    PB实现微信支付源代码[QQ103556710]-12.6.rar

    微信支付SDK是由腾讯公司提供的一套接口库,用于帮助开发者快速接入微信支付功能。 集成微信支付的第一步是获取微信商户平台的API密钥和相关配置信息。开发者需要在微信商户平台注册并完成认证,获取AppID、商户号...

    微信加密算法和接口验证信息

    对于开发者来说,理解并正确实现这些过程是接入微信开放平台和安全使用其API的基础。 总结一下,微信接口验证涉及到了SHA1加密算法和一系列验证机制,这些都是为了保障数据的安全性和接口调用的合法性。通过学习和...

    C#微信公众号开发SDK

    生成验证字符串:Senparc.Weixin.MP.CheckSignature.GetSignature(string timestamp, string nonce, string token = null),返回根据微信平台提供的数据,SHA1加密后的验证字符串(注意token必须跟公众平台的设置...

Global site tag (gtag.js) - Google Analytics