根据开发者文档解析
微信公众平台开发者文档网址:http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html
1、填写服务器配置
申请一个接口测试号
根据nat123获得URL =外网域名/工程名/servlet名
token=在验证服务地址程序的token
应用类型:80(http)网站
端口号:8088
内网域名(本地ip)
获得外网域名
登陆测试号成功后填入接口配置信息URL和token{在访问servlet后返回500错误就可以配置成功,如果在显示500错误还不成功,就一直点提交,直到显示配置成功}
配置成功后就可以连接微信了,扫一扫自己的测试二维码就可以进行
2、验证服务器地址的有效性
参数 | 描述 |
---|---|
signature | 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
echostr | 随机字符串 |
public class ValidateTools {
public static String token = "hxjywx";
public static boolean checkSignature(String signature, String timestamp, String nonce)
{
String[] str = new String[]{token,timestamp,nonce};
Arrays.sort(str);
StringBuilder builder = new StringBuilder();
for (String string : str) {
builder.append(string);
}
MessageDigest md = null;
String result = null;
try {
md = MessageDigest.getInstance("SHA-1");
byte[] digest = md.digest(builder.toString().getBytes());
result = bytesToStr(digest);
System.out.println(result );
} catch (Exception e) {
// TODO: handle exception
}
return result !=null?(result.equals(signature.toUpperCase())):false;
}
private static String bytesToStr(byte[] digest) {
String strDigest = "";
for (byte b : digest) {
strDigest += bytesToHexStr(b);
}
// TODO Auto-generated method stub
return strDigest;
}
private static String bytesToHexStr(byte b) {
char[] digit = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] temp=new char[2];
temp[0] = digit[(b>>>4)&0X0F];
temp[1] = digit[b & 0X0F];
String s = new String(temp);
// TODO Auto-generated method stub
return s;
}
}
3、依据接口文档实现业务逻辑