Wie erhält man POST-Daten in django
Ich versuche schon die Integration eines payment-Gateways in die "meine Website" in django.
Ich habe Probleme dabei, die response-Daten aus dem payment-gateway.
Den payment-gateway-Beispiel Dokumentation für php, die wie folgt aussieht :
$ErrorTx = isset($_POST['Error']) ? $_POST['Error'] : ''; //Error Number
$ErrorResult = isset($_POST['ErrorText']) ? $_POST['ErrorText'] : ''; //Error message
$payID = isset($_POST['paymentid']) ? $_POST['paymentid'] : ''; //Payment Id
In der Ansicht für die url, die der Zahlungs-gateway umgeleitet wird, um nach der Eingabe der Kreditkarten-details etc, ich bin die Kontrolle, wenn es eine GET - if request.method == "GET"
und übergeben der Anforderung an eine Funktion. Wenn ich die debug-Anfrage, sehe ich eine leere Abfrage, dict. und wenn ich versuche so etwas wie res = Anfrage.GET['paymentid'] bekomme ich eine Fehlermeldung, die sagt, es gibt keinen Schlüssel namens " paymentid.
Übersehe ich hier etwas offensichtliches? Ich bin noch ziemlich neu in django, so bin ich sicher, dass ich was falsch mache.
InformationsquelleAutor der Frage hydeous | 2011-09-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
res = request.GET['paymentid']
erhöhen wird eineKeyError
wennpaymentid
ist nicht in den Daten.Ihrem Beispiel-php-code überprüft, um zu sehen, ob
paymentid
ist in der POST-Daten, und legt$payID
" ansonsten:Das äquivalent in python ist die Verwendung der
get()
Methode mit einem Standard-argument:Sieht es aus, als wenn das problem ist nicht der Zugriff auf die POST-Daten, aber das es gibt keine POST-Daten. Wie sind Sie mit dem Debuggen? Sind Sie mit Ihrem browser, oder ist es das payment-gateway den Zugriff auf Ihre Seite? Es wäre hilfreich, wenn Ihr Eure Ansicht.
Sobald Sie verwalten, um uns einige wenige post-Daten auf Ihrer Seite, es sollte nicht allzu schwierig zu konvertieren, die Beispiel-php-python.
InformationsquelleAutor der Antwort Alasdair
Sollten Sie Zugriff auf die POST Wörterbuch auf das request-Objekt.
InformationsquelleAutor der Antwort kafuchau