JAVA微信公众号开发

微信公众号开发文档:https://mp.weixin.qq.com/wiki

微信公众平台接口调试工具:https://mp.weixin.qq.com/debug/cgi-bin/apiinfo

JAVA微信公众号开发框架:Wechat4j

Wechat4j帮助文档:http://www.chengn.com/wechat4j/wiki/jieru*n.html

**************************************************************************

*****我们暂时先不用Wechat4j****

(第一部分)

******需结合微信公众号开发文档来看.******

1.填写服务器基本配置:

URL:必须以http://或https://开头,分别支持80端口和443端口。

没有服务器的可以去下一个花生壳 映射一下。

JAVA微信公众号开发

2.检验signature的示例代码:

[java] view plain copy
  1. public static Boolean checkSignature(String signature,String timestamp,String nonce){  
  2.     String[] strs=new String[] {token,timestamp,nonce};  
  3.     Arrays.sort(strs);  
  4.     StringBuffer content=new StringBuffer();  
  5.     for (int i = 0; i < strs.length; i++) {  
  6.         content.append(strs[i]);  
  7.     }  
  8.     MessageDigest md = null;    
  9.     String tmpStr = null;    
  10.     try {    
  11.     <span style="white-space:pre">  </span>md = MessageDigest.getInstance("SHA-1");    
  12.         // 将三个参数字符串拼接成一个字符串进行sha1加密    
  13.         byte[] digest = md.digest(content.toString().getBytes());    
  14.         tmpStr = byteToStr(digest);    
  15.     } catch (NoSuchAlgorithmException e) {    
  16.              e.printStackTrace();    
  17.     }     
  18.     return signature!=null?signature.toUpperCase().equals(tmpStr.toUpperCase()):false;  
  19. }  

3.依据接口文档实现业务逻辑。



4.获取access_token:

公众号可以使用AppID和AppSecret调用接口来获取access_token

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

[java] view plain copy
  1. /**  
  2.  * 获取access_token  
  3.  * access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; 
  4.  * @param appid 凭证  
  5.  * @param appsecret **  
  6.  * @return  
  7.  */    
  8. public static AccessToken getAccessToken(String appid, String appsecret) {    
  9.     AccessToken accessToken = null;    
  10.     String requestUrl = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);    
  11.     JSONObject jsonObject = httpRequest(requestUrl, "GET"null);    
  12.     if (null != jsonObject) {    
  13.         try {    
  14.             accessToken = new AccessToken();    
  15.             accessToken.setAccess_token(jsonObject.getString("access_token"));    
  16.             accessToken.setExpires_in(jsonObject.getInt("expires_in"));    
  17.         } catch (JSONException e) {    
  18.             accessToken = null;    
  19.             // 获取token失败    
  20.             log.error("获取token失败 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));    
  21.         }    
  22.     }    
  23.     return accessToken;    
  24. }