2016-09-21 2 views
1

У меня есть запрос ЗАПРОСИТЬ ОТПРАВИТЬ в xml. Я хочу отправить его на php. Можете ли вы помочь мне написать функцию php curl для отправки следующего xml?как написать запрос php curl для шлюза оплаты securetrading.com

POST /xml/ HTTP/1.0 
Content-Type: text/xml;charset=utf-8 
Content-Length: 839 
Accept: text/xml 
Accept-Encoding: gzip 
Authorization: <BASIC AUTH CREDENTIALS HERE> 
User-Agent: <YOUR SOFTWARE VERSION HERE> 
Host: webservices.securetrading.net 
Connection: close 

<requestblock version="3.67"> 
    <alias>[email protected]</alias> 
    <request type="AUTH"> 
    <operation> 
     <sitereference>test_site12345</sitereference> 
     <accounttypedescription>ECOM</accounttypedescription> 
    </operation> 
    <merchant> 
     <orderreference>Example AUTH</orderreference> 
     <termurl>https://www.example.com/termurl.cgi</termurl> 
     <name>Test Merchant</name> 
    </merchant> 
    <customer> 
     <ip>1.2.3.4</ip> 
    </customer> 
    <billing> 
     <amount currencycode="GBP">2115</amount> 
     <town>Bangor</town> 
     <country>GB</country> 
     <payment type="VISA"> 
     <expirydate>10/2031</expirydate> 
     <pan>4111111111111111</pan> 
     <securitycode>123</securitycode> 
     </payment> 
    </billing> 
    <settlement/> 
    </request> 
</requestblock> 

нужна помощь от профессионала php.

+0

Извините, но ТАК _not_ бесплатный сервис кодирования. Я предлагаю вам нанять программиста, чтобы сделать эту работу за вас. – arkascha

+0

Я видел код, где мы можем отправить xml прямо в curl, но я не смог найти этот URL снова. – user3264863

+0

Просто взгляните на документацию php curl, в ней представлены простые примеры. XML ничего особенного, просто строка. Вам просто нужно сделать запрос POST. Вы, конечно, сможете это понять. Идти! – arkascha

ответ

1

Вот пример, который можно отправить в виде данных XML с помощью завиток

$url="http://"; // Enter url here 
$curl = curl_init(); 
curl_setopt_array($curl, array(
    CURLOPT_URL => $url, 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "POST", 
    CURLOPT_POSTFIELDS => "<requestblock version=\"3.67\">\r\n <alias>[email protected]</alias>\r\n <request type=\"AUTH\">\r\n <operation>\r\n  <sitereference>test_site12345</sitereference>\r\n  <accounttypedescription>ECOM</accounttypedescription>\r\n </operation>\r\n <merchant>\r\n  <orderreference>Example AUTH</orderreference>\r\n  <termurl>https://www.example.com/termurl.cgi</termurl>\r\n  <name>Test Merchant</name>\r\n </merchant>\r\n <customer>\r\n  <ip>1.2.3.4</ip>\r\n </customer>\r\n <billing>\r\n  <amount currencycode=\"GBP\">2115</amount>\r\n  <town>Bangor</town>\r\n  <country>GB</country>\r\n  <payment type=\"VISA\">\r\n  <expirydate>10/2031</expirydate>\r\n  <pan>4111111111111111</pan>\r\n  <securitycode>123</securitycode>\r\n  </payment>\r\n </billing>\r\n <settlement/>\r\n </request>\r\n</requestblock>", 
    CURLOPT_HTTPHEADER => array(
     "accept-encoding: application/gzip",   
     "content-type: text/xml" 
    ), 
)); 
$response = curl_exec($curl); 
$err = curl_error($curl); 
curl_close($curl); 
if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 
+0

Спасибо rakeshbhai – user3264863

+1

Спасибо. Мне просто нужен намек на код. Теперь я смогу решить проблему. – user3264863

Смежные вопросы