微信公众平台开发详细步骤与java代码

时间:2016-08-13 22:25:53   收藏:0   阅读:292

1、微信公众平台设置

首先在https://mp.weixin.qq.com/注册一个公众平台账号(服务号、订阅号、企业号的区别

微信公众平台地址:https://mp.weixin.qq.com 

登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入

技术分享

进入服务器配置填写框。

技术分享

点击“修改配置”按钮

这里url需要填以下申请好的地址,tocken需要填写代码中指定好的。

2、申请服务器资源

创建新浪云计算应用

申请账号

我们使用SAE新浪云计算平台作为服务器资源,
申请地址为:

http://www.sinacloud.com

直接点击上述网址,可以看到右上角微博登录的链接。

创建新应用 

回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE 

技术分享

进入SAE应用列表

技术分享

技术分享

技术分享

应用创建成功。并自动跳转到应用列表中,上传代码包就好了。

3、核心代码(完整代码下载)

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

/**
* Created by Gensis on 2016/8/10.
*/
public class SignUtil {
private static String token = "weixinlogin";

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");
// 将三个参数字符串拼接成一个字符串进行 shal 加密
byte[] digest = md.digest(content.toString().getBytes());
tmpStr = byteToStr(digest);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
content = null;
// 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
return tmpStr != null ? tmpStr.equals(signature.toUpperCase()): false;
}

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

/**
* 将字节转换为十六进制字符串
* @param b
* @return
*/
private static String byteToHexStr(byte b) {
// TODO Auto-generated method stub
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[(b >>> 4) & 0X0F];
tempArr[1] = Digit[b & 0X0F];

String s = new String(tempArr);
return s;
}
}    
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!