我目前正在与Kashflow集成并使用SOAP调用从我的Symfony2站点向我的Kashflow帐户发送客户数据,它应该返回新客户的ID - 我需要这个以便将其保存在我的数据库中端。
然而,在返回时,我得到HTTP标头而不仅仅是ID,这意味着它不会将其插入数据库,因为它需要是一个整数。
以下是SOAP响应:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<InsertCustomerResponse xmlns="KashFlow">
<InsertCustomerResult>int</InsertCustomerResult>
<Status>string</Status>
<StatusDetail>string</StatusDetail>
</InsertCustomerResponse>
</soap12:Body>
</soap12:Envelope>
我正在尝试使用以下方法检索新ID:
return new Response((int)$response->soapBody->InsertCustomerResponse->InsertCustomerResult);
但即使ID确实被返回,它也会向上方吐出HTTP标头。有没有办法删除这个?我尝试过像这样使用preg_replace(其中$ return是SOAP调用的响应):
preg_replace('/((.*)\n)*(\d+)$/','$1',$return);
但它只是返回一个空白。
有什么想法吗?
提前致谢
答案 0 :(得分:0)
我意识到我必须在返回时使用getContent()以获取我需要的数据。
所以:
$response = $response->soapBody->InsertCustomerResponse->InsertCustomerResult;
return $response->getContent();
然后只获取我需要的数据,而不是标题。