Bonjour,
j'utilise le script proposé par un portail e-commerce bien connu pour automatiser la gestion des commandes avec mon propre Back office.
le script envoi des données xml, le serveur traite l'information et retourne un message, lui aussi au format xml.
Voici le script :
le résultat obtenu avec un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52function do_post_https_request($url, $data, $referrer=null) { $result = ''; // parsing the given URL $url_Info = parse_url($url); if(!isset($url_Info["port"])) {// If port is not specified in url, use standard (https=443) $url_Info["port"] = 443; } if($referrer) {// if null, use this script as referrer $referrer = $_SERVER["SCRIPT_URI"]; } foreach((array)$data as $key=>$value) { $values[] = "$key=".urlencode($value); } $data_string = implode("&",$values); // building POST-request: $request .= "POST ".$url_Info["path"]." HTTP/1.1\n"; $request .= "Host: ".$url_Info["host"]."\n"; $request .= "Referer: $referer\n"; $request .= "Content-type: application/x-www-form-urlencoded\n"; $request .= "Content-length: ".strlen($data_string)."\n"; $request .= "Connection: close\n"; $request .= "\n"; $request .= $data_string."\n"; if ($fp = fsockopen("ssl://" . $url_Info["host"], $url_Info["port"],$errno, $errstr, 2.0)) { fputs($fp, $request); $started = time; while((!feof($fp)) and ((time - $started) < 5)) { $result .= @fgets($fp, 128); } fclose($fp); } return $result; } $dateHeure = date('c'); // data to be sent $flux = array ( 'requests_xml' => '<?xml version="1.0" encoding="UTF-8"?><mmie version="2.0"><orders><acknowledged morid="'.$tab_cde_rdc[$i]['ID'].'" datetime="'.$dateHeure.'"><comment>Commande en cours</comment></acknowledged></orders></mmie>'); // please replace this url with the one furnished in your backoffice $sCalledurl = 'https://l_url'; // appel à la fonction do_post_https_request($sCalledurl,$flux) ;ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part echoest le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var_dump
je souhaite lire le contenu XML avec simpleXml sans tenir compte de l'entête, mais je ne sais pas vraiment comment m'y prendre ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15HTTP/1.1 200 OK Date: Mon, 12 Jul 2010 09:37:03 GMT Server: Apache Edge-control: no-store X-From: zm32 in D=36149 microseconds Content-Length: 182 Connection: close Content-Type: application/xml <?xml version="1.0" encoding="utf-8"?> <response><message type="error">KO</message> <request nb="1" status="KO"> <error>INVALID_REQUEST - PARAM ARE MISSING</error> </request> </response>
Il y a bien un gourou pour me sauver de cette impasse
Merci d'avance à tous
BJ







Répondre avec citation


Partager