もう多くの人は WeChat 開発に馴染みがないと思いますが、私も WeChat 開発の新人からさまざまな問題に悩まされ、その後、検索エンジンでさまざまな記事を探しましたが、基本的には散在した情報でした。統一された体系的なシステムがなければ、WeChat アプリケーションを開発する方法を説明します。著者が実際の開発経験を交えてまとめ、WeChat開発の初心者や勉強中の開発者に共有します。
この記事では主にWeChat開発プラットフォームの構築方法について説明します。古代人はこう言いました、「ナイフを研ぐのは努力の価値がある」。アプリケーションを開発する際にも、いくつかの必要な条件を準備する必要があります。
準備
1. Jdk1.7をダウンロードしてインストール
2. Tomcat 7.0をダウンロード
3. Myeclipse 6.5をダウンロード
4. Json-libサードパーティのjarをダウンロード
1.会社のネットワーク IP アドレスを使用して、独自のアプリケーションを公開します。
例: 192.168.1.102
2. myeclipse を開き、以下に示すようにプロジェクトを作成します:
3. WeChat アプリケーション アクセス サーブレット クラスを作成します
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; } }
4 . ローカルにデプロイされたアプリケーション http://localhost:portnumber/context/wenxin にアクセスします
5 .
開発者になるために申請します開発者モデルを有効にするには、http://mp.weixin.qq.com にアクセスしてください。以下に示すように、URL を入力して取得すると、アプリケーションは成功します。
以上がJAVA WeChat 開発の初心者向けのアクセス ガイドの必読の入門書の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。