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

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

 
阅读更多
    第一步要去微信的官方网站申请个服务号地址是: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/)上填写相关注册信息...

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

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

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

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

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

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

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

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

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

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

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

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

    微信公众平台开发教程(四) 实例入门:机器人回复(附源码)

    上一篇文章,写了基本框架,可能很多人会觉得...这里不再赘述,参照上一章,微信公众账号开发教程(二) 基础框架搭建 //www.jb51.net/article/98754.htm 2、签名认证和分发请求 这里不再赘述,参照上一章,微信

    GBlog-wx博客小程序-其他

    GBlog-wx博客小程序采用halo作为后台,调用...在微信公众平台中,开发——开发设置——服务器域名中添加request、uploadFile、downloadFile合法域名。将上述ApiBaseUrl域名添加到request合法域名,例如www.***.com。

    GBlog-wx博客小程序 v1.0

    GBlog-wx博客小程序...在微信公众平台中,开发——开发设置——服务器域名中添加request、uploadFile、downloadFile合法域名。将上述ApiBaseUrl域名添加到request合法域名,例如www.***.com。GBlog-wx博客小程序截图

    单点登录源码

    服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该模块支持验签、鉴权、路由、限流、监控、容错、日志等功能。示例图: ![API网关]...

    微同商城-其他

    微同商城是一个以Java进行开发的微信小程序商城源码。 减少重复造轮子,开源微信小程序商城(前后端开源:uniapp+Java),秒杀、优惠券、多商户、直播卖货、分销等功能。快速搭建一个属于自己的微信小程序商城。 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    6.2 系统运行环境搭建及配置 34 6.2.1 AndroidManifest.xml主程序环境配置 34 6.2.2 移动端工程资源布局 35 6.3 认我测在线认证检测系统的主要功能实现 36 6.3.1用户查询 36 6.3.2订单操作 37 6.3.3个人信息维护 37 ...

    BingSNS多社群平台系统(社群、商城、直播、分销) BingSNSMultiCommunityPlatform.rar

    搭建流程:1配置Inc.asp 2接微信公众账号 ----------------------------------------------------------------------------- /a_Inc/Inc.asp 配置文件 网站域名、微信Token在此设置 直播源配置请填写准确的推流...

Global site tag (gtag.js) - Google Analytics