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. Saiku数据库迁移后的刷新脚本-Shell脚本读取数据库中的数据(二十三)

    Saiku数据库迁移后的刷新脚本 之前有谈过对saiku中的数据进行刷新,因为saiku默认会从缓存中查询数据,但是配置不使用缓存又会效率低下... 所以这里就需要做一个数据刷新,每次ETL之后都需要 ...

  2. python 捕获异常顺序

    catch 异常的时候,有关的异常(若是抛出子类异常,则父类异常的except也算.反之不算)except的语句是按代码顺序执行, 也就是说,当一个异常发生时,从若干except中若遇见异常类基类,父 ...

  3. mysql的简单安装方法

    准备工作MySQL-Front与mysql-5.5.15-win32 开始安装 选择compelete,完整安装 自动弹出配置界面 选择标准配置 设置root密码 成功界面 MySQL-Front 的 ...

  4. 用Git将本地项目推送到github

    [博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...

  5. Possibly two send backs are happening for the same request

    错误 wso2 WARN {org.apache.synapse.transport.passthru.SourceHandler} -  Illegal incoming connection st ...

  6. openvas scanner 服务未启动修复

    近日发现scan某个网段好久都没有report,到服务器上检查,发现openvassd服务未成功启动. openvas-setup -f systemctl -l |grep openv openva ...

  7. browser_action' is only allowed for extensions but this is a legacy packaged app

    manifest.json中不可包含调试代码:    "app": {     "launch": {      "local_path": ...

  8. 浅谈requireJS 摘自http://www.cnblogs.com/giggle/p/5436710.html

    项目中大都使用模块化开发,requireJS作为AMD模块开发的典范,所以有必要学习下.通过一步步利用requireJS编写demo,从而学习requireJS的一个整体开发流程以及自我使用requi ...

  9. My new Blog on cnblogs

    My New Blog 这是菜鸡Herself32在博客园新开的Blog,一部分文章会同时加载到这里. 也欢迎访问主站:https://herself32.github.io QwQ

  10. sqlserver查看锁表进程及对锁定的表进行解锁

    select request_session_id spid,object_name(resource_associated_entity_id) tableName from sys.dm_tran ...