企业付款到零钱(微信)
<?php /*代码部分*///企业付款到微信零钱,PHP接口调用方法 define("APPID", "wxe062425f740c30d8"); // 商户账号appid define("MCHID", "10000098"); // 商户号 define("SECRECT_KEY", "453436425252"); //支付密钥签名 define("IP", "xxx.xxx.xx.xx"); //IP/*** [xmltoarray xml格式转换为数组]* @param [type] $xml [xml]* @return [type] [xml 转化为array]*/ function xmltoarray($xml) {//禁止引用外部xml实体libxml_disable_entity_loader(true);$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);$val = json_decode(json_encode($xmlstring),true);return $val; }/*** [arraytoxml 将数组转换成xml格式(简单方法):]* @param [type] $data [数组]* @return [type] [array 转 xml]*/ function arraytoxml($data){$str='<xml>';foreach($data as $k=>$v) {$str.='<'.$k.'>'.$v.'</'.$k.'>';}$str.='</xml>';return $str; }/*** [createNoncestr 生成随机字符串]* @param integer $length [长度]* @return [type] [字母大小写加数字]*/ function createNoncestr($length =32){$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxyz0123456789";$str ="";for($i=0;$i<$length;$i++){$str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);}return $str; }/*** [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/";//证书位置;绝对路径$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 $data;} else {$error = curl_errno($ch);echo "call faild, errorCode:$error\n";curl_close($ch);return false;} }/*** [sendMoney 企业付款到零钱]* @param [type] $amount [发送的金额(分)目前发送金额不能少于1元]* @param [type] $re_openid [发送人的 openid]* @param string $desc [企业付款描述信息 (必填)]* @param string $check_name [收款用户姓名 (选填)]* @return [type] [description]*/ function sendMoney($amount,$re_openid,$desc='测试',$check_name=''){$total_amount = (100) * $amount;$data=array('mch_appid'=>APPID,//商户账号appid'mchid'=> MCHID,//商户号'nonce_str'=>createNoncestr(),//随机字符串'partner_trade_no'=> date('YmdHis').rand(1000, 9999),//商户订单号'openid'=> $re_openid,//用户openid'check_name'=>'NO_CHECK',//校验用户姓名选项,'re_user_name'=> $check_name,//收款用户姓名'amount'=>$total_amount,//金额'desc'=> $desc,//企业付款描述信息'spbill_create_ip'=> IP,//Ip地址);//生成签名算法$secrect_key=SECRECT_KEY;///这个就是个API密码。MD5 32位。$data=array_filter($data);ksort($data);$str='';foreach($data as $k=>$v) {$str.=$k.'='.$v.'&';}$str.='key='.$secrect_key;$data['sign']=md5($str);//生成签名算法$xml=arraytoxml($data);$url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口$res=curl_post_ssl($url,$xml);$return=xmltoarray($res);print_r($return);//返回来的结果是xml,最后转换成数组/*array(9) {["return_code"]=>string(7) "SUCCESS"["return_msg"]=>array(0) {}["mch_appid"]=>string(18) "wx57676786465544b2a5"["mchid"]=>string(10) "143345612"["nonce_str"]=>string(32) "iw6TtHdOySMAfS81qcnqXojwUMn8l8mY"["result_code"]=>string(7) "SUCCESS"["partner_trade_no"]=>string(18) "201807011410504098"["payment_no"]=>string(28) "1000018301201807019357038738"["payment_time"]=>string(19) "2018-07-01 14:56:35"}*/$responseObj = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);echo $res= $responseObj->return_code; //SUCCESS 如果返回来SUCCESS,则发生成功,处理自己的逻辑return $res; }/*调用方法*/ sendMoney(1,'gdgfdg56456223423','xxxx测试','xxx');
转载于:https://my.oschina.net/u/3853452/blog/1933102
企业付款到零钱(微信)相关推荐
- 微信企业付款到零钱(微信提现)
由于项目中要用到微信提现,参考网上代码和官方文档写了提现的工具类 用到的相关类库 dom4j commons-lang3 httpclient-4.4.1 具体相关流程可以看微信企业付款到零钱的开发文 ...
- 企业付款到零钱微信API请求报错:error:0909006C:PEM routines:get_name:no start line
背景 对接企业付款到零钱,微信api请求时需要用到证书(node环境使用pem格式) 微信API:[微信支付]付款开发者文档 已经用微信的\WXCertUtil工具在本地生成了证书文件 问题所在: 证 ...
- 微信支付----企业付款到零钱和银行卡规则
企业付款到零钱 微信官方文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1 使用条件 1.商户号(或同主体 ...
- 企业付款到零钱 java_微信支付商户如何开通企业付款到零钱?
1.功能介绍 简介 企业付款提供由商户直接付钱至用户微信零钱的能力,支持平台操作及接口调用两种方式.具有免费.快速到账.灵活.安全等优点.商户可以使用企业付款,用于如:费用报销.员工福利.用户奖励等. ...
- 微信用户提现功能 显示NO_AUTH | 产品权限验证失败,请查看您当前是否具有该产品的权限(企业付款到零钱 银行卡)
企业付款到零钱 一.开通条件 需同时满足两个条件,才有开通该功能入口: 1.T+0 (T日结算至基本账户),结算商户需满足两个条件: 1.入驻满90天, 2.截止今日往回推30天连续不间断保持有交易. ...
- PHP微信商户支付 - 企业付款到零钱功能(即提现)技术资料汇总
PHP实现微信开发中提现功能(企业付款到用户零钱) 一.实现该功能目的 这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现: 官方文档:https:/ ...
- 微信支付-企业付款到零钱问题集锦
前言 做拉新活动的奖金分发,商品售卖的分销体系.给与用户奖金 1. 需要证书 <xml> <return_code><![CDATA[SUCCESS]]></ ...
- 微信提现——企业付款到零钱demo(超详细小白都看得懂的)
一.p12证书下载 企业付款到零钱API (建议多看) apiclient_cert.p12证书:在微信商户平台–>账户设置–>API安全–>证书中下载的 . (自行下载) 二.开发 ...
- 解决问题:CA_ERROR证书出错,请登录微信支付商户平台下载证书-企业付款到零钱接口(原创)
解决问题:CA_ERROR证书出错,请登录微信支付商户平台下载证书-企业付款到零钱接口(原创) 参考文章: (1)解决问题:CA_ERROR证书出错,请登录微信支付商户平台下载证书-企业付款到零钱接口 ...
最新文章
- 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决
- IE8经常停止工作和显示异常
- python发明者叫什么-python是谁的
- 在企业环境中部署 Microsoft Windows 恶意软件删除工具
- python isinstance和issubclass区别
- Python3快速入门----(3) dict(字典结构)
- JVM 学习一:JVM 的构架模型及生命周期
- javascript中substring()、substr()、slice()的区别
- 使用绑定进行WPF DataGrid格式化的指南
- 金融科技的别样财报:趣店坎坷后回暖、品钛首盈利
- Smart3D中空三的设置
- MATLAB遗传算法求函数最值
- 用于重尾PLDA的快变分贝叶斯应用于i-vector和x-vector
- 架构之:serverless架构
- 于的繁体字有几种写法_于的繁体字是什么(行书怎么写)
- 泰拉瑞亚云服务器的搭建
- 学习如何读论文的一些磨刀不误砍柴工
- java写关于温度的算法_摄氏温度和华氏温度的转换之java算法
- oracle 数据库不用了,改用SQL,要学SQL了,第一个手工写的存储过程
- 外贸人必备的实用工具