当前位置:首页 » 操作系统 » 微信公众平台源码java

微信公众平台源码java

发布时间: 2022-09-15 02:59:49

Ⅰ 如何使用微信sdk java

1.首先我们新建一个Java开发包WeiXinSDK
2.包路径:com.ansitech.weixin.sdk
测试的前提条件:
假如我的公众账号微信号为:vzhanqun
我的服务器地址为:http://www.vzhanqun.com/
下面我们需要新建一个URL的请求地址

我们新建一个Servlet来验证URL的真实性,具体接口参考
http://mp.weixin.qq.com/wiki/index.php?title=接入指南

3.新建com.ansitech.weixin.sdk.WeixinUrlFilter.java
这里我们主要是获取微信服务器法师的验证信息,具体验证代码如下

[java] view plain print?
package com.ansitech.weixin.sdk;

import com.ansitech.weixin.sdk.util.SHA1;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class WeixinUrlFilter implements Filter {

//这个Token是给微信开发者接入时填的
//可以是任意英文字母或数字,长度为3-32字符
private static String Token = "vzhanqun1234567890";

@Override
public void init(FilterConfig config) throws ServletException {
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");
System.out.println("获得微信请求:" + request.getMethod() + " 方式");
if (isGet) {
//验证URL真实性
String signature = request.getParameter("signature");// 微信加密签名
String timestamp = request.getParameter("timestamp");// 时间戳
String nonce = request.getParameter("nonce");// 随机数
String echostr = request.getParameter("echostr");//随机字符串
List<String> params = new ArrayList<String>();
params.add(Token);
params.add(timestamp);
params.add(nonce);
//1. 将token、timestamp、nonce三个参数进行字典序排序
Collections.sort(params, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
//2. 将三个参数字符串拼接成一个字符串进行sha1加密
String temp = SHA1.encode(params.get(0) + params.get(1) + params.get(2));
if (temp.equals(signature)) {
response.getWriter().write(echostr);
}
} else {
//处理接收消息
}
}

@Override
public void destroy() {

}
}
好了,不过这里有个SHA1算法,我这里也把SHA1算法的源码给贴出来吧!

4.新建com.ansitech.weixin.sdk.util.SHA1.java

[java] view plain print?
/*
* 微信公众平台(JAVA) SDK
*
* Copyright (c) 2014, Ansitech Network Technology Co.,Ltd All rights reserved.
* http://www.ansitech.com/weixin/sdk/
*
* 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 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 com.ansitech.weixin.sdk.util;

import java.security.MessageDigest;

/**
* <p>Title: SHA1算法</p>
*
* @author qsyang<[email protected]>
*/
public final class SHA1 {

private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

/**
* Takes the raw bytes from the digest and formats them correct.
*
* @param bytes the raw bytes from the digest.
* @return the formatted bytes.
*/
private static String getFormattedText(byte[] bytes) {
int len = bytes.length;
StringBuilder buf = new StringBuilder(len * 2);
// 把密文转换成十六进制的字符串形式
for (int j = 0; j < len; j++) {
buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
}
return buf.toString();
}

public static String encode(String str) {
if (str == null) {
return null;
}
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
messageDigest.update(str.getBytes());
return getFormattedText(messageDigest.digest());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
5.把这个Servlet配置到web.xml中

[html] view plain print?
<filter>
<description>微信消息接入接口</description>
<filter-name>WeixinUrlFilter</filter-name>
<filter-class>com.ansitech.weixin.sdk.WeixinUrlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WeixinUrlFilter</filter-name>
<url-pattern>/api/vzhanqun</url-pattern>
</filter-mapping>
好了,接入的开发代码已经完成。

6.下面就把地址URL和密钥Token填入到微信申请成为开发者模式中吧。

Ⅱ java 写的微信公众号代码如何部署到云服务器上 公众号上的URL怎么填写

如果您自己有网站的话可以利用网站的服务器后台接口。将微信与网站连接。可以实现在微信上查询网站内容。如果自己没有网站就没必要弄接口了直接用微信公众平台后台可以添加关键词回复什么的这些不需要代码也不需要后台。

Ⅲ 关于制作微信公众平台需要的java技术

得会jsp, 因为是基于网络的 如果有用到数据 还得有数据库(mysql)另外你可以参考网上的一些源码,主要是实现接口

Ⅳ 微信公众平台发送客服消息基于java怎么实现,求具体代码谢谢

这个代码可能比较多。。看微信公众平台的api,里面写的很清楚,其实就是一个http请求,加上指定的报文就可以了,用java写还比较简单的。。

Ⅳ 微信公众平台源码是一个什么软件

微信公众平台源码不是软件,是一套微信建站系统,即微信第三方平台。

微信第三方平台基于微信公众平台开发建立的微信建站系统。其所有系统功能皆基于微信公众账号实现,常见系统功能:微网站、微商城、微信分销、娱乐插件、营销插件等功能。

系统源码是多用户的微信第三方平台,为:平台运营者=》代理商=》消费者(企业)。

Ⅵ 如果想使用java进行微信公众平台开发至少需要掌握哪些内容

开发用的是HTML5开发的
你还需要去后台开发者中心下载腾讯提供的源码文件

Ⅶ 微信公众平台自定义菜单java开发

对于微信自定义菜单,

  • 前台页面,表单输入;

  • 后台程序解析处理,验证;

  • 保存到数据库,可以下次再继续修改;

  • 用户提交微信自定义菜单,后台程序,请求微信服务器,发送自定义菜单。

Ⅷ 求助贴,微信公众号开发java版的,怎么获取用

微信提供了接口可以获取内容:在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。开发者可通过OpenID来获取用户基本信息。请使用https协议。我们可以看看官方的文档:获取用户的基本信息。接口调用请求说明http请求方式:GET/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN参数说明参数是否必须说明access_token是调用接口凭证openid是普通用户的标识,对当前公众号唯一lang否返回国家地区语言版本,zh_CN简体,zh_TW繁体,en英语返回说明正常情况下,微信会返回下述JSON数据包给公众号:{"subscribe":1,"openid":"o6_bmjrPTlm6_2sgVt7hMZOPfL2M","nickname":"Band","sex":1,"language":"zh_CN","city":"广州","province":"广东","country":"中国","headimgurl":"/mmopen//0","subscribe_time":1382694957,"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL""remark":"","groupid":0}参数说明参数说明subscribe用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。openid用户的标识,对当前公众号唯一nickname用户的昵称sex用户的性别,值为1时是男性,值为2时是女性,值为0时是未知city用户所在城市country用户所在国家province用户所在省份language用户的语言,简体中文为zh_CNheadimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。subscribe_time用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间unionid只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)remark公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注groupid用户所在的分组ID错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):{"errcode":40013,"errmsg":"invalidappid"}

Ⅸ 微信公众平台可以用java写吗

可以,我现在的项目就是java后台开发的微信公众平台,唯一要注意的就是公众平台openid的使用

Ⅹ Java 微信公众号主动消息推送源码

public final static String HOST = "http://mp.weixin.qq.com";

热点内容
服务器怎么设置电脑远程端口 发布:2025-07-03 16:28:46 浏览:72
电信无线路由器官方密码是什么 发布:2025-07-03 16:25:00 浏览:773
空间只能申请访问 发布:2025-07-03 16:23:27 浏览:735
华硕天选2air配置如何选择 发布:2025-07-03 16:10:09 浏览:571
asp搜索源码 发布:2025-07-03 15:49:55 浏览:235
医美大数据库 发布:2025-07-03 15:47:07 浏览:357
c语言将二进制转化为十进制 发布:2025-07-03 15:32:47 浏览:988
c语言帮助文档 发布:2025-07-03 15:22:43 浏览:320
双端口存储器在情况下会发生读写冲突 发布:2025-07-03 15:12:54 浏览:271
快站数据库 发布:2025-07-03 14:45:44 浏览:40