Thinkphp 5.0 위 챗 기업 의 잔돈 지불 실현
[위 챗 결제]기업 에서 잔돈 까지 지불:공식 문서
메모:1.인증서 경 로 는 절대 경 로 를 쓰 고 함수 getcwd()를 사용 해 야 합 니 다.
function transfer($data){
//
$wxchat['appid'] = WxPayConfig::$appid;
$wxchat['mchid'] = WxPayConfig::$mchid;
$webdata = array(
'mch_appid' => $wxchat['appid'],// appid
'mchid' => $wxchat['mchid'],//
'nonce_str' => md5(time()),//
'partner_trade_no'=> date('YmdHis'), // ,
'openid' => $data['openid'],// openid
'check_name'=> 'NO_CHECK', //OPTION_CHECK , FORCE_CHECK: NO_CHECK:
'amount' => $data['money']*100, //
'desc' => ' ',//
'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);// XML
$pay_url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';//api
$res = $this->postData($pay_url,$wget);//
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;
}
// 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;
}
//
function postData($url,$postfields){
$ch = curl_init();
$params[CURLOPT_URL] = $url; // url
$params[CURLOPT_HEADER] = false; //
$params[CURLOPT_RETURNTRANSFER] = true; //
$params[CURLOPT_FOLLOWLOCATION] = true; //
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;
$params[CURLOPT_SSL_VERIFYPEER] = false;
$params[CURLOPT_SSL_VERIFYHOST] = false;
//
$params[CURLOPT_SSLCERTTYPE] = 'PEM';
$params[CURLOPT_SSLCERT] = getcwd().'/plugins/payment/weixin/cert/apiclient_cert.pem';//
$params[CURLOPT_SSLKEYTYPE] = 'PEM';
$params[CURLOPT_SSLKEY] = getcwd().'/plugins/payment/weixin/cert/apiclient_key.pem';//
curl_setopt_array($ch, $params); // curl
$content = curl_exec($ch); //
curl_close($ch); //
return $content;
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thinkphp의 S 캐시 사용법!텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.