您好,欢迎访问一九零五行业门户网

JAVA微信开发新手必看的接入指南介绍

相信很多人对微信开发已经不那么陌生,我也是从一个微信开发的菜鸟经过各种问题的折磨,然后去搜索引擎搜索各种文章阅读,但是基本都是零散的资料,没有一个统一、系统的阐述微信应用如何开发。作者结合自己的实际开发经验,归纳整理出来分享给微信开发的入门者或正在研究的开发者。
这篇文章主要阐述如何搭建一个微信开发平台。古人云:“磨刀不负砍才工”。我们开发应用也需要准备一些必要的条件。
 准备工作
 1.  下载 jdk1.7  安装
 2.  下载 tomcat 7.0
 3.  下载 myeclipse 6.5
 4.  下载 json-lib第三方jar .
1.      申请一个公网ip地址,发布自己的应用。
例如: 192.168.1.102
2.      打开myeclipse 创建一个工程
如下图所示:
3.  创建一个微信应用接入servlet类
java实现类 :weixinservlet 
package com.wx.servlet; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.security.messagedigest; import java.security.nosuchalgorithmexception; import java.util.arrays; import java.util.logging.logger; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import net.sf.json.jsonobject; import net.sf.json.xml.xmlserializer;   /**  * @author haibing.xiao  * @since jdk1.6  * @version 1.0  */ public class weixinservlet extends httpservlet{ private logger log =logger.getlogger(this.getclass().getname()); private static final long serialversionuid = 1l; private   string token; private   string echostr; @override protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {  connect(request,response); } @override protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { message(request,response); }   /**  *@author haibing.xiao  *@return    *@exception   *@param  *   * <p>接入连接生效验证</p>  */ private void connect(httpservletrequest request,httpservletresponse response) throws servletexception, ioexception{ log.info(remoteaddr: + request.getremoteaddr()); log.info(querystring: + request.getquerystring());  if(!accessing(request, response)){  log.info(服务器接入失败.......);  return ;  } string echostr=getechostr(); if(echostr!=null && !.equals(echostr)){ log.info(服务器接入生效..........); response.getwriter().print(echostr);//完成相互认证 } } /**  * @author haibing.xiao  * date 2013-05-29  * @return boolean  * @exception servletexception, ioexception  * @param  *  *<p>用来接收微信公众平台的验证</p>   */ private boolean accessing(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception { string signature = request.getparameter(signature); string timestamp = request.getparameter(timestamp); string nonce = request.getparameter(nonce); string echostr = request.getparameter(echostr); if( isempty(signature)){ return false; } if(isempty(timestamp)){ return false; } if(isempty(nonce)){ return false; } if(isempty(echostr)){ return false; } string[] arrtmp = { token, timestamp, nonce }; arrays.sort(arrtmp); stringbuffer sb = new stringbuffer(); for (int i = 0; i < arrtmp.length; i++) { sb.append(arrtmp[i]); } string pwd = encrypt(sb.tostring());       log.info(signature:+signature+timestamp:+timestamp+nonce:+nonce+pwd:+pwd+echostr:+echostr);          if(trim(pwd).equals(trim(signature))){      this.echostr =echostr;      return true;     }else{      return false;     } } private string encrypt(string strsrc) { messagedigest md = null; string strdes = null; byte[] bt = strsrc.getbytes(); try { md = messagedigest.getinstance(sha-1); md.update(bt); strdes = bytes2hex(md.digest()); //to hexstring } catch (nosuchalgorithmexception e) { system.out.println(invalid algorithm.); return null; } return strdes; } public string bytes2hex(byte[] bts) { string des = ; string tmp = null; for (int i = 0; i < bts.length; i++) { tmp = (integer.tohexstring(bts[i] & 0xff)); if (tmp.length() == 1) { des += 0; } des += tmp; } return des; }   public string getechostr(){ return echostr; } /**  *@author haibing.xiao  *@return    *@exception servletexception, ioexception  *@param  *   * <p>xml组装组件</p>  */  private void message(httpservletrequest request,httpservletresponse response) throws servletexception, ioexception{   inputstream is = request.getinputstream(); // 取http请求流长度 int size = request.getcontentlength(); // 用于缓存每次读取的数据 byte[] buffer = new byte[size]; // 用于存放结果的数组 byte[] xmldatabyte = new byte[size]; int count = 0; int rbyte = 0; // 循环读取 while (count < size) {  // 每次实际读取长度存于rbyte中 rbyte = is.read(buffer);  for(int i=0;i 4.   本地部署应用  访问http://localhost:端口号/上下文/wenxin
5  .申请成为开发者
访问 http://mp.weixin.qq.com   ,开启开发者模式。填入url和taken,申请成功,如下所示:
以上就是java微信开发新手必看的接入指南介绍的详细内容。
其它类似信息

推荐信息