文档章节

【java微信开发】红包接口调用

朱轩
 朱轩
发布于 2015/04/08 17:09
字数 384
阅读 459
收藏 0
//import相关类
import java.io.FileInputStream;
import java.security.KeyStore;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.web.context.ContextLoader;


//加载密钥
KeyStore clientKeyStore = KeyStore.getInstance("PKCS12");
clientKeyStore.load(new FileInputStream(<!--微信支付私有证书-->, <!--微信支付分配的商户号-->);
//加载密钥 
KeyStore clientTrustKeyStore = KeyStore.getInstance("PKCS12");  
clientTrustKeyStore.load(new FileInputStream(<!--微信支付私有证书-->, <!--微信支付分配的商户号-->);
//密钥工厂
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());  
kmf.init(clientKeyStore, <!--微信支付分配的商户号-->); 
//通道信任 
TrustManager[] tm = { new MyX509TrustManager() }; 
//通道协议
SSLContext sslContext = SSLContext.getInstance("TLSv1");  
sslContext.init(kmf.getKeyManagers(), tm, new java.security.SecureRandom());
//通道工厂
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
//创建通道端口
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(socketFactory, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
//开始调用
HttpPost httppost = new HttpPost(<!--调用地址-->);
httppost.addHeader("Connection", "keep-alive");
httppost.addHeader("Accept", "*/*");
httppost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
httppost.addHeader("Host", "api.mch.weixin.qq.com");
httppost.addHeader("X-Requested-With", "XMLHttpRequest");
httppost.addHeader("Cache-Control", "max-age=0");
httppost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ");
httppost.setEntity(new StringEntity(<!--xml-->, "utf-8"));
//调用
CloseableHttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
//获取返回的字符串
String result = new String(EntityUtils.toString(entity,"gbk").getBytes(),"utf-8");



//此处用到了一个类
import java.security.cert.CertificateException;  
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager; 
public class MyX509TrustManager implements X509TrustManager {  
    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}  
  
    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}  
  
    public X509Certificate[] getAcceptedIssuers() {  
        return null;  
    }  
}


© 著作权归作者所有

朱轩
粉丝 0
博文 7
码字总数 1615
作品 0
深圳
后端工程师
私信 提问
加载中

评论(0)

有人实现过关注微信公众号后发红包的功能吗

有人实现过关注微信公众号后发红包的功能吗,java的,我已经捕获到用户关注事件和用openid了,就是调用发红包接口没反应,但单独调用红包接口又是可以的

御风林海
2015/09/24
2.6K
0
weixin-java-tools 1.0.4 发布

发布说明 issue #24 模板消息接口 issue #28 添加语义理解接口 issue #29 增加http代理支持 开放http请求接口,便于开发人员调用本项目还未实现的API 项目简介 weixin-java-tools是一个用于开...

jarchan
2014/11/04
2.4K
2
Java微信开发_00_资源汇总贴

1.微信公众平台技术文档(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432) 2.微信企业号开发接口文档(http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E......

rayner
2017/08/07
0
0
崔用志-微信开发-java版本

崔用志-微信开发-java版本 今天看到一些关于微信开发的知识蛮好的博客,分享给大家,希望对大家有帮助。 微信开发准备(一)--Maven仓库管理新建WEB项目 微信开发准备(二)--springmvc+mybatis项...

souvc
2016/04/13
0
0
JFinal Weixin 1.8 发布,微信极速 SDK

离上一次 JFinal weixin 1.7 发布,已经过去了 6 个月。在过去的半年时间里 JFinal Weixin 紧随微信公众平台的演化,不断增加了新的 API,同时也在不断完善原有 API,力求打造一个完备的微信...

JFinal
2016/07/13
1.2W
96

没有更多内容

加载失败,请刷新页面

加载更多

Word文档中遇到不认识的字怎么办?word 2019 for Mac自带拼音功能你知道吗?

Word 2019 for Mac中遇到不认识的字怎么办?你是不是要告诉我,找百度!那如果没有网又该怎么办? 经常接触文档,总会遇到很多不认识的字,不用百度只用Word也能快速读对,一起来学学吧! wo...

mac小叮当
12分钟前
7
0
docker下mysql8版本的安装运行及navicat的连接

一、下载 $ docker pull mysql:8.0.19 一般来说这个速度是比较慢的,我试了几次都不行,只好换一个国内的镜像: $ mkdier -p /etc/docker$ tee /etc/docker/daemon.json << 'EOF'{ 'r......

最深的夜
18分钟前
5
0
游戏音频未来发展趋势

游戏音频根据各自声音特点可以分为:游戏音乐、音效与配音。无论是游戏音乐、游戏音效还是 游戏配音对于游戏有着极其重要的作用,那么未来游戏音频将会有什么样的发展趋势呢?跟着小编一起来...

奇亿音乐
19分钟前
10
0
harbor安装使用

1. 先安装环境docker docker-compose 2. 从https://github.com/goharbor/harbor/releases 下载最新的。 如harbor-online-installer-v1.10.2.tgz 3. 解压 tar -xvf harbor-online-installer......

杰仪
25分钟前
14
0
服务器一般需要打开哪些端口?

一般我们只开放常用的端口号。例如,20,21,23,80等。   21:FTP服务所开放的端口,用于上传、下载文件。   22:SSH端口,用于通过命令行模式远程连接Linux服务器或vps。   23:Tel...

Cloudam云端
27分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部