官方文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
关键参数如图:

证书如图:

证书路径要与代码里的路径对应,放在根目录下,最好用cert或其它命名文件夹存起来(本人实践时发现放在文件夹里有效),如图

基本流程
1、拼凑所需要传递的参数 map集合
2、根据要传递的参数生成自己的签名
3、把签名放到map集合中【因为签名也要传递过去,看API】
4、将当前的map结合转化成xml格式
5、发送请求到企业付款到零钱的Api。发送请求是一个方法来的POST
6、解析返回的xml数据===》map集合
7、根据map中的result_code AND return_code来判断是否成功与失败

上代码

/*** 企业支付(向微信发起企业支付到零钱的请求)* @param string $openid 用户openID* @param string $trade_no 单号* @param string $money 金额(单位分)* @param string $desc 描述* @param string $appid 协会appid* @return string   XML 结构的字符串**/function txFunc($openid,$trade_no,$money,$desc,$appid){$data = array('mch_appid' =>$appid,//协会appid'mchid' => '',//微信支付商户号'nonce_str' => getNonceStr(), //随机字符串'partner_trade_no' => $trade_no, //商户订单号,需要唯一'openid' => $openid,'check_name' => 'NO_CHECK', //OPTION_CHECK不强制校验真实姓名, FORCE_CHECK:强制 NO_CHECK:'amount' => $money * 100, //付款金额单位为分'desc' => $desc,'spbill_create_ip' => get_client_ip(),//'re_user_name' => 'jorsh', //收款人用户姓名 *选填//'device_info' => '1000',  //设备号 *选填);//生成签名$secrect_key = '';//API密码$data = array_filter($data);ksort($data);$str ='';foreach($data as $k=>$v) {$str.=$k.'='.$v.'&';}$str.='key='.$secrect_key;$data['sign'] = md5($str);//构造XML数据(数据包要以xml格式进行发送)$xmldata = arrToXml($data);//请求url$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';//发送post请求$res = curl_post_ssl($url,$xmldata);return $res;}/*** 数组转XML* @param $data* @return string*/function arrToXml($data){$xml = "<xml>";//  遍历组合foreach ($data as $k=>$v){$xml.='<'.$k.'>'.$v.'</'.$k.'>';}$xml .= '</xml>';return $xml;}/*** [curl_post_ssl 发送curl_post数据]* @param  [type]  $url     [发送地址]* @param  [type]  $xmldata [发送文件格式]* @param  [type]  $second [设置执行最长秒数]* @param  [type]  $aHeader [设置头部]* @return [type]           [description]*/
function curl_post_ssl($url, $xmldata, $second = 30, $aHeader = array()){$isdir = $_SERVER['DOCUMENT_ROOT'].'/cert/';//证书位置;绝对路径
//    return $isdir;$ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_TIMEOUT, $second);//设置执行最长秒数curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 终止从服务端进行验证curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置curl_setopt($ch, CURLOPT_CAINFO, 'PEM');curl_setopt($ch, CURLOPT_CAINFO, $isdir . 'rootca.pem');if (count($aHeader) >= 1) {curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);//设置头部}curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $xmldata);//全部数据使用HTTP协议中的"POST"操作来发送$data = curl_exec($ch);//执行回话if ($data) {curl_close($ch);return xmlToArray($data);} else {$error = curl_errno($ch);echo "call faild, errorCode:$error\n";curl_close($ch);return false;}
}

回调结果

微信 企业付款到零钱 提现相关推荐

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

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

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

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

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

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

  4. 微信支付、微信企业付款到零钱工具类

    微信支付.微信企业付款到零钱工具类 主要依赖:apache httpclient 4.5 jdk1.8 工具类主要功能: xml参数拼接 签名算法实现 post加密请求 import lombok.e ...

  5. 微信企业付款到零钱出现请提交付款接口调用IP

    最近开通了微信企业付款到零钱产品,相关的支付域名都配置,可以在提交IP时候一直提示 请提交付款接口调用IP 错误,查阅了官网很多资料,有的说要填写出口IP,明明填写的是服务器的IP地址,缺一直提示这个 ...

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

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

  7. 微信企业付款到零钱功能介绍

    微信企业付款到零钱功能介绍 一.企业付款至零钱业务介绍 企业付款业务是为了协助商户方便地实现企业向个人付款,针对部分有开发能力的商户,通过API或网页操作,付款至目标用户(企业可根据APPID+Ope ...

  8. 微信企业付款到零钱,查询接口报错<err_code_des><![CDATA[参数错误:必须输入商户号]]></err_code_des>

    <xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><! ...

  9. Python实现微信企业付款到零钱

    实现步骤 一.导入库 二.参数配置 三.参数签名 四.发起转账请求 五.调用实例 一.导入库 import random import hashlib import requests from xml ...

最新文章

  1. 机器视觉工程师必须了解的基础知识
  2. asp.net调用百度地图API,实现电子地图
  3. TFS2008 基本安装
  4. Windows 下使用 BaiduExporter + Aria2 下载百度网盘文件
  5. Spring.NET学习笔记1——控制反转(基础篇) Level 200
  6. 投票源码程序_[内附完整源码和文档] 基于JSP实现的影视创作论坛系统
  7. redis概念、做什么及其应用场景
  8. tidyr | 变量取值组合、缺失值处理、变量分列与合并
  9. MegaCli查看RIAD相关信息
  10. FTP连接报530错误(FTP Error: 530 User cannot log in, home directory inaccessible)
  11. 10 行代码判定色*情*图片
  12. 分享一个狂雨小说采集规则 - 顶点小说采集
  13. 企业号第三方服务商可信域名配置
  14. WAV转MP3格式最简单的方法[zz]
  15. 【CCPC】2022年绵阳站部分题解(ACGM)
  16. 年终报告:通过3个维度,回看2022全球电商市场的“多样性”
  17. 常用C++开发环境介绍
  18. php动态执行生成条码,PHP生成条形码 之二 开源之道
  19. 阿里直播在线人数只统计rtmp格式的播放源
  20. 【AD小知识】PCB之自动布线及快速布局技巧

热门文章

  1. Ext.js5的分组表格(4)
  2. android 如何播放音频,Android中用MediaPlay播放音频和视频
  3. 给宝宝取名有哪些需要忌讳的?
  4. Android Paint 进阶之滤镜效果(ColorFilter)
  5. 【Ubuntu】之新装Ubuntu18.04-离线安装gcc、make、网卡驱动等
  6. 计算机毕业设计SSM党建网站【附源码数据库】
  7. python range步长为小数_pythonrange生成小数序列-女性时尚流行美容健康娱乐mv-ida网...
  8. linux 开发及工作站,戴尔全新开发者移动工作站,共有 4 个版本
  9. modelsim找不到库的问题
  10. cocos2dx[3.x](6) ——新字体标签Label