Comment recevoir des données POST dans django
J'ai essayé d'intégrer une passerelle de paiement sur mon site en django.
Je vais avoir de la difficulté à obtenir les données de réponse à partir de la passerelle de paiement.
La passerelle de paiement a des exemples de documents pour php qui ressemble à ceci :
$ErrorTx = isset($_POST['Error']) ? $_POST['Error'] : ''; //Error Number
$ErrorResult = isset($_POST['ErrorText']) ? $_POST['ErrorText'] : ''; //Error message
$payID = isset($_POST['paymentid']) ? $_POST['paymentid'] : ''; //Payment Id
Dans l'affichage de l'url de la passerelle de paiement est de la redirection vers après avoir entré les détails de la carte, etc, je vérifie si c'est une if request.method == "GET"
et ensuite transmettre la demande à une fonction. Quand je debug la demande, je peux voir une requête vide dict. et si je tente quelque chose comme res = request.GET['paymentid'] j'ai une erreur qui dit il n'y a pas de clé appelée paymentid.
Ai-je raté quelque chose d'évident? Je suis encore assez nouveau pour django, donc je suis sûr que je suis en train de faire quelque chose de mal.
source d'informationauteur hydeous
Vous devez vous connecter pour publier un commentaire.
res = request.GET['paymentid']
de soulever unKeyError
sipaymentid
n'est pas dans les OBTENIR les données.Votre exemple de code php vérifie si
paymentid
est dans le POST de données, et des ensembles de$payID
" sinon:L'équivalent en python est d'utiliser le
get()
méthode avec un argument par défaut:Il semble que si le problème n'est pas d'accéder au POSTE de données, mais qui il n'y a pas de données POST. Comment êtes-vous déboguez? Êtes-vous à l'aide de votre navigateur, ou est-ce la passerelle de paiement accéder à votre page? Il serait utile si vous avez partagé votre point de vue.
Une fois que vous êtes à la gestion de soumettre des données à votre page, il ne devrait pas être trop difficile à convertir l'exemple de php à python.
Vous devriez avoir accès à la POST dictionnaire sur l'objet de la requête.