SOAP kullanarak API veri gönderilmesi ve hakkında çok temel bir soru

2 Cevap php

Sorumu sormadan önce ben yığın taşması herkese teşekkür etmek istiyorum. Ben gerçekten yararlı herkesin nasıl hayret ve ne kadar ben kafam karıştı zaman sorular sorarak sadece son bir yıl ya da öylesine öğrendim ediyorum.

Benim iş, iş yapar bu satış (dolayısıyla adı) kaydetmek için bir yol birisi için bu API recordSale işlevini kullanmaya çalışıyorum:

url: https://secure.directtrack.com/api/soap.php# wsdl: https://secure.directtrack.com/api/soap.php?wsdl

Name: recordSale Binding: DirectTrackWebServicesBinding Endpoint: http://secure.directtrack.com/api/soap.php SoapAction: http://secure.directtrack.com/api/soap.php/recordSale Style: rpc Input: use: encoded namespace: http://soapinterop.org// encodingStyle: http://schemas.xmlsoap.org/soap/encoding/ message: recordSaleRequest parts: client: xsd:string password: xsd:string order_id: xsd:string sale_amount: xsd:double campaign_id: xsd:int

Output: use: encoded namespace: http://soapinterop.org// encodingStyle: http://schemas.xmlsoap.org/soap/encoding/ message: recordSaleResponse parts: return: xsd:int

Namespace: http://soapinterop.org// Transport: http://schemas.xmlsoap.org/soap/http

Yani bunun için php kurmaya çalışıyorum ve yazdı:

$client2 = new SoapClient("http://secure.directtrack.com/api/soap.php?wsdl", array('trace'=> true));
$results2 = $client2->recordSale(array(
                                       "client" => 'my work's client #', 
                                       "password" => "password",
                                       "order_id"  => "2",
                                       "sale_amount"  => "1000",
                                       "campaign_id"  => "16",
                                       "affiliate_code"  => "CD35",
                                       "date"  => "2009-11-17",
                                       "sale_status"  => "",
                                       "optional_info"  => "fsq2",
                                       "misc"  => "9",
                                       "record_lead"  => "1"));
echo "<pre>";
    	print_r($results2);
echo "</pre>";

Ve basılmış olur dönüş değeri numarası "1". Şey parolayı değiştirmek veya gerekli alanları bırakırsanız, bu "1" değişmez olmasıdır. Ben tamamen yanlış bir şekilde bu konuda gidiyorum?

2 Cevap

Neler olduğunu görmek için kod bazı hata ayıklama-deyimleri eklemek misiniz on the wire?

$client2 = new SoapClient("http://secure.directtrack.com/api/soap.php?wsdl", array(
    'trace'=> true
));
$results2 = $client2->recordSale(array(
    "client" => // ...
));
echo "<pre>";
var_dump($client2-> __getLastRequestHeaders());
var_dump($client2-> __getLastRequest());
var_dump($client2-> __getLastResponseHeaders());
var_dump($client2-> __getLastResponse());
var_dump($results2);
echo "</pre>";

Bu size soap isteği üretilen içine ve sunucudan döndürülen SOAP yanıt içine biraz fikir verecektir.

Orada tek bir alıntı gibi görünüyor

'my work's client #'

... Hangi olmalıdır:

"my work's client #"

İkincisi, muhtemelen (ben hata ayıklama için Tutulma php kullanmak ama netbeans dahil olmak üzere orada birkaç orada) bir hata ayıklama aracı kullanmak gerekir. Sen bir hata ayıklayıcı ile daha fazla bilgi göreceksiniz.

Son olarak, yoluyla istek ve tepki gerçek XML görebilirsiniz:

$lastRequest = $client2->__getLastRequest();
$lastResponse = $client2->__getLastResponse();

... Eğer iz varsa beri açık.