日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

微信支付+服务器+php代码,php 微信支付企业付款(示例代码)

發布時間:2023/12/9 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信支付+服务器+php代码,php 微信支付企业付款(示例代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/**

* 格式化參數格式化成url參數*/

public function ToUrl($arr)

{$buff = "";foreach ($arr as $k => $v)

{if($k != "sign" && $v != "" && !is_array($v)){$buff .= $k . "=" . $v . "&";

}

}$buff = trim($buff, "&");return $buff;

}//將亂序的數組

public function ToSign($arr,$key)

{//簽名步驟一:按字典序排序參數

ksort($arr);$string = ToUrl($arr);//簽名步驟二:在string后加入KEY

$string = $string . "&key=".$key;//簽名步驟三:MD5加密

$string = md5($string);//簽名步驟四:所有字符轉為大寫

// $result1 = strtoupper($string);

return $string;

}/**

* 輸出xml字符

* @throws WxPayException

**/

public static function ToXml($arr)

{if(!is_array($arr) || count($arr) <= 0)

{echo ‘數據異常‘;

}$xml = "";foreach ($arr as $key=>$val)

{if (is_numeric($val)){$xml.="".$val."".$key.">";

}else{$xml.="".$key.">";

}

}$xml.="";return $xml;

}/**

* zll 生成唯一訂單號*/

public functionorder_sn(){$str = "qyfk".uniqid();return $str;

}/**

* zll 將信息提交到微信服務器,發起企業付款*/

public function qyzf_post($url,$xml,$config,$second=30){$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);//curl_setopt($ch,CURLOPT_SSLCERT,"/home/lizi/addons/grow/template/mobile/cash/apiclient_cert.pem");

// curl_setopt($ch,CURLOPT_SSLKEY,"/home/lizi/addons/grow/template/mobile/cash/apiclient_key.pem");

$str = ‘D:/www/‘;//證書必須使用絕對路徑,否則報錯,錯誤貌似是52什么的

curl_setopt($ch,CURLOPT_SSLCERTTYPE,‘PEM‘);

curl_setopt($ch,CURLOPT_SSLCERT,$str.trim($config[‘apiclient_cert‘],‘.‘));

curl_setopt($ch,CURLOPT_SSLKEYTYPE,‘PEM‘);

curl_setopt($ch,CURLOPT_SSLKEY,$str.trim($config[‘apiclient_key‘],‘.‘));

curl_setopt($ch,CURLOPT_POST, 1);

curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);$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;

}

}/**

* zll 企業付款*/

public function qiyezhifu($data){//解釋amount為付款金額,單位分,貌似最低1元,desc為付款的描述(必填),ip就是服務器ip必填

//$data = array(‘wxappid‘=>14,‘openid‘=>‘oRyzq0LrtuqKqQdH-FubBqcMuTi8-‘,‘amount‘=>100,‘desc‘=>‘提現獎勵‘,‘ip‘=>‘123.207.19.254‘);

//獲取數據庫的支付配置信息

$config = get_pay_conf($data[‘wxappid‘]);if($config){//對必備參數進行有效性判斷

if(empty($config[‘appid‘]) || empty($config[‘shh‘]) || empty($config[‘partnerkey‘]) || empty($data[‘amount‘]) || empty($config[‘apiclient_cert‘]) || empty($config[‘apiclient_key‘])){throw new Exception("支付配置中的appid或商戶號或支付秘鑰不能為空,或支付金額不能為空");

}else{$da[‘mch_appid‘] = $config[‘appid‘]; //appid

$da[‘mchid‘] = $config[‘shh‘]; //商戶號

$da[‘nonce_str‘] = $this->getStr(32); //隨機字符串

$da[‘partner_trade_no‘] = $this->order_sn(); //訂單號,保持唯一性即可

$da[‘openid‘] = $data[‘openid‘]; //粉絲的openid

$da[‘check_name‘] = "NO_CHECK"; //NO_CHECK:不校驗真實姓名 FORCE_CHECK:強校驗真實姓名(未實名認證的用戶會校驗失敗,無法轉賬) OPTION_CHECK:針對已實名認證的用戶才校驗真實姓名(未實名認證用戶不校驗,可以轉賬成功)

//$da[‘re_user_name‘] = ""; //收款用戶真實姓名。 如果check_name設置為FORCE_CHECK或OPTION_CHECK,則必填用戶真實姓名

$da[‘amount‘] = $data[‘amount‘]; //付款金額,單位分

$da[‘desc‘] = $data[‘desc‘] ? $data[‘desc‘]:"提現獎勵"; //企業付款描述信息

$da[‘spbill_create_ip‘] = $data[‘ip‘] ? $data[‘ip‘] : "123.207.19.254"; //服務器ip

$da[‘sign‘] = $this->ToSign($da, $config[‘partnerkey‘]);//生成簽名

//$da[‘key‘] = $config[‘partnerkey‘]; //支付秘鑰

//將數組轉為xml

$xml = $this->ToXml($da);$url = ‘https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers‘;$this->qyzf_post($url,$xml,$config);

}

}else{return false;

}

}

總結

以上是生活随笔為你收集整理的微信支付+服务器+php代码,php 微信支付企业付款(示例代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。