文档介绍:应用BAE进行微信平台开发
一,百度开放云
注册登录http://developer./
右上角开发者服务
创建应用
填写创建
拓展服务
添加新服务---创建
二,创建空文件夹svnxzc,svn连接
.*版本,安装
新建文件夹,svn,CHECKOUT
账号密码为百度账号密码,账号不能为邮箱和手机号,需用户名可中文
三,安装JDK,TOMCAT,MYECLIPSE
用MYECLIPSE编写请求校验程序
结构图为
新建web项目weixintestxzc,src下创建普通java类SignUtil,然后创建一个servlet类CoreServlet,。代码如下:
.;
import ;
import ;
import ;
/**
* 请求校验工具类
*
* ***@author xzc
* ***@date 2014-07-14
*/
public class SignUtil {
//与开发模式借口配置信息中的Token保持一致
private static String token="weixintestxzc";
/**
* 校验签名
*
* ***@param signature 微信加密签名
* ***@param timestamp 时间戳
* ***@param nonce 随机数
* ***@return
*/
public static boolean checkSignature(String signature,String timestamp,String nonce){
//对token,timestamp和nonce按字典排序
String[] paramArr=new String[]{token,timestamp,nonce};
(paramArr);
//将排序后的结果拼接成一个字符串
String content=paramArr[0].concat(paramArr[1]).concat(paramArr[2]);
String ciphertext=null;
try{
MessageDigest md=("SHA-1");
//对拼接后的字符串进行sha1加密
byte[] digest=(().getBytes());
ciphertext=byteToStr(digest);
}catch(NoSuchAlgorithmException e){
();
}
//将sha1加密过的字符串与signature进行对比
return ciphertext!=null?(()):false;
}
/*
* 将字符数组转化为十六进制字符串
*
* ***@param byteArray
* ***@return
*/
private static String byteToStr(byte[] byteArray ) {
String strDigest="";
for (int i=0;i<;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);