Wie kann ich die Werte eines Formulars abfangen, bevor ich es sende?

8

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!

    
sab0t 03.06.2011, 04:56
quelle

5 Antworten

3

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.

    
Jasper 10.06.2011, 17:26
quelle
2

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:

%Vor%     
justis 15.06.2011 06:55
quelle
1

anstelle von action="paymentautherizerURL" sollten Sie es an Ihre eigene Seite senden:

%Vor%

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.

    
Ibu 03.06.2011 05:05
quelle
0

Keine Notwendigkeit, die Daten in Sitzungen zu setzen, bei der Übergabe des Formulars eine Validierungsfunktion genannt, in der alle Validierung durchgeführt wurde und dann die Daten in der process.php mit ajex, dann wird es auf dieser Seite behalten ...

    
Harsh 03.06.2011 05:56
quelle
0

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     

symcbean 03.06.2011 08:56
quelle

Tags und Links