weixin4j 위 챗 개발 - 제로 개발 초보 자 접속

5275 단어 Java위 챗 개발
사실 weixin4j 에 서 는 필터 에 기본 적 인 메 시 지 를 제공 하 였 습 니 다. jar 패 키 지 를 도입 한 다음 웹. xml 과 weixin4j. properties 를 설정 한 다음 웹 프로젝트 를 배치 하면 초보 접속 을 실현 할 수 있 습 니 다.
우선 기본 필터 원본 을 보 여 드 리 겠 습 니 다.
/*
 *       (JAVA) SDK
 *
 * Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved.
 * 
 * http://www.weixin4j.org/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.weixin4j;

import org.weixin4j.util.TokenUtil;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.weixin4j.spi.IMessageHandler;
import org.weixin4j.spi.HandlerFactory;

/**
 *                
 *
 * @author yangqisheng
 * @since 0.0.1
 */
public class WeixinUrlFilter implements Filter {

    @Override
    public void init(FilterConfig config) throws ServletException {
        if (Configuration.isDebug()) {
            System.out.println("WeixinUrlFilter    !");
        }
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
        //        GET      URL ,         GET  
        boolean isGet = request.getMethod().toLowerCase().equals("get");
        if (Configuration.isDebug()) {
            System.out.println("      :" + request.getMethod() + "   ");
            System.out.println("    URL:" + request.getServletPath());
        }
        //         
        String signature = request.getParameter("signature");//       
        String timestamp = request.getParameter("timestamp");//    
        String nonce = request.getParameter("nonce");       //    
        //Token weixin4j.properties    Token
        String token = TokenUtil.get();
        if (isGet) {
            //1.       
            //http://mp.weixin.qq.com/wiki/index.php?title=       
            //URL http://www.weixin4j.org/api/   
            //       
            String echostr = request.getParameter("echostr");   //
            //    GET         ,    echostr    ,     ,       ,      
            if (TokenUtil.checkSignature(token, signature, timestamp, nonce)) {
                response.getWriter().write(echostr);
            }
        } else {
            //    GET         ,    echostr    ,     ,       ,      
            if (!TokenUtil.checkSignature(token, signature, timestamp, nonce)) {
                //     ,    
                response.getWriter().write("");
                return;
            }
            //            、              ,  URL     
            doPost(request, response);
        }
    }

    //                ,      POST   XML          URL 
    //              ,                 URL
    //             ,           XML    ,    Recongnition  
    private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/xml");
            //  POST 
            ServletInputStream in = request.getInputStream();
            if (Configuration.isDebug()) {
                System.out.println("        ,    ...");
            }
            IMessageHandler messageHandler = HandlerFactory.getMessageHandler();
            //      ,    
            String xml = messageHandler.invoke(in);
            //    
            response.getWriter().write(xml);
        } catch (Exception ex) {
            ex.printStackTrace();
            response.getWriter().write("");
        }
    }

    @Override
    public void destroy() {
    }
}

소스 코드 는 여러분 이 볼 수도 있 고 안 볼 수도 있 습 니 다.
웹. xml 에 Filter 를 추가 하면 됩 니 다.


    wechatFilter
    org.weixin4j.WeixinUrlFilter


    wechatFilter
    /api/*

마지막 으로 프로젝트 를 포장 하여 서버 에 발표 하면 위 챗 공중 번호 플랫폼 에서 개발 자 접속 인증 을 할 수 있 습 니 다.
당신 의 배치 가 성공 하고 생활 이 즐 겁 기 를 바 랍 니 다!
내일 더 재 미 있 는 내용 이 있 을 거 야. 떠 나 지 말고 곧 돌아 와!
귀 하 는 저희 의 공식 QQ 군 에 가입 할 수 있 습 니 다. 365 736353, 전문 가 는 귀하 께 각종 기술 문 제 를 풀 어 드릴 수 있 습 니 다.
더 많은 글, 주목 하 세 요:http://www.weixin4j.org/

좋은 웹페이지 즐겨찾기