微信公众平台接入Java实例,结合BAE

java版微信开发全套 直接可以使用的java版的微信开发,自动回复,发送图片,声音,文字······,可以直接使用 立即下载

1.如何成为开发者?

\

需要填写接口配置信息,需要自己的服务器资源,一般自己没有服务器,所以可以采用云服务器,例如BAE,SAE,阿里云服务器。这里用BAE

2.打开百度开放云平台官网,注册,登陆,点击开发者服务管理

\

\

2.1.点击“创建工程”

\

\

填写工程相关信息,应用名称自定义,类型选择java-tomcat,域名唯一,代码管理工具选择svn 到这里,bae应用创建完了.

3.现在来实现TOKEN验证的代码部分

3.1.创建一个Java web工程,我用的是MyEclipse8.5,工程名称为voastudy,点击Finish完成。

\

\

3.2.新建一个servlet,这里是CoreServlet,点击Next.

\\

\

3.3.勾选创建web.xml,以及配置servlet,这里的路径很关键,这是去请求servlet里的方法

\

\

3.4.实现验证TOKEN方法,微信公众平台提供的是PHP的实例代码.但其验证本质是一样的,都是要经过排序,sha1加密进行比较。请参考下面的代码。这是CoreServlet.java类.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package wx.sunl.servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import wx.sunl.util.SignUtil;
 
@SuppressWarnings ( "serial" )
public class CoreServlet extends HttpServlet
{
     public CoreServlet() {
         super ();
     }
     public void destroy() {
         super .destroy();
     }
 
     /**
      * 验证url和token
      */
     public void doGet(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" );
         
         PrintWriter out = response.getWriter();
         // 通过检验 signature 对请求进行校验,若校验成功则原样返回 echostr,表示接入成功,否则接入失败
        if (SignUtil.checkSignature(signature, timestamp, nonce)){
            out.print(echostr);
        }
 
        out.close();
        out = null ;
     }
 
     /**
      *用户向公众平台发信息并自动返回信息
      */
     public void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
 
         
     }
 
     public void init() throws ServletException {
     }
 
}
其中调用到了SignUtil类的checkSignature方法,下面是SignUtil.java类.注意:其中一个静态属性token的值,在最后一步需要用到来验证的.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package wx.sunl.util;
 
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
 
public class SignUtil {
     /**
      * 与接口配置信息中的 token 要一致,这里赋予什么值,在接口配置信息中的Token就要填写什么值,
      * 两边保持一致即可,建议用项目名称、公司名称缩写等,我在这里用的是项目名称weixinface
      */
     private static String token = "weixintest" ;
     
