本文为大家分享了PHP实现微信商户支付企业付款到零钱的具体代码,供大家参考,具体内容如下
微信支付开发文档
一、开通条件
企业付款为企业提供付款至用户零钱的能力,支持通过API接口付款,或通过微信支付商户平台(pay.weixin.qq.com)网页操作付款。
使用条件
具体的可以看微信支付开发文档
二、代码展示
//企业付款到微信零钱,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=''; foreach($data as $k=>$v) { $str.='<'.$k.'>'.$v.''.$k.'>'; } $str.=' '; 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();//初始化curl 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);// 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 "; curl_close($ch); return false; } } /** * [sendMoney