Eine unverzichtbare Einführung in den Zugangsleitfaden für Neulinge in der JAVA-WeChat-Entwicklung

高洛峰
Freigeben: 2017-03-26 13:54:12
Original
1773 Leute haben es durchsucht

Ich glaube, dass viele Leute mit der WeChat-Entwicklung nicht mehr vertraut sind. Ich wurde auch von verschiedenen Problemen eines WeChat-Entwicklungsneulings gequält und ging dann zu Suchmaschinen, um nach verschiedenen Artikeln zum Lesen zu suchen, aber sie waren im Grunde verstreut Informationen ohne einheitliche Erklärung erklären systematisch, wie WeChat-Anwendungen entwickelt werden. Der Autor fasst seine tatsächlichen Entwicklungserfahrungen zusammen und teilt sie mit Anfängern der WeChat-Entwicklung oder studierenden Entwicklern.

In diesem Artikel wird hauptsächlich erläutert, wie man eine WeChat-Entwicklungsplattform aufbaut. Die Alten sagten: „Ein Messer zu schärfen lohnt sich.“ Bei der Entwicklung von Anwendungen müssen wir auch einige notwendige Bedingungen vorbereiten.

Vorbereitung

1. Jdk1.7-Installation herunterladen

2. Tomcat 7.0 herunterladen

3 . Laden Sie Myeclipse 6.5 herunter

4. Laden Sie Json-lib von einem Drittanbieter herunter.

1. Beantragen Sie eine öffentliche IP-Adresse und veröffentlichen Sie Ihre eigene Anwendung.

Zum Beispiel: 192.168.1.102

2. Öffnen Sie myeclipse und erstellen Sie ein Projekt

wie unten gezeigt:

Eine unverzichtbare Einführung in den Zugangsleitfaden für Neulinge in der JAVA-WeChat-Entwicklung

3. Erstellen Sie eine Servlet-Klasse für den WeChat-Anwendungszugriff

Eine unverzichtbare Einführung in den Zugangsleitfaden für Neulinge in der JAVA-WeChat-Entwicklung

JAVA-Implementierungsklasse: 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 XML组装组件
	 */
	 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 业务转发组件
	 * 
	 */
	  private void  manageMessage(String requestStr,HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
		    
		    String responseStr;
		   
			try {
				 XMLSerializer xmlSerializer=new XMLSerializer();
				 JSONObject jsonObject =(JSONObject) xmlSerializer.read(requestStr);
				 String event =jsonObject.getString("Event");
				 String msgtype =jsonObject.getString("MsgType");
				 if("CLICK".equals(event) && "event".equals(msgtype)){ //菜单click事件
					 String eventkey =jsonObject.getString("EventKey");
					 if("hytd_001".equals(eventkey)){ // hytd_001 这是好友团队按钮的标志值
						 jsonObject.put("Content", "欢迎使用好友团队菜单click按钮.");
					 }
					
				 }
				 responseStr =creatRevertText(jsonObject);//创建XML
				 log.info("responseStr:"+responseStr);
				 OutputStream os =response.getOutputStream();
				 os.write(responseStr.getBytes("UTF-8"));
			}   catch (Exception e) {
				e.printStackTrace();
			}
			
	}
	private String creatRevertText(JSONObject jsonObject){
	    	StringBuffer revert =new StringBuffer();
	    	revert.append("<xml>");
	    	revert.append("<tousername></tousername>");
	    	revert.append("<fromusername></fromusername>");
	    	revert.append("<createtime>"+jsonObject.get("CreateTime")+"</createtime>");
	    	revert.append("<msgtype></msgtype>");
	    	revert.append("<content></content>");
	    	revert.append("<funcflag>0</funcflag>");
	    	revert.append("</xml>");
	    	return revert.toString();
	    }
	@Override
	public void init() throws ServletException {
		Token="test123";
	}
	 
	private boolean isEmpty(String str){
		return null ==str || "".equals(str) ? true :false;
	}
	private String trim(String str){
		return null !=str  ? str.trim() : str;
	}
	
}
Nach dem Login kopieren

4. Lokal bereitgestellte Anwendung besuchen Sie http://localhost :Portnummer/Kontext/wenxin

Eine unverzichtbare Einführung in den Zugangsleitfaden für Neulinge in der JAVA-WeChat-Entwicklung

5 .Bewerben Sie sich als Entwickler

Besuchen Sie http://mp.weixin. qq.com, Entwicklermodus aktivieren. Geben Sie die URL ein und nehmen Sie an, und die Bewerbung ist erfolgreich, wie unten gezeigt:

Eine unverzichtbare Einführung in den Zugangsleitfaden für Neulinge in der JAVA-WeChat-Entwicklung



Das obige ist der detaillierte Inhalt vonEine unverzichtbare Einführung in den Zugangsleitfaden für Neulinge in der JAVA-WeChat-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage