Daaron schrieb:
Also im Shop hast du ein <form action="SAP-Ziel"><input type="submit" value="klick mich!">?
Code:
<a onclick="$('#sapoci').submit();"><img src=".../button_sapocicheckout.gif"></a>
<form action="..." method="post" id="sapoci">
<input type="hidden" name="..." value="...">
<input type="hidden" name="..." value="...">
<input type="hidden" name="..." value="...">
...
</form>
Stark verkürzt, aber ein stink normales Formular eben, das abgeschickt wird.
Daaron schrieb:
Dann ändere die Action auf "dein PHP cURL Script"... Das Formular, bzw. dessen POST-Request, enthält alle Informationen die du willst.
Und wie sag ich dem Browser dann, dass er die POST-Daten selbstständig an seine Rücksprungadresse schickt, mit anschließender Umleitung und was dahinter noch so kommt? Dass der Server den Request macht ist schön und gut, aber es bringt mir nichts, wenn der Server dann die Aufgabe des Clients "übernimmt" und im nicht zugänglichen SAP-System die Bestellung bestätigt. Der Client bleibt auf der Seite, sieht ne nette "Bestellung erfolgreich"-Meldung vom Shop und die Bestellung im SAP-System bleibt schwebend, wenn sie überhaupt registriert wird.
Das hatten wir vorhin doch schon, weshalb ich es nochmal erklärt habe.
Ein cURL-Request vom Server versucht den Request vom Client nachzuahmen und das wars. Hier wird immer wieder vergessen, dass der Client im Anschluss noch Sachen erledigen muss (die Bestellung konstrollieren, korrigieren, bestätigen, drucken usw.usf). Ich kann in einem cURL-Request keine Buttons klicken im fremden SAP-System!
Wenn der Browser/Mitarbeiter dagegen auf den Knopf drückt, das Script mir per Ajax-Request eine Kopie zukommen lässt und das selbe Formular dann an ans richtige Script schickt, plus der Client korrekt umgeleitet wird, kann der Mitarbeiter dann weiter seine Sachen erledigen, sodass die Bestellung auch ausgelöst wird, von seinem System aus. Ich kann mit einem cURL-Request keinen Request abschicken, indem steht, dass die Bestellung nun gedruckt und bestätigt wird. Schon gar nicht kann ich ihm sagen, dass die Bestellung als PDF gedruckt und (wahrscheinlich automatisiert) per Fax übermittelt wird.
Daaron schrieb:
Sobald du weißt, was (in etwa) geschickt wird, kann dein PHP-Script diese Daten auch problemlos in einen cURL-Request kapseln.
Ich weiß auch so, was dort verschickt wird. [1] Es bringt mir nur nichts, wenn der Client/Browser dann nicht zurück springt und dieser Mitarbeiter vor dem Client/Browser die Bestellung nicht abschließen kann, weil der Server versuchen will, die Rolle zu übernehmen.
[1]
http://www.festo.com/wiki/de/Open_Catalog_Interface_(OCI)#Standard_R.C3.BCckgabeparameter