微信企业付款实现详细流程Demo

大家好,我是 梦辛工作室的灵,下面来讲一下微信企业付款实现的流程
1.准备数据
微信企业付款需要 准备 微信支付API秘钥、支付证书;下面是获取流程:
先登录微信支付:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F
需要先开通企业付款至零钱包和运营账户,因为付款的时候是从运营账户中 扣除金额的
主要注意的时,请保证您的商户号的结算方式 是T+1类型的,T+7类型的是没有这个功能的

点击产品中心

开通企业付款至零钱包和运营账户

然后从基本户移一些资金到运营账户作为测试用的金额,流程如下:

点击交易中心:

点击资金管理的充值/转入

转入成功后,运营账户里面就有钱了,接下来 获取证书和设置API秘钥

点击账户中心点击API安全

点击申请证书,然后下载拿到证书

设置API秘钥

2.开始开发
和微信支付一样,需要提供以下参数:

第三个参数为 true 表示必要参数,false 表示不必要参数
然后按照字母顺序排序拼接为以下格式:

amount=200&check_name=NO_CHECK&desc=付款备注&mch_appid=被付款人使用的小程序appid或公众号appid&mchid=您的商户号&nonce_str=kywaJ6iTYIA5AC7MzwzW&openid=小程序或公众号对应的openid&partner_trade_no=1577245853344583aCpC9&spbill_create_ip=本机ip&key=API秘钥

然后 进行md5加密,这个就是 sign
然后在拼接成xml格式,如下:

<xml>
<amount><![CDATA[200]]></amount>
<check_name><![CDATA[NO_CHECK]]></check_name>
<desc><![CDATA[付款备注]]></desc>
<mch_appid><![CDATA[被付款人使用的小程序appid或公众号appid]]></mch_appid>
<mchid><![CDATA[您的商户号]]></mchid>
<nonce_str><![CDATA[s4aMch7ijEK4GF0hpWTE]]></nonce_str>
<openid><![CDATA[小程序或公众号对应的openid]]></openid>
<partner_trade_no><![CDATA[15772459622789X9BMf1c]]></partner_trade_no>
<spbill_create_ip><![CDATA[本机ip]]></spbill_create_ip>
<sign><![CDATA[7779de52642e5564f1ae0d04adbcde99]]></sign>
</xml>

然后post到 微信指定的接口:(https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers),
这里的post请求 需要带证书请求,以下是实现示例:

public static String doPostDataWithCert(String url, String data, String mch_id, String filPath) throws Exception {KeyStore keyStore = KeyStore.getInstance("PKCS12");FileInputStream instream = new FileInputStream(new File(filPath));// P12文件目录try {keyStore.load(instream, mch_id.toCharArray());} finally {instream.close();}SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, mch_id.toCharArray())// 这里也是写密码的.build();SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1" }, null,SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();try {HttpPost httpost = new HttpPost(url); // 设置响应头信息httpost.addHeader("Connection", "keep-alive");httpost.addHeader("Accept", "*/*");httpost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");httpost.addHeader("Host", "api.mch.weixin.qq.com");httpost.addHeader("X-Requested-With", "XMLHttpRequest");httpost.addHeader("Cache-Control", "max-age=0");httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ");httpost.setEntity(new StringEntity(data, "UTF-8"));CloseableHttpResponse response = httpclient.execute(httpost);try {HttpEntity entity = response.getEntity();String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8");EntityUtils.consume(entity);return jsonStr;} finally {response.close();}} finally {httpclient.close();}}

若成功会返回 对应结果 的 xml 数据,里面会包含支付时间,支付订单号等,记录下来就可以了,然后楼主对这个过程进行了封装,可以更加简单的使用该功能 ,使用如下:

对,就这样久可以完成了,不需要在其他的内容了,很简单吧,下面是github连接
github入口

微信企业付款至零钱包实现详细流程Demo相关推荐

  1. SpringBoot实现微信企业付款到个人钱包,详细流程

    一.前言 微信企业付款到个人钱包,此功能模块需要提前在微信商户平台开通.因为开通需要先决条件,并不是所有商户都满足.商户需满足三个条件,可以在商户平台的产品中心,找到入口,申请开通. 1)入驻满90天 ...

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

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

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

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

  4. 微信企业付款到零钱(微信提现)

    由于项目中要用到微信提现,参考网上代码和官方文档写了提现的工具类 用到的相关类库 dom4j commons-lang3 httpclient-4.4.1 具体相关流程可以看微信企业付款到零钱的开发文 ...

  5. 微信企业付款到银行卡

    第一次做微信企业付款到银行卡,特地记录下来,因为这个功能自己用了2-3天,这中间的坑主要是再rsa加密那块.自己记录下来,供朋友参考.自己用的php开发 第一,首先你需要开通企业的微信认证公众号平台, ...

  6. java零钱换整程序_JAVA微信企业付款到零钱(十分钟搞定),

    JAVA微信企业付款到零钱(十分钟搞定), 最近帮朋友做了一个简单的微分销系统,实现从企业付款到零钱分润的功能,简单记录一下微信企业付款到零钱的开发过程, 主要就是按规则封装好请求参数调用微信接口,涉 ...

  7. java 企业付款_java实现微信企业付款到个人功能

    微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款.该接口并不是直接所有的商户都拥有,企业要开启必须满足以下 ...

  8. PHP实现微信企业付款

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

  9. java实现微信企业付款到个人零钱(微信红包)

    今天公司打算做一个活动,就是可以让用户领取平台发送的红包,根据微信官方文档实现微信企业付款到零钱(因为商户号不满足一些条件无法使用红包,红包跟零钱实现方法基本一样),然后又加入了一些简单的红包算法.微 ...

最新文章

  1. 【技巧】实现饿了么Element UI的table单击(点击)编辑单元格内容
  2. Windows XP Service Pack 3 RC2 简体中文版发布
  3. 十分钟学习nginx
  4. MFC实现Windows锁屏
  5. Linux C获取文件属性
  6. Objective-C:NSArray的常见操作
  7. php和python-PHP和Python性能比较:放弃PHP改用Python
  8. 2012.4.13总结(一)
  9. mac安装热更新插件
  10. linux系统uptime解读,Linux中的uptime命令详解
  11. flex 引入html,在Flex中嵌入完整HTML页面
  12. (六)Java垃圾回收机制(附带代码示例)
  13. 史上最详细Win10系统装成Win7系统教程
  14. Nginx 安装部署以及负载均衡
  15. 2020年国家扶贫日“三产联动扶贫论坛”在京召开,杭州复杂美科技有限公
  16. 记录一次关于百度网盘打开提示页面不存在的问题(吃相不要太难看)
  17. P6225 [eJOI2019] 异或橙子
  18. 【AI测试】人工智能测试、算法测试整体介绍——第一部分
  19. 临时尖底锥型过滤器 锥型过滤器
  20. Filter的使用场景:敏感词过滤

热门文章

  1. Airtest笔记(三)
  2. 解决 Android resource linking failed, error: failed linking references.
  3. 计算机职称分是什么,职称计算机考试分模块吗戳进来有答案
  4. 第2章第20节:使用项目编号让文字内容的布局更有条理 [PowerPoint精美幻灯片实战教程]
  5. edb mysql_通过MTK迁移Mysql到EDB实战指南
  6. fix协议的服务器,FIX 协议开发(3):QuickFIX/J 实战经验小结
  7. SOM-TL437x基于TI Sitara系列ARM Cortex-A9核心板硬件资源
  8. 一次让我瞬间长大的经历
  9. 看看别人是怎么面试蚂蚁金服的!社招Java面经分享
  10. Basler 学习笔记2