package com.weixin.common.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.servlet.http.HttpServletRequest;
import org.apache.http.entity.StringEntity;
import net.sf.json.JSONObject;
import com.weixin.common.wxpojo.AccessToken;
import com.weixin.common.wxpojo.WebAccessToken;
import com.weixin.pojo.WxUser;
/**
*
* @ClassName: WeChatUtil
* @Description: 微信开发工具类
* @author Administrator
* @date 2015-7-8 上午11:50:24
*
*/
public class WeChatUtil {
/**
*
* @Title: httpRequest
* @Description: 访问微信接口
* @author Administrator
* @date 2015-7-8 下午03:34:12
* @param requestUrl 访问路径
* @param requestMethod 访问类型 POST OR GET
* @param outputStr 要提交的数据,没有设置为null
* @return 返回数据 json格式
*/
public static JSONObject httpRequest(String requestUrl,String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 当有数据需要提交时
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(
inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
System.out.println("微信服务器连接超时!");
} catch (Exception e) {
System.out.println("HTTPS请求错误,错误信息:\n" + e.getMessage());
}
return jsonObject;
}
//刷新网页授权access_token的接口地址(GET)
public final static String refresh_access_token_url="https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN";
/**
*
* @Title: getRefreshAccessToken
* @Description: 刷新网页授权access_token
* @author Administrator
* @date 2015-7-12 上午09:55:46
* @param appid
* @param refresh_token
* @return
*/
public static WebAccessToken getRefreshAccessToken(String appid,String refresh_token){
WebAccessToken accessToken=null;
String requestUrl=refresh_access_token_url.replace("APPID", appid).replace("REFRESH_TOKEN", refresh_token);
JSONObject jsonObject=httpRequest(requestUrl, "GET", null);
if (null != jsonObject) {
try {
accessToken = new WebAccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
accessToken.setRefreshToken(jsonObject.getString("refresh_token"));
accessToken.setOpenid(jsonObject.getString("openid"));
accessToken.setScope(jsonObject.getString("scope"));
//accessToken.setUnionid(jsonObject.getString("unionid"));
} catch (Exception e) {
accessToken = null;
// 获取token失败
System.out.println("获取TOKEN失败("+jsonObject.getInt("errcode")+"):"+WeChatErrorCode.ERRORCODE.get(jsonObject.getInt("errcode")));
}
}
return accessToken;
}
//获取 网页授权access_token的接口地址(GET)
public final static String web_access_token_url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
/**
*
* @Title: getWebAccessToken
* @Description: 获取网页授权access_token
* @author Administrator
* @date 2015-7-12 上午09:47:47
* @param appid 应用id
* @param secret
* @param code
* @return
*/
public static WebAccessToken getWebAccessToken(String appid,String secret,String code){
WebAccessToken accessToken=null;
String requestUrl=web_access_token_url.replace("APPID", appid).replace("SECRET", secret).replace("CODE", code);
JSONObject jsonObject=httpRequest(requestUrl, "GET", null);
// 如果请求成功
if (null != jsonObject) {
try {
accessToken = new WebAccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
accessToken.setRefreshToken(jsonObject.getString("refresh_token"));
accessToken.setOpenid(jsonObject.getString("openid"));
accessToken.setScope(jsonObject.getString("scope"));
//accessToken.setUnionid(jsonObject.getString("unionid"));
} catch (Exception e) {
accessToken = null;
// 获取token失败
System.out.println("获取TOKEN失败("+jsonObject.getInt("errcode")+"):"+WeChatErrorCode.ERRORCODE.get(jsonObject.getInt("errcode")));
}
}
return accessToken;
}
// 获取access_token的接口地址(GET) 限200(次/天)
public final static String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
*
* @Title: getAccessToken
* @Description: 获取access_token
* @author Administrator
* @date 2015-7-8 下午12:08:00
* @param appid 凭证
* @param appsecret 秘钥
* @return
*/
public static AccessToken getAccessToken(String appid, String appsecret) {
AccessToken accessToken = null;
String requestUrl = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
JSONObject jsonObject = httpRequest(requestUrl, "GET", null);
// 如果请求成功
if (null != jsonObject) {
try {
accessToken = new AccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
} catch (Exception e) {
accessToken = null;
// 获取token失败
System.out.println("获取TOKEN失败("+jsonObject.getInt("errcode")+"):"+WeChatErrorCode.ERRORCODE.get(jsonObject.getInt("errcode")));
}
}
return accessToken;
}
// 菜单创建(POST) 限100(次/天)
public static String menu_create_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";
/**
*
* @Title: createMenu
* @Description: 创建菜单
* @author Administrator
* @date 2015-7-8 下午12:20:02
* @param jsonMenu 菜单实例(json格式)
* @param accessToken
* @return
*/
public static int createMenu(String jsonMenu, String accessToken) {
int result = 0;
// 拼装创建菜单的url
St
没有合适的资源?快使用搜索试试~ 我知道了~
java微信公众号支付接口代码
共168个文件
jar:85个
java:34个
class:34个
需积分: 5 0 下载量 13 浏览量
2022-11-08
13:07:17
上传
评论
收藏 43.64MB ZIP 举报
温馨提示
内容概要:微信公众号从获取openID,到公众号支付和页面发起支付。 适合人群:刚接触微信公众号开发的开发人员,此代码为借鉴;了解微信的接口对接模式,以此为基础来对接其他接口。 阅读建议:此代码以Servlet未基础框架的开发。
资源推荐
资源详情
资源评论
收起资源包目录
java微信公众号支付接口代码 (168个子文件)
WeChatUtil.class 9KB
XcxWeChatUtil.class 9KB
WeixinPay.class 6KB
RequestHandler.class 6KB
RequestHandler.class 6KB
GetWxOrderno.class 5KB
WeChatErrorCode.class 5KB
CommonUtil.class 4KB
TenpayUtil.class 3KB
Sha1Util.class 3KB
GetWebAccessToken.class 3KB
WxUser.class 3KB
HttpClientConnectionManager.class 3KB
HttpRequest.class 3KB
GetRefreshAccessToken.class 3KB
GetWxUserInfo.class 2KB
WeixinAdmin.class 2KB
GetAccessToken.class 2KB
SendMessage.class 2KB
MD5Util.class 2KB
GetCode.class 2KB
WXSet.class 2KB
MySSLSocketFactory.class 2KB
WebAccessToken.class 2KB
WeixinOauth2Token.class 1KB
HttpResponse.class 1KB
WXMenu.class 1KB
DealDateFormatUtils.class 1KB
HttpResultType.class 1KB
TrustAnyTrustManager.class 909B
MyX509TrustManager.class 893B
TrustManager.class 881B
AccessToken.class 775B
Message.class 725B
.classpath 1KB
org.eclipse.wst.common.component 477B
org.eclipse.wst.jsdt.ui.superType.container 49B
poi-ooxml-schemas-3.17.jar 5.65MB
cxf-2.3.0.jar 4.89MB
hibernate-core-4.2.4.Final.jar 4.41MB
poi-3.17.jar 2.58MB
itextpdf-5.5.5.jar 2.06MB
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar 1.57MB
poi-ooxml-3.17.jar 1.41MB
poi-scratchpad-3.17.jar 1.33MB
jdom-2.0.6-javadoc.jar 984KB
spring-context-4.0.4.RELEASE.jar 954KB
spring-core-4.0.4.RELEASE.jar 951KB
jackson-databind-2.2.3.jar 846KB
jdom-2.0.6-sources.jar 840KB
jackson-mapper-asl-1.9.13.jar 762KB
mysql-connector-java-5.1.7-bin.jar 693KB
jxl.jar 664KB
spring-beans-4.0.4.RELEASE.jar 654KB
spring-web-4.0.4.RELEASE.jar 653KB
msv-20050913.jar 652KB
spring-webmvc-4.0.4.RELEASE.jar 647KB
javassist-3.15.0-GA.jar 633KB
c3p0-0.9.1.2.jar 596KB
httpclient-4.3.2.jar 574KB
sqljdbc.jar 570KB
commons-collections-3.1.jar 546KB
sqljdbc4.jar 525KB
mail.jar 509KB
jsse.jar 502KB
jdom-2.0.6-junit.jar 483KB
log4j-1.2.17.jar 478KB
woodstox-core-asl-4.0.6.jar 471KB
antlr-2.7.7.jar 435KB
JNative.jar 416KB
spring-jdbc-4.0.4.RELEASE.jar 415KB
jstl-1.2.jar 405KB
commons-lang3-3.3.2.jar 403KB
poi-examples-3.17.jar 366KB
spring-orm-4.0.4.RELEASE.jar 358KB
spring-aop-4.0.4.RELEASE.jar 344KB
fastjson-1.1.22.jar 338KB
com.springsource.net.sf.cglib-2.2.0.jar 319KB
dom4j-1.6.1.jar 307KB
jdom-2.0.6.jar 298KB
httpcore-4.3.1.jar 276KB
commons-lang-2.5.jar 273KB
commons-lang-2.4.jar 256KB
spring-tx-4.0.4.RELEASE.jar 242KB
jackson-core-asl-1.9.13.jar 227KB
commons-beanutils-1.8.0.jar 226KB
spring-expression-4.0.4.RELEASE.jar 200KB
jackson-core-2.2.3.jar 188KB
pinyin4j-2.5.0.jar 184KB
commons-io-2.4.jar 181KB
stax2-api-3.0.2.jar 176KB
jdom-2.0.6-contrib.jar 163KB
json-lib-2.4-jdk15.jar 155KB
json-lib-2.3-jdk15.jar 148KB
wsdl4j-1.6.2.jar 145KB
stax-utils-20060502.jar 125KB
cxf-integration-jca-3.1.8.jar 109KB
hibernate-jpa-2.0-api-1.0.1.Final.jar 100KB
json_jdk1.7.jar 92KB
servlet-api.jar 86KB
共 168 条
- 1
- 2
资源评论
java_才怪
- 粉丝: 10
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功