2009-11-19 7 views
0

Avant de poser ma question, je tiens à remercier tout le monde pour le débordement de pile. Je suis vraiment étonné de voir à quel point tout le monde est utile et combien j'ai appris au cours de la dernière année en posant des questions quand je suis confus.Question très basique sur la soumission de données à l'API en utilisant SOAP & PHP

J'essaie d'utiliser la fonction recordSale sur cette API pour quelqu'un de mon travail fait affaire avec, il est un moyen d'enregistrer les ventes (d'où le nom):

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

Nom: recordSale Reliure: DirectTrackWebServicesBinding Endpoint: http://secure.directtrack.com/api/soap.php SoapAction: http://secure.directtrack.com/api/soap.php/recordSale style: rpc entrée: utilisation: encodées noms rythme: http://soapinterop.org// encodingStyle: http://schemas.xmlsoap.org/soap/encoding/ message: recordSaleRequest parties: client: xsd: string Mot de passe: xsd: string order_id: xsd: string MONTANT_VENTE: xsd: double campaign_id: xsd: int

Sortie: utilisation: namespace codé: http://soapinterop.org// encodingStyle: http://schemas.xmlsoap.org/soap/encoding/ message: recordSaleResponse parties: retour: xsd: int

Espace de noms: http://soapinterop.org// Transport: http://schemas.xmlsoap.org/soap/http

Je suis en train de mettre en place le php pour cela et je l'ai écrit:

$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>"; 

Et la valeur de retour qui est imprimé est le numéro « 1 ». La chose est que ce "1" ne change pas si je change le mot de passe ou omets les champs obligatoires. Est-ce que je vais à ce sujet dans le mauvais sens?

+0

Si vous avez une réponse pour cela et vous savez C# coding.can vous pouvez donner cette solution dans C# .bcoz im face même problème pour le même url.thanx à l'avance – user1562231

+0

pouvez-vous s'il vous plaît dites-moi ce que peut b la valeur du client. pls vous pouvez dire que atleast.and mot de passe est de connexion d'affiliation? – user1562231

Répondre

0

Pourriez-vous s'il vous plaît ajouter quelques instructions de débogage à votre code pour voir ce qui se passe sur le fil?

$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>"; 

Cela vous donnera un aperçu de la requête SOAP généré et dans la réponse SOAP étant renvoyé par le serveur.

+0

si vous avez la réponse de ceci, pouvez-vous s'il vous plaît m'aider avec ceci. J'ai le même problème avec la voie directe. Je m obtenant 500 (erreur de serveur interne). Mon appel de savon fonctionne bien, j'ai examiné avec mon webservice, mais Je suppose que mes valeurs de paramètre sont fausses. Qu'est-ce que b peut être la valeur du client? et le mot de passe sera b de notre mot de passe de connexion de partenaire d'affiliation? – user1562231

1

On dirait que vous avez une seule offre là

'my work's client #' 

... qui devrait être:

"my work's client #" 

Deuxièmement, vous devriez probablement utiliser un outil de débogage (utiliser PHP pour Eclipse débogage mais il y en a plusieurs là-bas y compris netbeans). Vous verrez plus d'informations avec un débogueur.

Enfin, vous pouvez voir le XML réel de la demande et la réponse via:

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

... puisque vous avez trace activée.

+0

oh la citation unique était juste moi changer le login et le mot de passe de mon travail afin que je puisse poster ici. Merci de votre aide. –

Questions connexes