Maison > Applet WeChat > Développement WeChat > Une introduction incontournable au guide d'accès pour les débutants dans le développement JAVA WeChat

Une introduction incontournable au guide d'accès pour les débutants dans le développement JAVA WeChat

高洛峰
Libérer: 2017-03-26 13:54:12
original
1801 Les gens l'ont consulté

Je crois que beaucoup de gens ne sont plus étrangers au développement de WeChat. J'ai également été torturé par divers problèmes de la part d'un débutant en développement de WeChat, puis je suis allé sur les moteurs de recherche pour rechercher divers articles à lire, mais ils étaient essentiellement dispersés. L'information, sans une approche unifiée, explique systématiquement comment développer des applications WeChat. L'auteur combine son expérience réelle de développement pour la résumer et la partager avec les débutants en développement WeChat ou les développeurs qui étudient.

Cet article explique principalement comment créer une plateforme de développement WeChat. Les anciens disaient : « Aiguiser un couteau en vaut la peine. » Nous devons également préparer certaines conditions nécessaires lors du développement d'applications.

Préparation

1. Téléchargez l'installation de Jdk1.7

2. Téléchargez Tomcat 7.0

3 . Téléchargez Myeclipse 6.5

4. Téléchargez le pot tiers Json-lib .

1. Demandez une adresse IP publique et publiez votre propre application.

Par exemple : 192.168.1.102

2. Ouvrez myeclipse et créez un projet

comme indiqué ci-dessous :

Une introduction incontournable au guide daccès pour les débutants dans le développement JAVA WeChat

3. Créez une classe de servlet d'accès à l'application WeChat

Une introduction incontournable au guide daccès pour les débutants dans le développement JAVA WeChat

Classe d'implémentation 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 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;
	}
	
}
Copier après la connexion

4. Visitez l'application déployée localement http://localhost :numéro de port/context/wenxin

Une introduction incontournable au guide daccès pour les débutants dans le développement JAVA WeChat

5 .Postulez pour devenir développeur

Visitez http://mp.weixin. qq .com , activez le mode développeur. Remplissez l'URL et prenez, et la candidature est réussie, comme indiqué ci-dessous :

Une introduction incontournable au guide daccès pour les débutants dans le développement JAVA WeChat



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal