这几天做项目,有个需求,是微信用户需要把公众号中赚的钱提现,于是查资料找到了微信商户平台中的高级业务:企业付款。

官方文档:https://pay.weixin.qq.com/wiki/doc/api/mch_pay.php?chapter=14_1

为了以后方便看,我把自己测试的代码贴一下,大家如果有需要,可以参考一下,实际项目中 可根据个人需求自己去改,

主要包含以下几个步骤(充值、网页授权获取openid、获取企业付款需要的信息、发出企业付款请求)。

1、充值

在微信商户平台中:资金管理->充值(由于企业付款将使用商户的可用余额进行支付,需确保可用余额充足。查看可用余额、充值、提现请登录商户平台“资金管理”进行操作。https://pay.weixin.qq.com/  注意:商户的可用余额与商户微信支付收款资金并非同一账户,需要单独充值。)

2、网页授权

通过网页授权获取用户的openid(企业向微信用户个人付款 目前支持向指定微信用户的openid付款。),具体获取方法可查官方api或http://blog.csdn.net/u010533511/article/details/48085585 。

3、获取企业付款需要的信息

$mch_appid=$appid;//公众账号appid
$mchid='10000005';//商户号
$nonce_str='qyzf'.rand(100000, 999999);//随机数
$partner_trade_no='xx'.time().rand(10000, 99999);//商户订单号
$openid=$openids;//用户唯一标识,上一步授权中获取
$check_name='NO_CHECK';//校验用户姓名选项,NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账),OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
$re_user_name='测试';//用户姓名
$amount=100;//企业金额,这里是以分为单位(必须大于100分)
$desc='测试数据呀!!!';//描述
$spbill_create_ip='192.168.0.1';//请求ip

$dataArr=array();
$dataArr['amount']=$amount;
$dataArr['check_name']=$check_name;
$dataArr['desc']=$desc;
$dataArr['mch_appid']=$mch_appid;
$dataArr['mchid']=$mchid;
$dataArr['nonce_str']=$nonce_str;
$dataArr['openid']=$openid;
$dataArr['partner_trade_no']=$partner_trade_no;
$dataArr['re_user_name']=$re_user_name;
$dataArr['spbill_create_ip']=$spbill_create_ip;

//生成签名

$sign=getSign($dataArr);//getSign($dataArr);见结尾

echo "-----<br/>签名:".$sign."<br/>*****";//die;

//拼写正确的xml参数

$data="<xml>
<mch_appid>".$mch_appid."</mch_appid>
<mchid>".$mchid."</mchid>
<nonce_str>".$nonce_str."</nonce_str>
<partner_trade_no>".$partner_trade_no."</partner_trade_no>
<openid>".$openid."</openid>
<check_name>".$check_name."</check_name>
<re_user_name>".$re_user_name."</re_user_name>
<amount>".$amount."</amount>
<desc>".$desc."</desc>
<spbill_create_ip>".$spbill_create_ip."</spbill_create_ip>
<sign>".$sign."</sign>
</xml>";

4、发出企业付款请求

$ch = curl_init ();
$MENU_URL="https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
curl_setopt ( $ch, CURLOPT_URL, $MENU_URL );
curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );

//两个证书(必填,请求需要双向证书。)
$zs1="/apiclient_cert.pem";
$zs2="/apiclient_key.pem";
curl_setopt($ch,CURLOPT_SSLCERT,$zs1);
curl_setopt($ch,CURLOPT_SSLKEY,$zs2);
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );

$info = curl_exec ( $ch );
if (curl_errno ( $ch )) {
echo 'Errno' . curl_error ( $ch );
}
curl_close ( $ch );
echo "-----<br/>请求返回值:";
var_dump($info);
echo "<br/>*****";die;

更具返回值,做具体处理。

------------------------getSign()方法如下----------------------

/**
 * 作用:生成签名
 */
function getSign($Obj)
{
var_dump($Obj);//die;
foreach ($Obj as $k => $v)
{
$Parameters[$k] = $v;
}
//签名步骤一:按字典序排序参数
ksort($Parameters);
$String = formatBizQueryParaMap($Parameters, false);//方法如下
//echo '【string1】'.$String.'</br>';
//签名步骤二:在string后加入KEY
$String = $String."&key=6cd1c9cab639cb399cb371cbd893e15e";
//echo "【string2】".$String."</br>";
//签名步骤三:MD5加密
$String = md5($String);
//echo "【string3】 ".$String."</br>";
//签名步骤四:所有字符转为大写
$result_ = strtoupper($String);
//echo "【result】 ".$result_."</br>";
return $result_;
}

/**
 * 作用:格式化参数,签名过程需要使用
 */
function formatBizQueryParaMap($paraMap, $urlencode)
{
var_dump($paraMap);//die;
$buff = "";
ksort($paraMap);
foreach ($paraMap as $k => $v)
{
if($urlencode)
{
$v = urlencode($v);
}
//$buff .= strtolower($k) . "=" . $v . "&";
$buff .= $k . "=" . $v . "&";
}
$reqPar;
if (strlen($buff) > 0)
{
$reqPar = substr($buff, 0, strlen($buff)-1);
}
var_dump($reqPar);//die;
return $reqPar;
}

