`
crackajack_zg
  • 浏览: 53967 次
社区版块
存档分类
最新评论

微信公众服务号接口开发环境搭建

 
阅读更多
    第一步要去微信的官方网站申请个服务号地址是:https://mp.weixin.qq.com/
   
    第二步,验证服务器地址的有效性真是一波三折,考虑到开发阶段要经常用到调试,特别是断点调试,所以决定先将服务器地址配置为本机(经过路由器和电信接入互联网) 。因为之前有个网站用的是struts2架构的,现在想把微信的业务逻辑写在servlet 里面,然后也跟着这个网站部署到互联网上 ,因为这样复用性比较大,servlet可以直接用于其他项目,如果写在struts里面则通用性不好。先遇到的是servlet 跟struts2 的filter 冲突了url访问不了servlet,这个问题都好解决,web.xml里面servlet 的 url-pattern 的值加个“.servlet”。 然后servlet就能访问了。
web.xml增加的片段如下:
	 <servlet>
	        <servlet-name>winxin</servlet-name>
	        <servlet-class>com.cdlqjj.ServletWeiXin</servlet-class>
	    </servlet>
	
	    <servlet-mapping>
	        <servlet-name>winxin</servlet-name>
	        <url-pattern>/winxin.servlet</url-pattern>
	    </servlet-mapping>

    其实就是url-pattern 的值加了个叫servlet 的扩展名。然后这几行代码要写到struts过滤器的前面 。

java实现如下:MsgCompoent  是具体处理报文的逻辑。这自己实现吧。

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.velocity.VelocityContext;
import org.dom4j.Document;  
import org.dom4j.DocumentException;  
import org.dom4j.Element;  
import org.dom4j.io.SAXReader; 

import com.xxx.analysis.TextAnalysis;
import com.xxx.pub.MsgCompoent;
import com.xxx.pub.StringTools;

import edu.fudan.util.exception.LoadModelException;

public class ServletWeiXin extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	   
	   


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {

		//如果是接入验证 ,这里就该为true
		 if(true) {
			 
			 String signature = (String) request.getParameter("signature");
			 String timestamp = (String) request.getParameter("timestamp");
			 String nonce = (String) request.getParameter("nonce");
			 String echostr = (String) request.getParameter("echostr");
			 
			 if(echostr!=null&&!echostr.equals("")) {
				 
		        response.setCharacterEncoding("UTF-8");  
		        PrintWriter out = response.getWriter();  
		        out.print(echostr);
		        return ;
			 }
		 }
		 
			String webpath = this.getServletConfig().getServletContext().getRealPath("/");

		  String toUserName = (String) request.getAttribute("ToUserName");


		 
        request.setCharacterEncoding("UTF-8");  
        response.setCharacterEncoding("UTF-8");  
        PrintWriter out = response.getWriter();  
  
        InputStream in = request.getInputStream();

        try {  
        	MsgCompoent msgcompoent = new MsgCompoent();
			out.print(msgcompoent.dealReceive(in,webpath));

        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        
        in.close();  
        in = null;  
        out.close();  
        out = null;  
        

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {

		doGet(request, response);

	}
}



    然后用了花生壳将动态域名解析。同样的url我自己通过浏览器可以访问,但是微信验证的时候就提示超时,我曾花了几秒钟怀疑过微信,不过这个想法立马就此打住。想了一下整个网络连通过程,没什么问题我tomcat 的端口是80 。
   
    最后我觉得可能是我防火墙的问题,看了一下防火墙是否打开,结果真是打开状态。果断就把他关闭了。以为这回可以了,结果 ,验证还是超时 希望又破灭了。
   
    最最后发现是电信封了这80端口 ,本着我花了钱的,我是大爷的思想给10000号打去了电话,得到的答复是他们是封了80端口不过如果想打开要报批,等48小时。
再想了一下,应该有什么工具可以绕开这个吧,然后用了nat123  ,冲了一块钱人民币做了端口映射,这才开通了80端口 。

  • 大小: 43.3 KB
分享到:
评论

相关推荐

    微信公众平台与小程序开发 从零搭建整套系统

    1.2 微信公众平台 6 1.2.1 公众平台简介 6 1.2.2 服务号和订阅号 7 1.3 企业号 8 1.4 小程序 8 1.5 微信开放平台 9 1.6 微信支付 10 1.7 表情开放平台 12 1.8 微信广告 12 1.9 小结...

    深入浅出微信公众平台实战开发(微网站、LBS云、Api接口调用、服务号高级接口)

    深入浅出微信公众平台实战开发(微网站、LBS云、Api接口调用、服务号高级接口)------微信公众平台搭建与开发揭秘

    微信公众平台搭建与开发揭秘(第2版)

    本书主要内容有微信公众平台介绍、订阅号的开发、地理位置应用、API 调用、数据库操作、微网站搭建、缓存处理、服务号多客服功能使用、企业号开发、第三方接口等,涵盖微信公众平台开发的各种基础应用。本书在编写...

    微信公众平台与小程序开发 从零搭建整套系统.part2

    本资源是《微信公众平台与小程序开发 从零搭建套系统》高清PDF扫描版。该书由张剑明著,中国工信出版集团和人民邮电出版社联合出版,有需要的小伙伴可以下载学习参考。 本书目录如下: 第1章 微信生态 1.1 微信:...

    微信公众平台与小程序开发 从零搭建整套系统.part1

    本资源是《微信公众平台与小程序开发 从零搭建套系统》高清PDF扫描版。该书由张剑明著,中国工信出版集团和人民邮电出版社联合出版,有需要的小伙伴可以下载学习参考。 本书目录如下: 第1章 微信生态 1.1 微信:...

    微信公众平台开发流程.docx

    前期准备:选择适合的微信公众平台类型,如订阅号、服务号或企业号。如果是个人只能注册订阅号,而企业可以选择注册服务号或企业号。 注册账号:在微信公众平台官网(https://mp.weixin.qq.com/)上填写相关注册信息...

    微信服务商分账功能开发(PHP).docx

    ### 微信服务商分账功能开发(PHP) #### 概述 本文档主要介绍如何使用PHP语言实现微信支付中的分账功能。通过本教程,开发者能够掌握如何设置分账参数、添加分账接收方以及如何调整SDK以符合微信支付的安全标准。...

    微信公众平台实战开发课程1

    《深入浅出微信公众平台实战开发》共16讲,本课程基于微信公众平台官方代码,由易到难,深入浅出的讲解微信公众平台各种常见功能的开发,包括Api接口调用,lbs应用,服务号高级接口,二级菜单,微网站搭建

    微信机器人开发指南.pdf

    微信机器人开发是一个涉及编程、网络、服务器管理等多方面知识的综合性项目。以下是一个详细的微信机器人开发指南,帮助开发者从零开始构建自己的微信机器人。...1.仔细阅读微信公众平台的开发文档,了解API的使用方

    微信公众号开发入门代码及示例

    微信公众号分为订阅号和服务号两种类型,订阅号适合做品牌传播,服务号则支持更多业务场景和高级功能。开发前需要确定公众号的用途,了解可以实现的功能,如消息自动回复、自定义菜单等。 2. 公众平台注册及配置 需要先...

    WXPP微信快速开发框架V2.0源码

    1.0版本的使用可以参考:【体验微信公众平台快速开发框架】和【利用快速开发框架,快速搭建微信浏览博客园首页文章】 通过实现IMessageRole.MessageRole(MiddleMessage message)和IMessageHandler....

    微信公众号的开发文档.docx

    了解微信公众号的类型:服务号、订阅号、企业号等。 了解微信公众平台的功能和特点。 注册和设置: 如何注册微信公众号。 完成公众号的基本设置(头像、介绍、自动回复等)。 开发环境搭建: 需要的开发工具(如 ...

    Awcms微信营销系统加盟版 v6.7.rar

     Awcms微信公共平台基于ThinkPHP框架 PHP MySQL 的技术开发,Awcms微信营销平台是企业微信管理和营销工具,通过微管家微信营销平台用户可以轻松管理自己的微信各类信息,对微信公众账号进行维护、开展智能机器人、...

    微信小程序仿饿了么外卖小程序源码(源码+源码导入视频教程+源码导入文档教程)小程序精选源码亲测可用

    1. **微信小程序开发环境**:首先,你需要安装微信开发者工具,这是一个集成开发环境,提供了代码编辑、预览、调试等功能,是开发微信小程序的基础。你需要注册微信开发者账号并绑定小程序,然后在工具中创建新项目...

    使用图灵api创建微信聊天机器人

    借助图灵机器人的API接口,即使是编程新手也能轻松搭建起一个属于自己的微信聊天机器人。接下来,我们将详细介绍通过图灵机器人API创建微信聊天机器人的全过程,包括所需资源、注册流程、配置方式以及运行原理。 ...

    JEECMS微信小程序 1.0.1.zip

    例如,媒体机构可以快速搭建内容发布平台,企业可以构建产品展示和在线服务的轻应用,社区则可以提供便捷的互动讨论环境。 总的来说,JEECMS微信小程序1.0.1是一个将成熟的JSP CMS系统与微信小程序技术相结合的优秀...

    Java基于微信平台的4S店智能管理系统的设计与实现

    内容概要:本文结合移动应用开发技术、手机地图服务和HTML前端开发技术,构建了基于 微信公众平台的汽车4S店的智能管理系统,该系统包含微信客户端和后台管理端两个 部分。本文首先釆用Java语言和SpringBoot框架技术...

    基于微信公众平台的外语微学习资源设计与应用研究

    针对微信使用群体的普及,本文提出在构建外语学习资源信息管理系统的基础上,搭建一个用于学生校园学习的微信服务账号,从而通过该微信服务账号实现学生对学习资源的利用,更好的促进语言能力的提升。本文借助Web...

    微信小程序商城完整源代码

    微信小程序商城完整源代码是一个专为微信平台设计的在线购物应用开发项目,它允许...通过深入研究和理解这个完整的源代码,开发者不仅可以搭建自己的小程序商城,还能学习到微信小程序的开发技术和电商应用的设计思路。

Global site tag (gtag.js) - Google Analytics