curl之post提交xml

直接上代码:

 1     /** 
 2      * 以post方式提交xml到对应的接口url
 3      * 
 4      * @param string $xml  需要post的xml数据
 5      * @param string $url  url
 6      * @param bool $useCert 是否需要证书,默认不需要
 7      * @param int $second   url执行超时时间,默认30s
 8      * @throws WxPayException
 9      */
10     private static function postXmlCurl($xml, $url, $useCert = false, $second = 30) 
11     {    
12         $ch = curl_init();
13         //设置超时
14         curl_setopt($ch, CURLOPT_TIMEOUT, $second);
15     
16         //如果有配置代理这里就设置代理
17         if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0" 
18             && WxPayConfig::CURL_PROXY_PORT != 0){ 
19             curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
20             curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
21         }   
22         curl_setopt($ch,CURLOPT_URL, $url);
23         curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
24         curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
25         //设置header
26         curl_setopt($ch, CURLOPT_HEADER, FALSE);
27         //要求结果为字符串且输出到屏幕上
28         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
29     
30         if($useCert == true){
31             //设置证书
32             //使用证书:cert 与 key 分别属于两个.pem文件
33             curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
34             curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH);
35             curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
36             curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH);
37         }
38         //post提交方式
39         curl_setopt($ch, CURLOPT_POST, TRUE);
40         curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
41         //运行curl
42         $data = curl_exec($ch);
43         //返回结果
44         if($data){
45             curl_close($ch);
46             return $data;
47         } else {
48             $error = curl_errno($ch);
49             curl_close($ch);
50             throw new WxPayException("curl出错,错误码:$error");
51         }
52     }

response.php

1 <?php
2   if(isset($_POST['name'])){
3       if(!empty($_POST['name'])){
4           echo '您好,',$_POST['name'].'!';
5     }
6 }
7 ?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值