Web Service - Spécifier le service désiré

archi32 Messages postés 14 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 22 juin 2007 - 19 juin 2007 à 12:11
archi32 Messages postés 14 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 22 juin 2007 - 22 juin 2007 à 08:34
Bonjour,

Voici mon souci:
Je dois réaliser un paiement en ligne en Flash. Je dois le faire via Web Service.
Je précise que je ne suis pas du tout spécialiste des web service, ça va se voir...
La banque me donne ce genre de chose:
URL Web Service : https://w3.laBanque.com/tpv/TLPV_pub_rpcrouter ($urlWebService)
Nom du service : myService
Nom de l'operation : myOperation
Paramètres : mesParametres (String formaté en XML)
J'imagine que "TLPV_pub_rpcrouter" joue le rôle de "porte d'entrée".

Dans les exemples d'utilisations qu'ils donnent (pas d'exemple sous Flash, trop facile sinon), ça donne un truc du genre (en php):
$client = new soapclient($urlWebService,false,$proxyhost, $proxyport, $proxyusername, $proxypassword, $timeout);
$respuesta = $client->call($myOperation, $mesParametres, 'myService', '');
L'action call permet de spécifier le service demandé.

Or en Flash, j'ai besoin de l'URL du Web Service directement, du genre:
var myWebService = new WebService("https://w3.laBanque.com/tpv/myService.wsdl");
Le constructeur de cette classe (ou WebServiceConnector) ne prévoie pas le passage du nom du service en argument comme la classe Service de Remoting par exemple.
Je ne peux pas non plus faire:
var myWebService = new WebService("https://w3.laBanque.com/tpv");
myWebService.Service = "myService";
...
(Tout ça à moins de me tromper, ça m'arrangerait...)

J'ai donc demandé à la banque l'url d'accès direct au web service, la banque me répond que ce fichier n'est pas accessible depuis internet
(ça me parait faux ?? c'est pas le principe du web service ? la gateway permet d'empêcher l'accès direct ?)

Evidemment, je précise que j'ai essayé d'acceder au web service directement aux url :
https://w3.laBanque.com/tpv/TLPV_pub_rpcrou.../myService.wsdl
https://w3.laBanque.com/tpv/myService.wsdl

Bah la question, c'est : une idée ?
Merci !

2 réponses

archi32 Messages postés 14 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 22 juin 2007
22 juin 2007 à 08:31
Au final, j'ai trouvé une solution, pas celle que je voulais utiliser au départ, mais bon ça fonctionne !
Donc je viens la déposer ici :

[as]
// Executer le Web Service
var Enviar = new LoadVars();
Enviar.peticion = peticion;
var Recibir = new LoadVars();
Recibir.onLoad = function(success){
    if(success){
        respuesta_xml = new XML(Recibir.res);
        play();
    } else {
        trace("ERROR")
    }
}
Enviar.sendAndLoad(ruta + "php/proceso_pago_wsdl.php",Recibir, "POST");
/as

et dans le php:
[php]
<?
require_once('lib/nusoap.php');

// init
$peticion = $_POST["peticion"];
$urltpvSOAPSegura='https://w3.laBanque.com/.../TLPV_pub_rpcrouter';
$opPago = "procesarPago";
$timeoutConexionSOAP = 5000;

// Appel du Web Service
$respuesta2 = getOperacion($peticion, $urltpvSOAPSegura, $opPago, $timeoutConexionSOAP);

// envoi du resultat au flash
$res=$respuesta2;
echo "&res=".$res."&";

#################################################################################
function getOperacion($peticion, $urlSOAP, $operacion, $timeout){
    $proxyhost = '';
    $proxyport = '';
    $proxyusername = '';
    $proxypassword = '';
    $client = new soapclient($urlSOAP,false,$proxyhost, $proxyport, $proxyusername, $proxypassword, $timeout);
    $err = $client->getError();
    $param = array(
         'mensaje' => $peticion
    );
    $respuesta = $client->call($operacion, $param, 'PeticionTPVSoapS', '');
    return $respuesta;
}
?>
/php

Et tout fonctionne !!
Alors que la réponse du web service est asynchrone...et la j'avoue que je ne comprends pas bien, le code entre :
"// Appel du Web Service"
et
"// envoi du resultat au flash"
se met comme en pause ??

m'enfin, ça marche...
a+
0
archi32 Messages postés 14 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 22 juin 2007
22 juin 2007 à 08:34
Sorry, c'est un peu sale le code...les balises sont pas correctes
Je ferme pas encore le billet, j'ai trouvé une solution pas LA solution...
glop
0