package com.hentica.app.test.wx;

import com.plant.app.modules.pay.wxpay.config.WxpayConfig;
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.ssl.SSLContexts;
import org.apache.http.util.EntityUtils; import javax.net.ssl.SSLContext;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.security.KeyStore; /**
* 获取RSA
*/
public class TestT { public static void main(String[] args) throws Exception {
String mchId = WxpayConfig.APP_ID;
String key = WxpayConfig.APP_KEY;
String certpassword = WxpayConfig.APP_CERT_PWD;
PublicKeyData data = new PublicKeyData(mchId, "MD5", key);
StringBuffer reqXml = new StringBuffer();
reqXml.append("<xml>");
reqXml.append("<mch_id>");
reqXml.append(mchId);
reqXml.append("</mch_id>");
reqXml.append("<nonce_str>");
reqXml.append(data.getNonce_str());
reqXml.append("</nonce_str>");
reqXml.append("<sign_type>");
reqXml.append(data.getSign_type());
reqXml.append("</sign_type>");
reqXml.append("<sign>");
reqXml.append(data.getSign());
reqXml.append("</sign>");
reqXml.append("</xml>"); KeyStore keyStore = KeyStore.getInstance("PKCS12");
FileInputStream instream = new FileInputStream(new File("D:/cert/apiclient_cert.p12"));//证书的路径
try {
keyStore.load(instream, mchId.toCharArray());
} finally {
instream.close();
} SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, mchId.toCharArray()).build();
SSLConnectionSocketFactory sslf = new SSLConnectionSocketFactory(sslcontext);
CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslf).build(); try { HttpPost httpPost = new HttpPost("https://fraud.mch.weixin.qq.com/risk/getpublickey");//接口 System.out.println("executing request" + httpPost.getRequestLine());
StringEntity reqEntity = new StringEntity(reqXml.toString());
// 设置类型
reqEntity.setContentType("application/x-www-form-urlencoded");
httpPost.setEntity(reqEntity);
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
String line;
String xmlParam = "";
while ((line = bufferedReader.readLine()) != null) {
xmlParam += line;
}
System.out.println(xmlParam);
}
EntityUtils.consume(entity);
} finally {
response.close();
}
} finally {
httpclient.close();
} }
}

  参考地址:https://blog.csdn.net/qq_19167629/article/details/80668801

微信企业付款获取RSA的更多相关文章

  1. thinkphp.2 thinkphp5微信支付 微信公众号支付 thinkphp 微信扫码支付 thinkphp 微信企业付款5

    前面已经跑通了微信支付的流程,接下来吧微信支付和微信企业付款接入到thinkphp中,版本是3.2 把微信支付类.企业付款类整合到一起放到第三方类库,这里我把微信支付帮助类和企业付款类放到同一个文件了 ...

  2. JAVA微信企业付款到零钱(十分钟搞定),附完整DEMO下载

    最近帮朋友做了一个简单的微分销系统,实现从企业付款到零钱分润的功能,简单记录一下微信企业付款到零钱的开发过程, 主要就是按规则封装好请求参数调用微信接口,涉及一些签名校验: A.接口流程 1. 获取用 ...

  3. 关于微信企业付款到零钱X509Certificate2读取证书信息,发布到服务器访问不到的解决方案

     前言: 最近做了一个通过调用微信企业付款到用户零钱的功能,真的挺奇怪的,在我本地调试的时候都没有问题,但是当我发布到服务上的时候却一直无法读取到我的证书信息.读取的代码如下,使用的是微信官方文档提供 ...

  4. PHP实现微信企业付款

    一.封装微信企业付款类WeiXinPayToUser,如下图代码所示: class WeixinPayToUser { /** * API 参数 * @var array * 'mch_appid' ...

  5. PHP实现微信企业付款到个人零钱步骤

    微信支付企业付款到零钱功能应用广泛,比如微信红包奖励,业务结算等.通过企业向个人付款,付款资金将直接进入用户微信零钱. 一 开通条件 ​ 付款资金 企业付款到零钱资金使用商户号余额资金. 根据商户号的 ...

  6. PHP微信商户支付企业付款到零钱功能

    一 开通条件,就是首先要在微信平台设置好. 以下微信文档里有的,我这里大概掠几项比较重要的. 付款资金 企业付款到零钱资金使用商户号余额资金. 根据商户号的账户开通情况,实际出款账户有做区别: ◆ 默 ...

  7. 解决问题:CA_ERROR证书出错,请登录微信支付商户平台下载证书-企业付款到零钱接口(原创)

    这几天用到了微信企业付款到零钱这个接口,结果出现了报错:CA_ERROR, 该接口的API说明和报错提示说明:https://pay.weixin.qq.com/wiki/doc/api/tools/ ...

  8. 微信分账功能与微信支付企业付款相关内容详解(payjs版)

    PAYJS开通微信分账功能以来,有很多同学咨询相关情况.很多同学关心有没有什么办法,可以让自己的商户号快速开通企业付款功能.这里就介绍下微信分账的具体相关内容,可以完美解决问题. 一.什么是微信分账? ...

  9. 微信企业向用户银行卡付款API开发详解(PHP)

    最近在实现微信企业向用户银行卡付款时遇到了一些问题,发现官方文档说的太笼统,走了不少弯路,想要在此记录,希望可以帮到大家. 案例:企业付款到银行卡    微信接口链接:https://api.mch. ...

随机推荐

  1. JavaScript中的获取元素的方法

    通过id获取元素 document.getElementById(id名字) 通过标签获取元素 document/元素.getElementsByTagName(标签名) 通过css选择器获取元素 d ...

  2. 前端开发面试题总结之——JAVASCRIPT(二)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

  3. .NET快速开发平台免费版预发布

    自己团队开发的一套软件,可通过配置完成列表.表单.流程等的快速开发,因项目原因有一段时间没更新了,准备发出来希望能帮助更多企业快速实现信息化. 该软件主要应用的技术有如下: 1.存储:采用SqlSer ...

  4. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)

    写在前面 参考答案及资源在看云平台发布,如果大家想领取资源以及查看答案,可直接前去购买.一次购买永久可看,文档长期更新!有什么意见与建议欢迎您及时联系作者或留言回复! 文档描述 本文是关注微信小程序的 ...

  5. 浅析Hashmap和Hashtable

    一.Hashmap不是线程安全的,而Hashtable是线程安全的 通过查看源码可以发现,hashmap类中的方法无synchronized关键字,而hashtable类中的方法有synchroniz ...

  6. python-之-深浅拷贝二(元组)

    元组比较特殊 1.----元组本身为不可变类型 import copy v1 = (1, 2, 3, 4) v2 = copy.copy(v1) print(id(v1), id(v2)) v3 = ...

  7. ffmpeg使用示例

    /* 视频格式转换 ffmpeg -i "F:\Test\1.mp4" -y -vcodec copy -acodec copy "F:\Test\11.avi" ...

  8. Atom本地安装插件右上角出现红色报错解决方案

    在github上搜索你相中的插件(Package),并下载ZIP包或直接克隆项目到本地.然后将该包直接复制到C盘中的用户下的 .atom\packages\ 文件夹下,注意 atom前面有一个点. 然 ...

  9. JDBC-day1

    package cn.gzsxt.test; import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.D ...

  10. Python 字符串String相关知识

    test.capitalize( )     |首字母大写 test.lower( )             |全部变成小写(只能处理英文字母) test.casefold( )         | ...