     /**
      * 验证签名
      * @param signature
      * @param timestamp
      * @param nonce
      * @return
      */
     public static boolean checkSignature(String signature, String timestamp, String nonce){
         String[] arr = new String[]{token, timestamp, nonce};
         // 将 token, timestamp, nonce 三个参数进行字典排序
         Arrays.sort(arr);
         StringBuilder content = new StringBuilder();
         for ( int i = 0 ; i < arr.length; i++){
             content.append(arr[i]);
         }
         MessageDigest md = null ;
         String tmpStr = null ;
         
         try {
             md = MessageDigest.getInstance( "SHA-1" );
             // 将三个参数字符串拼接成一个字符串进行 shal 加密
             byte [] digest = md.digest(content.toString().getBytes());
             tmpStr = byteToStr(digest);
         } catch (NoSuchAlgorithmException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
         content = null ;
         // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
         return tmpStr != null ? tmpStr.equals(signature.toUpperCase()): false ;
     }
     
     /**
      * 将字节数组转换为十六进制字符串
      * @param digest
      * @return
      */
     private static String byteToStr( byte [] digest) {
         // TODO Auto-generated method stub
         String strDigest = "" ;
         for ( int i = 0 ; i < digest.length; i++){
             strDigest += byteToHexStr(digest[i]);
         }
         return strDigest;
     }
     
     /**
      * 将字节转换为十六进制字符串
      * @param b
      * @return
      */
     private static String byteToHexStr( byte b) {
         // TODO Auto-generated method stub
         char [] Digit = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' };
         char [] tempArr = new char [ 2 ];
         tempArr[ 0 ] = Digit[(b >>> 4 ) & 0X0F ];
         tempArr[ 1 ] = Digit[b & 0X0F ];
         
         String s = new String(tempArr);
         return s;
     }
}

4.代码已经写完了,现在来提交代码到svn.如果没有svn客户端工具,那首先下载(svn版本工具)安装。打开svn

\

\

4.1.这里的url去百度开放云平台去这里复制

\

\

4.2.粘贴url,打开svn,会看到服务器的2个文件

\

\

4.3.代码提交到svn 首先删掉root.war

\\

\

4.4.java web工程打包成war包,取名ROOT.war,然后提交到svn

\

\\

4.5.然后将这个war包提交到svn

\

\

4.6.如果提交成功了,百度开放云平台会检测到有新版本产生,选中应用,点击“发布设置”

\

\

4.7.发布新版本

\

\

5.发布成功后,测试是否部署成功?

\

5.1.如果看到这个,离成功只差一步啦。<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050433.jpg" alt="\">

\

5.5.在域名后边加上请求我们刚刚servlet的请求路径,上边的例子是/CoreServlet,如果报505错误(why?因为那几个参数都是空的),说明部署成功了

\\


6.最后一步,填写Url 和 Token来验证 成为开发者。Url:百度应用的域名+请求servlet的路径例如:http://weixintest11.duapp.com/CoreServlet.Token是在程序中自定义的值(在SignUtil.java中定义)

\

转载于http://www.2cto.com/kf/201405/299487.html

最全的Java调用WeiXin接口实例 最全的Java调用WeiXin接口实例,读懂它,用Java进行微信端开发,如履平地。 立即下载

相关推荐

微信公众平台开发者模式接入Java源码(附送开发者文档)

微信公众平台开发者模式接入Java源码(附送开发者文档)

Java对接微信公众平台详解

Java对接微信公众平台详解1.公众平台概述1.1 公众平台概述1.2 入门指引2.对接流程2.1 接入概述2.2 填写服务器配置2.3 接口域名说明2.4 获取Access token3.项目实现3.1 创建项目3.2 项目依赖3.3 项目配置3.4 加解密工具3.5 代码实现4.测试验证 1.公众平台概述 1.1 公众平台概述 微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,实现后台接口对接微信公众号的

靖节先生的博客 8093

微信公众平台接入Java实例

利用java实现微信公众平台接入,实现TOKEN验证,以及信息的回复接口实现。

第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发...

