Ich habe derzeit ein großes Formular, das an unseren Zahlungsermächtigten geschickt wird (getan durch action="paymentautherizerURL"), jedoch bekomme ich nicht alle Informationen, die ich von ihnen benötige, wenn ich gehe, um die Transaktion in meinem zu speichern DB.
Ich muss entweder die Formulardaten abfangen, bevor sie eingereicht werden, damit ich sie in der Sitzung speichern kann (wir verwenden PHP / jQuery), oder ich habe es auch versucht, es an einen Vermittler zu senden, der die Informationen sammelt, die ich brauche. und dann jQuerys $ .post () verwenden, um die Daten neu zu erstellen und an den Autorisierer zu senden.
Der zweite Ansatz scheint jedoch nicht zu funktionieren, zumindest nach besten Kräften. Ich bin mir nicht sicher, ob ein $ .post die Sendeaktion des Formulars richtig emuliert, oder zumindest habe ich es nicht richtig gemacht.
%Vor%Normalerweise leitet der Autorisierungsvorgang den Benutzer auf eine von drei Seiten um (genehmigt, abgelehnt, Fehler), und unsere Website erledigt die Arbeit von dort aus. Allerdings ist es derzeit auf dieser Seite festgefahren, was mich glauben lässt, dass es nicht richtig gesendet wird.
Ich bin offen für alle Formen von Kritik, Ansätzen und Ideen. Vielen Dank im Voraus, und wenn weitere Informationen benötigt werden, lass es mich wissen!
Wie ändert man das Formular-Tag so, dass es ein onSubmit-Attribut enthält:
%Vor%Die save_data_function liest die Werte aus dem Formular und sendet sie an ein Skript auf Ihrem Server, um sie in einer Datenbank (oder wo auch immer) zu speichern. Ich benutze versteckte iframes, um diese Anfrage dem Benutzer verborgen zu lassen ...
%Vor%Sie können eine Zeitüberschreitung festlegen, wenn die Daten nicht schnell genug an die Datei "data_saving_script.extension" übergeben werden.
Da Ihr vorhandenes Beispiel bereits von JavaScript abhängig ist, könnten Sie die Daten mit AJAX speichern und dann mit einem traditionellen Submit den "echten" POST für das Zahlungsgateway durchführen.
Wenn Sie davon ausgehen, dass Ihr Formular id="foo"
hat, können Sie Folgendes tun:
anstelle von action="paymentautherizerURL"
sollten Sie es an Ihre eigene Seite senden:
jetzt in Ihrer process.php können Sie mit den Daten arbeiten (Validierung, Filterung ..)
Wenn Sie fertig sind, können Sie die Daten mit cURL
an den richtigen Ort senden >Mit curl können Sie Post-Daten senden und auf die Antwort warten, um zu entscheiden, welche Seite angezeigt werden soll.
Speichern Sie die Daten nicht in der Sitzung - es ist der falsche Ort, um Transaktionsdaten zu speichern.
Veröffentlichen Sie die Inhalte in einem Skript, das Sie hosten, schreiben Sie only das Zeug, das Sie in Ihrer Datenbank behalten müssen, generieren Sie eine Bestellreferenz dafür,
dann ....
wenn Sie einen Zahlungsprozessor (z. B. Paypal) verwenden
Umleiten zu einem zweiten Skript, das den Bestellverweis in der URL übergibt. Auf dem zweiten Skript fügen Sie ein Formular mit versteckten Feldern ein, die nur die von Ihrem Zahlungsverarbeiter verlangten Details und etwas Javascript enthalten, um das Formular automatisch zu submitieren und eine Nachricht an den Benutzer wie 'Verbindung mit Paypal ...'
Wenn Sie Händlerdienste zur Autorisierung der Zahlung verwenden
bevor Sie die Ausgabe aus dem Landing-Skript generieren, senden Sie die Details an Ihren Autor (zB) curl und parsen Sie die Antwort, notieren Sie die Antwort zur Bestellung in der Datenbank und geben Sie eine entsprechende Nachricht an den Kunden über die Webseite
Tags und Links jquery php forms post beanstream