2013-02-27 2 views
0

우리는 현재 Netsuite webservice에 통합하려고하고 있지만 PHP 커넥터 키트는 사용하고 싶지 않습니다. 우리는 Coldfusion과 cfhttp를 사용하여 개발 한 스크립트가 있어도 문제없이 Netsuite에 데이터를 게시 할 수 있습니다.php curl - Netsuite Webservice

지금 현재 스크립트가 PHP로 변환되어 있으며 curl 함수를 사용하여 Netsuite에 데이터를 보내고 있습니다.

아무런 문제없이 새로운 판매 주문 레코드를 성공적으로 생성 할 수 있지만 반품 응답 메시지를 얻는 것은 302 리다이렉트로 인해 매우 어렵습니다.

메신저 반환 개체 수집을 수행하기위한 로그인 자격 증명과 관련이 있다고 가정하고 있지만 시스템에서 계속 읽을 수 있도록이 데이터를 쿠키 값에 저장하는 방법을 모릅니다. 시스템 통합.

다음은 우리가 여러 가지를 시도했지만 그렇게 우리가 반환 XML 데이터의 어떤 일이든 어떤 문제에 레코드를 생성를 얻을 수 있습니다 작동시킬 수없는 것 우리의 CURL 코드

$http_header = array(
    'Content-Type: text/xml; charset="utf-8"', 
    'SOAPAction: getItemAvailability', 
    'Content-Length: ' . strlen($myXml), 
    'Accept: text/xml', 
    'Cache-Control: no-cache', 
    'Pragma: no-cache' 
); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $this->wdsl); 
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, $http_header); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $myXml); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
$returnObj = curl_exec($ch); 
curl_close($ch); 

입니다 .. 모든 제안을 크게 환영합니다

+0

[Php - Debugging Curl] (http://stackoverflow.com/questions/3757071/php-debugging-curl)을 참조하십시오. 당신은 또한'CURLOPT_FOLLOWLOCATION' 옵션을 사용할 수도 있습니다. [curl follow redirects?] (http://stackoverflow.com/q/3519939/367456) – hakre

+0

각 요청 XML에 자격 증명을 포함 시켰습니까? 또한 이것을 고려하십시오 http://dreamxtream.wordpress.com/2012/11/23/new-data-centers-for-netsuite-accounts/ – Saqib

+0

당신이 얻고있는 전체 HTTP 응답을 게시 할 수 있습니까? – iloveitaly

답변

0

NetSuite 통신을 위해 컬 대신 래퍼 라이브러리를 사용하는 것이 좋습니다. 나는 ruby wrapper으로 많은 일을 해왔고, 저에게는 큰 도움이되었습니다.

302를 얻을 수있는 이유 중 하나는 액세스하려는 계정이 현재 가리키고있는 WSDL과 다른 데이터 센터에 있다는 것입니다. 표준 WSDL 도메인은 system.netsuite.com이지만 많은 NetSuite 설치는 system.na1.netsuite.com에 있습니다. 현재 사용중인 데이터 센터를 확인하는 가장 쉬운 방법은 GUI에 로그인하여 도메인을 확인하는 것입니다.