IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoyer un ordre Webservice en PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut Envoyer un ordre Webservice en PHP
    Bonjour à tous,

    Encore une petite question svp.
    J’ai l’habitude de récupérer via un WebService et des API des données sous forme de tableau.
    En revanche j’ai une colle et franchement je ne m’en sors pas.
    Je dois cette fois pour le même WebService lui faire exécuter une tâche à partir de paramètres que je dois lui fournir à travers aussi une API.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ini_set('soap.wsdl_cache_enabled', '0');
    $client = new SoapClient("https://webservice.MonWebService.com/wagering?wsdl");
    $retour = $client->MonAPI(array('USER','PASSEWORD',POINTEUR,PARAM1, PARAM2));
    Les paramètres de l’API sont les suivants,

    String[] MonAPI(string user, string password, int Pointeur, int param1,
    String[] param2, float amount, string serial)

    String named : User
    String named : Password
    Int named : Pointeur de base de données
    Int named : Type de données
    A list of string named : ‘1-2-3’
    Float named : Amount
    String named : serial (optinal)
    Voilà si quelqu’un peut m’aider sur ce sujet ?
    Merci d'avance.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    Bonjour,

    Désolé je n'ai pas très bien compris le problème exactement, tu n'arrives à faire appel à la fonction soap ou les paramètres ne sont pas transmit correctement ? .

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Re-Bonjour et vraiment désolé de te déranger une nouvelle fois.
    Mais pas facile à prendre en main PHP lorsqu'on est plus développeur VB.
    Bref,
    En fait la connexion au Webservice est bonne, juste je sais pas vraiment comment donner un ordre d'exécution à l'api et ses paramètres comme je l'indique.

    En revanche j’arrive bien à recevoir des données via le même WebService mais à lui demander d’exécuter une tâche !
    Merci

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    En effet VB et php sont un peu différents xD. Mais soit ce forum est fait pour aider ceux qui ont des soucis .

    Alors après de ce que j'en sais tu as l'air d'utiliser la bonne méthode pour appeler ta méthode soap :/. Et si cette fonction prend bien un tableau comme paramètre à priori cela devrait fonctionner :/.
    Est ce qu'une erreur quelconque est renvoyée par la méthode ?
    D'ailleurs, lors de ton développement, tu devrais te connecter à ton webservice avec une ligne dans ce style :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $client = new SoapClient("https://webservice.MonWebService.com/wagering?wsdl", array('trace' => 1,
            'exceptions' => true));

    Comme cela tu peux déjà récupérer les exceptions lancées avec un try catch si cela ce produit et ensuite tu peux surtout récupéré la dernière réponse soap avec $client->__getLastResponse().

    Je ne sais pas si cela te donnera plus d'informations mais ça peut toujours être utile .

    Et en dernier une autre façon de faire appel à une méthode soap : http://www.php.net/manual/fr/soapclient.soapcall.php (je te donne directement le lien vers la doc car cela sera plus complet qu'une explication je pense )

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    OK je vais voir ça.
    Merci pour aide.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    J'ai fait un truc du genre, aucune erreur mais rien ne marche ?
    Franchement je vois pas.


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ini_set('soap.wsdl_cache_enabled', '1');
    	$client = new SoapClient("https://webservice.MonWebService.com/wagering?wsdl");
     
    	$wpointeur=123444;
    	$wtypeb=1;
    	$wtype='1';
    	$wmt='1.0';
    	$wserial='';
     
    	$client->__soapCall("MonAPI", $wpusr,$wpwd,$wpointeur,$twypb,$wtype,$wmt,$wserial);

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    L'utilisation de soapCall demande un tableau pour faire passer tes arguments à la fonction Soap .

    Petit passage de la doc
    arguments
    Un tableau d'arguments à passer à la fonction. Cela peut être un tableau associatif ou ordonné. Notez que la plupart des serveurs SOAP nécessite des noms de paramètres, auquel cas, ce doit être un tableau associatif.
    Après pour le coup débuggué des requêtes soap c'est en effet assez peu évident :/. Personnellement, j'y vais à coups de décomposition des étapes et validation avec des fonctions basiques afin de voir si tout fonctionne et ensuite je force avec les véritables fonctions dont j'ai besoin .

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Salut,

    Un petit mot pour te dire que tu avais raison et que ça marche impec.
    Voici le code au cas ou !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $params = array 'login'=>$wpusr,'password'=>$wpwd,'ID'=>$wd,'type'=>$wtype,'combi'=>$wcombi,'amount'=>$wmt,'serialmachine'=>$wserial);
     
    $client->__soapCall('MonApi', array('parameters' => $params));

    En revanche aurais tu la solution pour récupérer le message du soapCall pour savoir si il a bien terminé, erreur etc...pour gérer ensuite la chose.

    Merci pour ton aide très efficace.

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    Salut .

    Parfait si cela marche , pour récupérer la valeur de soapCall normalement un simple :
    $value = $client->__soapCall(...); devrai fonctionner non ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Non.
    En fait j'ai fait le simple test suivant,
    Return $client;

    La page plante ?

  11. #11
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    Euh un return $client; va te retourner l'objet soap et pas le résultat du soapCall. Pour avoir le résultat tu dois retourner la variable $value que j'ai mis dans mon post précédent .

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Oui oui j'ai fait le test avec un return $value comme indiqué mais pareil.
    Page du navigateur plante ?
    Merci

  13. #13
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    Quand tu dis
    Page du navigateur plante ?
    c'est une question ou une affirmation ? xD.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Une affirmation pour l'avoir testé.
    Merci beaucoup

  15. #15
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    Ok donc si j'ai bien compris. L'appel soap fonctionne et la fonction du webservice fait bien son effet. Sans le return la page plante aussi ? si ce n'est pas le cas essaye de faire un var_dump($value);

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Points : 68
    Points
    68
    Par défaut
    Ecoute j'ai contoruné le problème.
    Je une variable qe j'initialise à la valeur 'OK'

    En fin je fais un return de cette variable et si j'ai OK le truc a bien marché sinon vu que le navigateur est planté j'ai un retour de vide donc erreur !
    ça marche bien.

    J'ai quand même tester var_dump.
    Encore Merci

Discussions similaires

  1. Extraire données d'un webservice , xml , php ..
    Par Lettue dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2006, 19h24
  2. [Mail] Comment envoyer un beau email en php
    Par Alain15 dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2006, 15h11
  3. Réponses: 2
    Dernier message: 19/04/2006, 13h43
  4. [Mail] Envoyer des mails simplement avec PHP
    Par mailou dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2006, 17h21
  5. Créer un Webservice en PHP
    Par Amnesiak dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2005, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo