注意事项:

1.v2版本提现需要用到证书(证书的密码就是你的mchid)
2.发送请求的时候需要setSSLSocketFactory

1.组装好提现需要的参数

Map<String,Object> params = new HashMap<String,Object>(10);params.put("mch_appid","申请商户号的appid或商户号绑定的appid");
params.put("mchid","");
params.put("nonce_str","随机生成一个字符串");
params.put("partner_trade_no","提现用到的单号和订单号的道理一样");
params.put("openid","");
params.put("check_name","NO_CHECK");
params.put("amount","单位是分,最少提现一块,当天最多5000");
params.put("desc","备注");
String sign = getSign(params);
params.put("sign",sign );
//得到请求的参数
String xmlStr = XmlUtil.mapToXmlStr(convert, "xml");

sortMap这个方法在支付里有写到感兴趣的就去看一下

//对参数进行加密public String getSign(Map<String, Object> convert) {//转换成key=value&key1=value1String urlMap = WxUtil.sortMap(convert,"你的商户key");//加密return SecureUtil.md5(urlMap).toUpperCase();}

2.发送请求

我使用的是hutool里的HttpRequest 我直接粘源码啦,有懂的小伙伴可以讲一下HttpRequest .setSSLSocketFactory,我也不太懂害怕误导了大家。我保证复制上就能用。

try {String responseXml = HttpRequest.post("微信提现的链接").setSSLSocketFactory(SSLSocketFactoryBuilder.create().setProtocol(SSLSocketFactoryBuilder.TLSv1).setKeyManagers(WxUtil.getKeyManager("你的商户id")).setSecureRandom(new SecureRandom()).build()//上面的组装好的参数).body(xmlStr).execute().body();//返回结果Map<String, Object> responseMap = XmlUtil.xmlToMap(responseXml);if (!WxUtil.isSuccess(response)) {throw new ApiException("提现失败,请稍后重试");}//提现成功--你的逻辑部分return responseMap ;} catch (Exception e) {e.printStackTrace();LOGGER.error("catch到的错误[{}]",e.getMessage());throw new ApiException("提现失败,请稍后重试");
}

WxUtil.getKeyManager();,这里我直接放到resource下了,你也可以指定你的路径,比如:FileInputStream fileInputStream = new FileInputStream(“你的证书路径”);

/**
* certPass:你的商户id
*/
public static KeyManager[] getKeyManager(String certPass) throws Exception {//加载证书ClassPathResource cp = new ClassPathResource("resource下的证书路径");KeyStore clientStore = KeyStore.getInstance("PKCS12");clientStore.load(cp.getInputStream(), certPass.toCharArray());KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());kmf.init(clientStore, certPass.toCharArray());return kmf.getKeyManagers();}

至此已经可以提现啦。测试的话最少提现一块。

微信提现(V2版本)相关推荐

  1. (微信支付签名失败)微信支付v2版本踩坑-二次签名不同类型签名参数key不同

    小伙伴们在做微信支付对接的时候会遇到各种各样的坑,特别是微信支付v2版本,微信支付的二次签名官方文档没有给出明显的签名参数,导致在开发中很容易碰到微信支付的这个坑(微信支付签名失败),app签名key ...

  2. PHP对微信支付V2版本回调以及订单查询(逻辑重制版)

    PS:v2版本支付的回调以及订单的查询都已经写过了,昨天在和别人讨论时,对相关的逻辑做出了较大的修改,回调配合订单查询共同使用,提高安全防护; 小程序端JS代码: getData(){var open ...

  3. PHP实现微信提现V3版本2022-5更新接口:商家转账到零钱

    微信官方又更新了接口... V3版本的微信商家转账到零钱的接口---俗称提现接口 注意事项 一:开通条件:需满足入驻满90天,连续正常交易30天,保持正常健康交易. 二:分为页面发起和api接口操作, ...

  4. 【微信支付】(亲测可用)对接app微信支付V2版本 后端代码示例

    业务场景:基本上做业务的话,也是逃不开对接各种支付接口的,比如数字人民币支付.农行免密支付.支付宝支付.微信支付等等.在着手开发时候,也是遇到不少阻力,微信官方提供的接口文档很散乱,如果之前没接触过, ...

  5. android v2签名 微信,golang实现微信支付v2版本

    一.准备阶段 配置密钥 .获取证书apiclient_key.p12 apiclient_cert.pem apiclient_key.pem 本次示例程序中,使用的是文件 apiclient_cer ...

  6. 微信退款 v2版本 invalid detail参数格式错误

    ##invalid detail参数格式错误 <return_code><![CDATA[FAIL]]></return_code> <return_msg& ...

  7. 微信小程序开发笔记 支付篇③——微信支付JSAPI下单和微信小程序调起支付(V2版本)

    文章目录 一.前文 二.流程图 三.SpringBoot接口实现 2.1 微信调起支付所需数据 2.2 下单接口 2.3 支付回调接口 三.微信小程序实现 3.1 JSAP统一下单 3.2 小程序调起 ...

  8. java微信小程序支付V2版本(亲测有效)

    首先微信支付需要以下的字段,关于如何去获取微信支付的字段,网上一大把,注意(像商户号等重要字段不要泄露不要泄露) MCHID(商户号) 就是商户注册之后,微信支付给你的唯一的数字 APPID(小程序的 ...

  9. 微信支付v3版本npm包

    wechatpay-node-v3 # 微信支付v3 支持在ts和js中使用 欢迎大家加入一起完善这个api 前言 微信官方在2020-12-25正式开放了v3版本的接口,相比较旧版本v2有了不少改变 ...

最新文章

  1. 微服务架构实战项目Serverless的持续交付与架构案例
  2. Matlab读和写图像需要注意的问题
  3. [USACO14JAN]记录奥林比克
  4. 开源python-打包发布
  5. OpenGL shader interpolation 着色器插值的实例
  6. 如何定义开发完成?(Definition of Done)
  7. matlab fminimax 例子,Matlab应用实例(8)—fminimax
  8. YouTube-DNN优化原理推导
  9. 7-150 水仙花数 (20 分)
  10. 健康医疗数据库建设亟需“万象更新”式变革
  11. LeetCode输入字符串,倒序输出---C语言
  12. 【Arcpy】Arcpy核心
  13. Excel在数据分析和日常工作的运用
  14. python实现 模糊C均值聚类算法(Fuzzy-C-Means)-基于iris数据集
  15. html中图片椭圆,CSS3技巧之形状(椭圆)
  16. Android 8.0 recovery 流程分析
  17. 海淘转运攻略之2017年黑色星期五海淘转运公司对比推荐
  18. Windows Server 2016 企业CA证书的应用
  19. diqu地区市的wheel样式
  20. rabbit安装教程

热门文章

  1. Redhat Linux创建本地YUM源
  2. 多事之秋:不怕贼偷,就怕惦记
  3. 故事分享 | 33岁高中学历转行python,收获月薪19K,这位陶瓷厂工人逆天了!
  4. 刚柔结合板是如何被设计出来的(转载)
  5. 利用OpenCv程序生成棋盘格标定板,并且实现像素单位与米制单位的转换
  6. “2022世界杯预测帝”富而喜悦网络走红!网友直呼预测属你神!
  7. 手把手教你利用开源项目搭建一个属于自已的电商平台
  8. 电商项目1、后端环境搭建
  9. jd-gui或jad反编译工具气死人不偿命的bug
  10. 【实习总结】学习经验2