在集成NAB支付网关时没有收到任何错误或成功消息

时间:2017-10-26 13:48:27

标签: php payment-gateway

我到目前为止尝试过: < PHP     $ url =“https://demo.transact.nab.com.au/xmlapi/payment”;         $ ch = curl_init();             curl_setopt($ ch,CURLOPT_HEADER,0);             curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1);             curl_setopt($ ch,CURLOPT_URL,$ url);             curl_setopt($ ch,CURLOPT_POST,1);             curl_setopt($ ch,CURLOPT_POSTFIELDS,“XML =”。$ xml);             $含量= curl_exec($ CH);             curl_close($ CH);            的print_r( '<预>');             的print_r($内容);             的print_r( '< /预>');             $ array_data = json_decode(json_encode(simplexml_load_string($ content)),true);             的print_r( '<预>');             的print_r($ array_data);             的print_r( '< /预>');             ?> 尝试使用相同的代码时,我没有收到任何成功或错误消息。没有以JSON或数组格式获取任何消息。 这是一个NAB Transact支付网关。

1 个答案:

答案 0 :(得分:0)

由于代码示例,我必须将此作为答案。

您是否查看了NabTransact集成指南,或者在您开始此问题之前发送给您的任何内容?错误515表示“由于未知原因致命错误”。一旦我遇到类似的错误,我的标题就不对了。

您可以尝试使用use CURLOPT_HTTPHEADER,因为它未定义:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                                   'Content-type: application/xml', 
                                   'Content-length: ' . strlen($xml)
                                 ));

确保$xml全部在一行中。

集成指南说了什么?

集成指南说明如下:

  

第8章基于HTTP的XML

     

HTTP请求和响应消息的结构需要符合HTTP 1.1网络协议。 (...)重要:HTTP   客户als NAB Transact支付网关之间的通信必须   通过SSL套接字完成,以便包含在内的敏感信息   请求和响应消息已加密。

     

8.1请求

POST /test/payment HTTP/1.1
host: www.NABTransact.com.au
content-type: text/xml
content-length: 677

<?xml-rubbish here, all in one-line>
     

     

8.2回复

     

初始HTTP服务器响应(100 continue)表示已收到请求,应忽略该请求。 200响应应该跟随XML响应消息。如果内容长度为0且未包含XML响应,则无法理解请求并且未生成响应。

随后是数据的XML响应。

因此,请确保使用SSL在cURL 中使用正确的标头。如果您因为正在使用localhost而无法使用官方SSL证书,那么cURL中有一些技巧可以使用您自己的证书或绕过SSL检查。