微信官方文档基本上跟没说一样,只有自己慢慢摸索了,刚刚开发完这个功能,整理记录一下。

文档地址https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2

SDK下载:https://pay.weixin.qq.com/wiki/doc/api/download/cert.zip

步骤一

所需参数

$params["mch_appid"]        = ''; //公众账号appid 或者开放平台 appid
$params["mchid"]            = ''; //商户号 微信支付平台账号
$params["nonce_str"]        = self::createNonceStr(32); //随机字符串
$params["partner_trade_no"] = date('YmdHis', time()) . rand(100000, 999999);//商户订单号
$params["amount"]           = 100; //金额 单位为分 1元是100
$params["desc"]             = '付款'; //企业付款描述
$params["openid"]           = ''; //用户openid
$params["check_name"]       = 'NO_CHECK'; //不检验用户姓名
$params['spbill_create_ip'] = ''; //服务器IP

生成签名

这里文档写的比较复杂,实际上就是把参数按照ASCII进行排序

下面的key 指的是 商户平台API秘钥,登录账户平台,账户中心,API安全里面进行设置

$str =  'amount='.$params["amount"].        '&check_name='.$params["check_name"].        '&desc='.$params["desc"].        '&mch_appid='.$params["mch_appid"].        '&mchid='.$params["mchid"].        '&nonce_str='.$params["nonce_str"].      '&openid='.$params["openid"].        '&partner_trade_no='.$params["partner_trade_no"].        '&spbill_create_ip='.$params['spbill_create_ip'].         '&key=1234567';$sign = strtoupper(md5($str));$params["sign"] = $sign;//签名$xml = self::arrayToXml($params);$res = self::curl_post_ssl($url, $xml);return $result = self::xmlToArray($res);

接下来是用到的函数

