微信支付

/**

* 生成app支付訂單

*

*@accesspublic

*@paramstring? ? ? $total_amount

*@paramstring? ? ? $out_trade_no

*@returnstring

*/

public functionbuild_order($total_amount,$out_trade_no,$body='支付')

{

$data=array();

$data['appid'] =$this->user_config['appid'];

$data['mch_id'] =$this->user_config['mch_id'];

$data['nonce_str'] = MD5(time().rand(10000,99999));

$data['body'] =$body;

$data['out_trade_no'] =$out_trade_no;

$data['total_fee'] =$total_amount;

$data['spbill_create_ip'] = getIP();

$data['notify_url'] =$this->user_config['notify_url'];

$data['trade_type'] ='APP';

ksort($data);

$data['sign'] = getSign($data,$this->user_config['api']);

$xml= arrayToXml($data);

$response= postXmlCurl($xml);

$res= xmlstr_to_array($response);

$prepay_id=$res['prepay_id'];

$payData= payData($prepay_id,$this->user_config);

return$payData;

}


functionpostXmlCurl($xml,$url='https://api.mch.weixin.qq.com/pay/unifiedorder',$second=30)

{

//初始化curl

$ch=curl_init();

//超時時間

curl_setopt($ch,CURLOPT_TIMEOUT,$second);

//這里設置代理,如果有的話

//curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');

//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);

//設置header

curl_setopt($ch,CURLOPT_HEADER,FALSE);

//要求結果為字符串且輸出到屏幕上

curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);

//post提交方式

curl_setopt($ch,CURLOPT_POST,TRUE);

curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);

//運行curl

$data=curl_exec($ch);

//返回結果

if($data)

{

curl_close($ch);

return$data;

}

else

{

$error=curl_errno($ch);

echo"curl出錯,錯誤碼:$error"."
";

echo"錯誤原因查詢
";

curl_close($ch);

return false;

}

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容