我试图使用CURL POST XML,但得到空响应这里也一样requestmaker.com
Url: https://ipcharge.net/ipchapi/rh.aspx
XML代码<TRANSACTION>
<USER_ID>mqueacio</USER_ID>
<USER_PW>WELcome20</USER_PW>
<CLIENT_ID>15928200010001</CLIENT_ID>
<MERCHANTKEY>i6UM7ld85dRsayie8Vh7SPQW3e2s846M2454b4gic5L2ArtOiwsUYgYSYAWDRISL</MERCHANTKEY>
<FUNCTION_TYPE>PAYMENT</FUNCTION_TYPE>
<PAYMENT_TYPE>CREDIT</PAYMENT_TYPE>
<COMMAND>SALE</COMMAND>
<ACCT_NUM>1111</ACCT_NUM>
<CUSTOMER_STREET>hgh ghg</CUSTOMER_STREET>
<CUSTOMER_ZIP>ghgh</CUSTOMER_ZIP>
<EXP_MONTH>2</EXP_MONTH>
<EXP_YEAR>2017</EXP_YEAR>
<PRESENT_FLAG>1</PRESENT_FLAG>
<INVOICE>123</INVOICE>
<TRANS_AMOUNT>111.00</TRANS_AMOUNT>
<CARDHOLDER>HGG HGHG</CARDHOLDER>
<CVV2>111</CVV2>
</TRANSACTION>
Php代码如下
$ch = curl_init($_POST['url']);
curl_setopt($ch, CURLOPT_MUTE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST['string']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$output = curl_exec($ch);
curl_close($ch);
$array_data = json_decode(json_encode(simplexml_load_string($data)), true);
print_r($array_data);
如果我们把相同的数据在上面的网站,它给出响应但是当我在php中尝试同样的操作时它没有给出任何响应
当请求发送到https服务器时需要通过证书文件。尝试禁用HTTPS验证,如下所示。
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);