  第一部分:微信公众号对接的基本介绍   一、填写服务器配置信息的介绍   登录微信公众平台官网后,进入到公众平台后台管理页面。 选择 公众号基本设置-》基本配置 ,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey。   微信公众号配置界面:    以上配置需要认证后才会得到相应的权限。如果开发阶段,我们可以申请开发者测试账号。 ...

weixin_34037515的博客 566

JAVA微信公众平台开发实例

非常好的JAVA开发微信公众平台的实例代码,代码包和类划分的比较合理,对出做微信公众平台开发帮助很大

PLS-SEM(偏最小二乘路径建模)模型拟合优度指标

PLS-SEM(偏最小二乘路径建模)是一种基于方差的分析方法,侧重于预测导向,通过迭代优化路径系数和外部权重来最大化潜变量的解释方差(R²)。其评估指标分为外部测量模型和结构模型两部分:外部测量模型关注潜变量与显变量的关系,通过标准化载荷(>0.7)、信度指标(Cronbach’s α、复合信度CR>0.7)、聚合效度(AVE>0.5)和区分效度(Fornell-Larcker标准、HTMT<0.85)来评估模型的可靠性和有效性。结构模型则检验潜变量间的因果关系,通过路径系数(β值)

wewil_lwin的博客 3233

Java搭建微信公众号的服务器配置

微信公众号开发-服务器配置 因为公司网页需要调用公众号的api,所以特做记录 由于微信服务器获取的IP地址不固定,所以需要调用api,就需要配置服务器地址 1.微信公众平台配置 要进行服务器配置的话首先登入微信公众平台,总步骤如下: 登入微信公众平台,在左侧菜单栏最下方子菜单找到开发–基本配置 2.进入基本配置 官网文档:https://developers...

梓鸿 1561

STM32外部中断与事件机制深度解析:从硬件触发到软件响应

本文深入解析STM32外部中断与事件机制,从硬件触发到软件响应的完整流程。通过对比中断和事件的应用场景、响应速度及配置方法,帮助开发者优化嵌入式系统设计,特别适合需要低功耗或高实时性的项目。

weixin_29175469的博客 410

结合百度云平台和微信公众平台进行开发(一)

利用百度云平台运行我们自己的服务端项目,在平台上线运行。利用这个项目对应的域名将其配置到微信公众平台,并填写token值。(这里的token值是我们自定义的一个字符串,它配置在服务端项目)在手机微信客户端搜索你的微信公众平台公众号(订阅号),当然通过二维码会更快速准确,呵呵。 下面我们先重服务器端开始。 进入百度云平台的

赵峰的专栏 7464

/proc/sys/vm/max_map_count耗尽时,调用glibc 2.11.3 free()导致程序crash,问题追踪和解决

1. 问题 在客户环境下,当我们的程序消耗较大内存时,会偶尔crash。 通过gdb分析,程序core dump在malloc/free函数内。 当把/proc/sys/vm/max_map_count 从65530增加到131070,程序再也不crash。 相关命令 echo 131073 > /proc/sys/vm/max_map_count 2.  core

万大胖博客,苦并快乐着 4430

图像去畸变(相机成像、畸变模型)

首先通过上一步相机标定得到畸变参数和相机内参,同时,由于图像去畸变都是在归一化相机坐标系下进行的,而图像都是像素坐标,所以需要先通过相机内参矩阵将图片上的像素点从像素坐标系转变到归一化坐标系,再通过畸变参数在归一化坐标上进行去畸变的操作。由于畸变是发生在世界点通过透镜投影到相机坐标系这个过程中的,所以去畸变操作是在相机坐标系下进行的。(如图,Pd即为畸变后成像点)3.读取图像和各个参数,调用去畸变函数(opencv自带的cv.undistort函数),就可以完成对图像的去畸变处理,进而得到去畸变的图像。

lm5688jjupm1n28的博客 1051

在微信公众号中使用百度AI平台API接口

1.百度ai接口接入的流程(以车型识别为例,输入图像,输出文字) req = requests.get(message.img) 通过request.get方法处理message.img,message.img是一个url域名,可以通过它下载图片 返回req(不懂这个req是什么,姑且叫热气球吧),官方解释是实体主体 经过打印,可以发现req的类型是一个request模型库里面的的一个类,类的名...

weixin_41855010的博客 1970

U8二次开发CO-基于Net8调用COM对象

本文章介绍的U8二次开发CO技术,就是基于微软COM组件技术,使用微软开源的编程框架Net6/7/8/9来调用U8的COM组件,完成基本的登录认证,工作流处理,数据库操作等。

pccai的博客 5501

微信公众平台接入Java实例(结合百度开放云平台)

关于注册公众账号这块不详细介绍 注册完成,审核认证完,就可以开始玩了 1.如何成为开发者? 需要填写接口配置信息,需要自己的服务器资源,一般自己没有服务器,所以可以采用云服务器,例如BAE,SAE,阿里云服务器。这里用BAE 2.打开百度开放云平台官网,注册,登陆,点击开发者服务管理 2.1.点击“创建工程”

AD921012的博客 1986

[官方培训]22-UE资产优化 Epic 肖月 笔记

Nanite+Lumen目标:面向TA,美术,不影响视觉的前提下,优化运行和编辑效率引擎:UE5.1延迟管线平台:主流PC,Windows 10 with DX12。

Tcohneyn的博客 1576

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2261

微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(MyEclipse + SVN)

转载请标明出处,谢谢!  版本说明:     V1:          2014-3-30 版 前言: 因为要进行微信开发,就必须要成为微信开发者,要想成为微信开发者,就必须要有服务器响应微信的 Token 验证,如果没有公网服务器环境,可以去了解下BAE、SAE或阿里云,这里以 BAE 为例。 前提条件:     (1)拥有微信公众平台帐号(申请地址:htt

bingtianlong的专栏 5277

【OS】AUTOSAR OS系统调用产生Trap的过程详解

AUTOSAR OS系统调用产生Trap的过程详解

qq_36056498的博客 2439

百度BAE JAVA环境项目部署和调试

起初在一个应用挂在虚拟主机上,昨天早上虚拟主机挂了。本来考虑迁移到SAE上的,但之前发现SAE的JVM云豆消耗的太快(PS:我是中级开发者,每月10000云豆,如果有哪位大神对SAE JAVA云豆能控制的好的请私密我一下,在此谢谢了),只能考虑百度的BAE了。 之前有玩过几次BAE,不过都是小程序,很简单,随便弄弄就好了。现在面对的是一个在虚拟主机上跑了3个月的项目做迁移。顿时头疼了。无从下

iShareStudio 1774

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

百度BAE JAVA环境搭建属于自己的微信公众平台接口

在百度BAE JAVA环境搭建属于自己的微信公众平台接口     BAEJAVA环境BAE环境微信公众平台 在讲之前先唠几句,之前闲来无事接触微信搞到现在已经有一段时间了。期间折腾过很多东西。本来想在微信上搞点实质性的东西,搞着搞着就搞成娱乐的玩意了。不过也好,朋友们无聊的时候拿来当成娱乐发泄工具也不错,呵呵。废话不多说了,直奔主题吧。 1.在做微信公众平台开发前

锋行天下 2250

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)

转载请标明出处,谢谢!  版本说明:     V1:         2014-2-13更新,红色字体代表最近一次更新的内容。     V2:             2014-3-30  更新,上一版本有很多读者反应说最后还是无法通过微信 token 认证,此版本特意解决这个问题。红色字体代表最近一次更新的内容。 至读者:    

bingtianlong的专栏 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

(转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)

原文传送门(http://blog.youkuaiyun.com/bingtianxuelong/article/details/17843111) 版本说明:     V1:         2014-2-13更新,红色字体代表最近一次更新的内容。     V2:             2014-3-30  更新,上一版本有很多读者反应说最后还是无法通过微信 token 认证

阿龙三的博客 1390

java微信开发bae_在百度BAE2.0 JAVA环境下搭建属于自己的微信公众平台接口

在讲之前先唠几句,之前闲来无事接触微信搞到现在已经有一段时间了。期间折腾过很多东西。本来想在微信上搞点实质性的东西,搞着搞着就搞成娱乐的玩意了。不过也好,朋友们无聊的时候拿来当成娱乐发泄工具也不错,呵呵。废话不多说了,直奔主题吧。2.BAE创建新项目并且完成BAE基本配置 3.创建BAE基础DEMO项目,并使用eclipse checkout出代码 下图为BAE检出的默认项目,项目报错原因是未添加...

weixin_32136817的博客 141

在百度BAE2.0 JAVA环境下搭建属于自己的微信公众平台接口

在讲之前先唠几句,之前闲来无事接触微信搞到现在已经有一段时间了。期间折腾过很多东西。本来想在微信上搞点实质性的东西,搞着搞着就搞成娱乐的玩意了。不过也好,朋友们无聊的时候拿来当成娱乐发泄工具也不错,呵呵。废话不多说了,直奔主题吧。 1.在做微信公众平台开发前必须先有:微信公众平台帐号(申请...

chenglan7090的博客 103
上一篇: 数字信号处理的学习资源
下一篇: Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
小白study
博客等级 码龄12年 658粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值