您好,登錄后才能下訂單哦!
使用Thinkphp 5.0怎么實(shí)現(xiàn)微信企業(yè)付款到零錢(qián)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
注意:1,證書(shū)路徑一定要寫(xiě)絕對(duì)路徑,且使用函數(shù)getcwd()。
function transfer($data){ //支付信息 $wxchat['appid'] = WxPayConfig::$appid; $wxchat['mchid'] = WxPayConfig::$mchid; $webdata = array( 'mch_appid' => $wxchat['appid'],//商戶賬號(hào)appid 'mchid' => $wxchat['mchid'],//商戶號(hào) 'nonce_str' => md5(time()),//隨機(jī)字符串 'partner_trade_no'=> date('YmdHis'), //商戶訂單號(hào),需要唯一 'openid' => $data['openid'],//轉(zhuǎn)賬用戶的openid 'check_name'=> 'NO_CHECK', //OPTION_CHECK不強(qiáng)制校驗(yàn)真實(shí)姓名, FORCE_CHECK:強(qiáng)制 NO_CHECK: 'amount' => $data['money']*100, //付款金額單位為分 'desc' => '微信企業(yè)付款到零錢(qián)',//企業(yè)付款描述信息 'spbill_create_ip' => request()->ip(),//獲取IP ); foreach ($webdata as $k => $v) { $tarr[] =$k.'='.$v; } sort($tarr); $sign = implode($tarr, '&'); $sign .= '&key='.WxPayConfig::$key; $webdata['sign']=strtoupper(md5($sign)); $wget = $this->ArrToXml($webdata);//數(shù)組轉(zhuǎn)XML $pay_url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';//api地址 $res = $this->postData($pay_url,$wget);//發(fā)送數(shù)據(jù) if(!$res){ return array('status'=>1, 'msg'=>"Can't connect the server" ); } $content = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA); if(strval($content->return_code) == 'FAIL'){ return array('status'=>1, 'msg'=>strval($content->return_msg)); } if(strval($content->result_code) == 'FAIL'){ return array('status'=>1, 'msg'=>strval($content->err_code),':'.strval($content->err_code_des)); } $rdata = array( 'mch_appid' => strval($content->mch_appid), 'mchid' => strval($content->mchid), 'device_info' => strval($content->device_info), 'nonce_str' => strval($content->nonce_str), 'result_code' => strval($content->result_code), 'partner_trade_no' => strval($content->partner_trade_no), 'payment_no' => strval($content->payment_no), 'payment_time' => strval($content->payment_time), ); return $rdata; }
//數(shù)組轉(zhuǎn)XML function ArrToXml($arr) { if(!is_array($arr) || count($arr) == 0) return ''; $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; }
//發(fā)送數(shù)據(jù) function postData($url,$postfields){ $ch = curl_init(); $params[CURLOPT_URL] = $url; //請(qǐng)求url地址 $params[CURLOPT_HEADER] = false; //是否返回響應(yīng)頭信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否將結(jié)果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $postfields; $params[CURLOPT_SSL_VERIFYPEER] = false; $params[CURLOPT_SSL_VERIFYHOST] = false; //以下是證書(shū)相關(guān)代碼 $params[CURLOPT_SSLCERTTYPE] = 'PEM'; $params[CURLOPT_SSLCERT] = getcwd().'/plugins/payment/weixin/cert/apiclient_cert.pem';//絕對(duì)路徑 $params[CURLOPT_SSLKEYTYPE] = 'PEM'; $params[CURLOPT_SSLKEY] = getcwd().'/plugins/payment/weixin/cert/apiclient_key.pem';//絕對(duì)路徑 curl_setopt_array($ch, $params); //傳入curl參數(shù) $content = curl_exec($ch); //執(zhí)行 curl_close($ch); //關(guān)閉連接 return $content; }
thinkphp屬于一種免費(fèi)的開(kāi)發(fā)框架,能夠用于開(kāi)發(fā)前端網(wǎng)頁(yè),最早thinkphp是為了簡(jiǎn)化開(kāi)發(fā)而產(chǎn)生的,thinkphp同時(shí)也是遵循Apache2協(xié)議,最初是從Struts演變過(guò)來(lái),也把國(guó)外一些好的框架模式進(jìn)行利用,使用面向?qū)ο蟮拈_(kāi)發(fā)結(jié)構(gòu),兼容了很多標(biāo)簽庫(kù)等模式,它能夠更方便和快捷的開(kāi)發(fā)和部署應(yīng)用,當(dāng)然不僅僅是企業(yè)級(jí)應(yīng)用,任何php應(yīng)用開(kāi)發(fā)都可以從thinkphp的簡(jiǎn)單、兼容和快速的特性中受益。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。