curl_post_ssl这个函数里面  CURLOPT_SSLCERT和CURLOPT_SSLKEY 两个引用的是API证书,也在账户中心,API安全里面进行下载,引用必须是绝对路径。

    /*** 发送post请求**/private static function curl_post_ssl($url, $vars, $second=30,$aHeader=array()){$ch = curl_init();//超时时间curl_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);//引用pem文件curl_setopt($ch,CURLOPT_SSLCERT,"apiclient_cert.pem");curl_setopt($ch,CURLOPT_SSLKEY,"apiclient_key.pem");if( count($aHeader) >= 1 ){curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);}curl_setopt($ch,CURLOPT_POST, 1);curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);$data = curl_exec($ch);if($data){curl_close($ch);return $data;}else {$error = curl_errno($ch);echo "call faild, errorCode:$error\n";curl_close($ch);return false;}}/*** 数组转xml**/private static function arrayToXml($arr) {$xml = "<xml>";foreach ($arr as $key => $val){if (is_numeric($val)){$xml .= "<".$key.">".$val."</".$key.">";}else{$xml .= "<".$key."><![CDATA[".$val."]]></".$key.">";}}$xml .= "</xml>";return $xml;}/*** 将XML转为array**/private static function xmlToArray($xml){//禁止引用外部xml实体libxml_disable_entity_loader(true);$values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);return $values;}/*** 获取随机字符串**/private static function createNonceStr($length = 16) {$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);}return $str;}

代码就这么多,实际重要的代码就那么几行。其他的函数都只是一个辅助,测试或使用时,商户平台必须进行充值。

微信商户平台企业付款功能相关推荐

  1. PHP微信商户支付 - 企业付款到零钱功能(即提现)技术资料汇总

    PHP实现微信开发中提现功能(企业付款到用户零钱) 一.实现该功能目的 这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现: 官方文档:https:/ ...

  2. 11. PHP接入微信企业付款功能

    payment 项目2.0版本 这个功能与支付宝的批量付款到支付宝帐号功能类似.但是当前支付宝这个接口已经停止审核了. 当前很多提问平台就用到了这两个平台.比如[来问医生],你提的问题如果被人看了.医 ...

  3. 微信支付之企业付款--微信商户后台没有“企业付款到零钱”解决方案

    项目需要用到用户提现功能,准备用微信支付提供的企业付款功能,即提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款. 登录商户后台准备开通,发现产品中心中并不存 ...

  4. 微信支付(企业付款到个人微信零钱账户)微信公众平台开发教程(6)

    微信支付(企业付款到个人微信零钱账户)微信公众平台开发教程(6 简介 开发步骤 后端代码实现 简介 Senparc.Weixin SDK 是由盛派网络(Senparc)团队自主研发的针对微信各模块的 ...

  5. 企业付款 php_PHP接入微信企业付款功能

    这个功能与支付宝的批量付款到支付宝帐号功能类似.但是当前支付宝这个接口已经停止审核了. 当前很多提问平台就用到了这两个平台.比如[来问医生],你提的问题如果被人看了.医生得0.5元,你得0.5元.然后 ...

  6. 微信商户平台转账到零钱功能接入实战

    1.背景说明      2.实现过程          2.1 接入之前的准备工作          2.2 代码实现      3.注意事项以及相关说明          3.1 参数组装说明    ...

  7. php 微信转账,php实现微信公众号企业转账功能

    企业付款提供由商户直接付钱至用户微信零钱的能力,支持平台操作及接口调用两种方式,资金到账速度快,使用及查询方便.主要用来解决合理的商户对用户付款需求,比如:保险理赔.彩票兑换等等. 特点发起方式灵活, ...

  8. php 微信公众号企业转账功能

    企业付款提供由商户直接付钱至用户微信零钱的能力,支持平台操作及接口调用两种方式,资金到账速度快,使用及查询方便.主要用来解决合理的商户对用户付款需求,比如:保险理赔.彩票兑换等等. 特点 发起方式灵活 ...

  9. java 微信转账 ca_error_【微信支付】企业付款开发者文档

    [微信支付]企业付款开发者文档 2018-11-24 简介 企业付款业务是基于微信支付商户平台的资金管理能力,为了协助商户方便地实现企业向个人付款,针对部分有开发能力的商户,提供通过API完成企业付款 ...

最新文章

  1. GlusterFS常用命令小结
  2. SVM的发展和研究热点
  3. 【ZJOI2015】幻想乡 Wi-Fi 搭建计划【几何】【贪心】【dp】
  4. 遇到attemp to invoke virtual method
  5. mupdf java_mupdf库学习
  6. 一文搞清楚 Spark shuffle 调优
  7. 华为平板wps语音朗读_打工人必备的手机端WPS小技巧
  8. JAVA中的位运算符
  9. deepin linux 命令行_5 个面向新手的 Linux 发行版
  10. 微信小程序购物车商品单选、多选、数量变化、结算等
  11. java 日历_java的日历类(Calendar)详解
  12. ldoce6 android,少儿英语学习词典 朗文当代LDOCE6双解词典
  13. 浙江师范大学c语言函数实验答案,C语言实验浙江师范大学8-2 D阵列+答案.doc
  14. 差动变压器的振动测量实验 思考题
  15. DragonBoard 高通推出 IoT板 hitting raspberry pi
  16. 2008年4月28日A股市场存在筑底异样
  17. LATEX强制放置表格图片在固定的位置
  18. 2021-01-12 DataGrip2020.3 离线安装驱动
  19. MacbookPro使用小记
  20. python动态与静态语言_Python编程笔记--动态属性

热门文章

  1. 股票投资 - 如何看懂集合竞价
  2. IT三部曲之达摩研究院(上)
  3. gitlab基本概念
  4. linux双机连通找不到con1,Linux服务器崩溃 - 错误在反序列化(节点$ CON):错误的连接...
  5. python绘制等值线图_使用matplotlib绘制等值线图
  6. 百度智能云在线活体检测
  7. 笔记:《深入浅出统计学》第八、九章:概率密度、正态分布(高斯分布)
  8. 使用rufus制作Windows Server 2008 U盘_wentfar·tsao
  9. vi vim 快速跳到文件末尾 GA 在最后一行下方新增一行 (光标换行,文字不换行) GO
  10. 随机数qqqqqqqqqq_rand()