我正在尝试使用CURL发布XML但得到空响应 虽然同样适用于requestmaker.com
网址: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 Code如下
$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时,它没有给出任何回复
答案 0 :(得分:1)
由于请求发送到https服务器需要传递证书文件..请尝试禁用https验证,如下所示。
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);