示例demo地址:http://download.csdn.net/detail/u010533511/9106723

微信支付商户平台,企业付款,企业向个人付款接口总结相关推荐

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

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

  2. 登录微信支付商户平台-产品中心,开通企业付款的方法

    2019独角兽企业重金招聘Python工程师标准>>> 登录微信支付商户平台-产品中心,开通企业付款的时候,找不到该功能,上网搜集的解决方法,亲测可行. 1.登录微信支付商户平台 2 ...

  3. 微信企业付款 ”错误码:NO_AUTH,错误信息:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置“报错的处理办法

    提示"错误码:NO_AUTH,错误信息:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置" 快速解决问题!!! 解说一下这个IP:这个IP是你发起支付的服务器外网I ...

  4. 此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置

    调用微信企业付款提示"此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置". 配置步骤: 1.登录微信商户,进入产品中心,以企业付款到零钱为例,点击产品设置: 2.找 ...

  5. 微信 账户升级服务器地址,微信支付商户平台账户升级后有哪些新功能呢?

    注册了微信公众号的服务号,是可以再申请微信支付的,自从微信公众号的兴起,随着技术的改革和革新,微信公众号也随着做出了不少的调整和变化,首先,微信支付商户平台账户升级,这标志着微信服务好有了很多不同的地 ...

  6. 微信支付(商户平台)卡券开发文档

    文章目录 简介 代金券 代金券分类 预充值代金券 免充值代金券 发券渠道 二维码发券 营销活动发券 高级API接口发券 核销方式 支付中自动核销券 操作指引 开发前准备 开通代金券权限 下载API证书 ...

  7. node 微信红包 证书出错,请登录微信支付商户平台下载证书

    按照官方文档写的代码,测试给自己发红包时,提示证书出错,请登录微信支付商户平台下载证书. 我是用的superagent库,错误前的核心代码是: const url = 'https://api.mch ...

  8. php 微信支付 ca证书,微信公众号红包接口开发PHP开发 CA证书出错,请登陆微信支付商户平台下载证书...

    微信红包接口调试过程中一直提示"CA证书出错,请登陆微信支付商户平台下载证书",经反复调试,大致解决方法如下: 1.首先确保CA证书的路径是否正确,一定得是绝对路径,因为是PHP开 ...

  9. java 微信转账 ca_error_对接微信红包时:CA证书出错,请登录微信支付商户平台下载证书...

    今天在对接微信支付的微信红包发放时,出现""CA证书出错,请登录微信支付商户平台下载证书"的错误,特此记录一下: 如果你也在对接微信红包,并且你也在这个页面上下载了dem ...

  10. php微信商务平台 红包调用,微信平台红包接口怎么调用?微信支付商户平台红包发放接口调用图文教程[多图]...

    微信平台红包接口怎么调用?估计很多商家都还不太会操作吧?别着急,下面是友情小编搜集相关资料整理出来的微信支付商户平台红包发放接口调用图文教程,希望可以帮到大家,现在就跟随小编一起看看吧!!! 首先,商 ...

最新文章

  1. 多条记录取最前面一条或根据条件任取N条
  2. j2ee与mysql乱码过滤_mysql 在 j2ee中配置的乱码问题处理
  3. 构建之法 第6~7章读后感和对Scrum的理解
  4. 使用logrotate做nginx日志分割
  5. apriori算法代码python_Apriori算法的Python实现
  6. 汽车电子专业知识篇(三)-自动驾驶中的多传感器融合
  7. 帮写python代码_10个工具,帮你写出更好的Python代码
  8. 【转载】关系型数据库设计范式
  9. Word导出PDF出现空白页
  10. 记java的那些编辑器的故事之凌嘉文+李晓彤-结对编程
  11. 纸牌游戏——小猫钓鱼(队列、栈)
  12. Fast Walsh-Hadamard Transform (快速沃尔什变换)
  13. 【BZOJ 3993】【SDOI 2015】星际战争
  14. 魔术表演的核心秘密(六)——从障眼法到错误引导和案例分享
  15. Android10源码AOSP(从Ubuntu14.04环境搭建到下载编译运行)
  16. Kafka——创建无消费者组的消费者消费订阅主题
  17. c语言不用死等的延时函数,matlab延时函数怎么写
  18. Base—1.1 RS485、RS232和线序
  19. Windows版本下安装使用Grafana教程
  20. 【Java】interrupt、interrupted和isInterrupted的区别

热门文章

  1. 虚拟摄像头之九: IMX8Q 的 camera.imx8.hal 框架详解
  2. Web 前端学习 案例三之制作网页表单
  3. 超简单的动图制作、利用ps制作简单的动图、把动图导入我们的博客中;
  4. ps制作动态html,PS制作动态海报教程
  5. 科学家发现程序员秃头新原因,毛囊干细胞竟会悄悄逃走
  6. 向量叉乘公式_向量外积的高中数学运用
  7. 算法题解 - 牛客编程巅峰赛S1第4场 - 黄金钻石组
  8. 伍斯特理工学院计算机专业,伍斯特理工学院计算机科学专业
  9. 用xbuilder开发遇到的问题
  10. 大一python实验二答案_python实验二