IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[PayPal] Demande Aide pour API Paypal NVP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [PayPal] Demande Aide pour API Paypal NVP
    Bonjour, tout d'abord je suis pas sur d'être dans la bonne section, si je suis dans la mauvaise section veuillez m'excuser.
    Voilà mon problème : j'ai besoin d'utiliser l'API Paypal NVP, donc j'ai mis au point un script pour simuler l'achat d'un produit de prix 62.00 € :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $prixrequete = 23.00; //La déclaration de la variable du prix avec 2 décimales séparées par un point comme l'exige l'API Paypal NVP.
    La requete sous forme d'URL qui sera lancée ensuite via Curl se présente comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $requete = 'https://api-3t.sandbox.paypal.com/nvp?';
    $requete = $requete.'VERSION='.$version.'&USER='.$user.'&PWD='.$pass.'&SIGNATURE='.$signature;
    $requete = $requete."&METHOD=SetExpressCheckout".
    			"&CANCELURL=".urlencode("http://XXXXX.com/index.php?opt=cancelpaypal").
    			"&RETURNURL=".urlencode("http://XXXXX.com/index.php?opt=successpaypal").
    			"&AMT=".$prixrequete. //C'est la que le prix est défini dans la requete Paypal.
    			"&CURRENCYCODE=EUR".
    			"&INVNUM=".urlencode($rand).
    			"&DESC=".urlencode($description).
    			"&LOCALECODE=FR".
    			"&HDRIMG=".urlencode("http://www.XXXXX.com/images/banner.png");
    Alors le seul truc qui ne fonctionne pas c'est le prix, a chaque fois il est fixé à 10.00 €, je ne sais pas pourquoi, pourtant tous les autres trucs marchent comme l'image de bannière, la description...
    Voilà le resultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    Array
    (
        [TOKEN] => EC-6S849552XL839273E
        [SUCCESSPAGEREDIRECTREQUESTED] => false
        [TIMESTAMP] => 2010-01-29T20:59:44Z
        [CORRELATIONID] => 91ecd706cb3d0
        [ACK] => Success //Succès de l'achat
        [VERSION] => 61
        [BUILD] => 1157804
        [TRANSACTIONID] => 21X83276TM306413L
        [TRANSACTIONTYPE] => expresscheckout
        [PAYMENTTYPE] => instant
        [ORDERTIME] => 2010-01-29T20:59:43Z
        [AMT] => 10.00
        [FEEAMT] => 0.59
        [TAXAMT] => 0.00
        [CURRENCYCODE] => EUR
        [PAYMENTSTATUS] => Completed
        [PENDINGREASON] => None
        [REASONCODE] => None
        [PROTECTIONELIGIBILITY] => Ineligible
        [INSURANCEOPTIONSELECTED] => false
        [SHIPPINGOPTIONISDEFAULT] => false
    )
    Array
    (
        [TOKEN] => EC-6S849552XL839273E
        [GIFTWRAPAMOUNT] => 0.00
        [CHECKOUTSTATUS] => PaymentActionCompleted
        [TIMESTAMP] => 2010-01-29T20:59:44Z
        [CORRELATIONID] => 3394517e5a400
        [ACK] => Success
        [VERSION] => 61
        [BUILD] => 1157804
        [EMAIL] => XXXXXXXX@XXX.XX
        [PAYERID] => XXXXXXXXXXXX
        [PAYERSTATUS] => verified
        [FIRSTNAME] => Test
        [LASTNAME] => User
        [COUNTRYCODE] => FR
        [SHIPTONAME] => Test User
        [SHIPTOSTREET] => Av. de la Pelouse, 87648672 Mayet
        [SHIPTOCITY] => Paris
        [SHIPTOSTATE] => Alsace
        [SHIPTOZIP] => 75002
        [SHIPTOCOUNTRYCODE] => FR
        [SHIPTOCOUNTRYNAME] => France
        [ADDRESSSTATUS] => Unconfirmed
        [CURRENCYCODE] => EUR
        [AMT] => 10.00 //Voila le prix était fixé a 62.00 et la il apparait a 10.00 et le compte a été crédité de 10.00 non pas de 62.00 comme prévu ce qui est plutot embetant !
        [SHIPPINGAMT] => 0.00
        [HANDLINGAMT] => 0.00
        [TAXAMT] => 0.00
        [DESC] => Ceci est un produit TEST
        [INVNUM] => 10304260711132279592
        [INSURANCEAMT] => 0.00
        [SHIPDISCAMT] => 0.00
        [TRANSACTIONID] => 21X83276TM306413L
        [INSURANCEOPTIONSELECTED] => false
        [SHIPPINGOPTIONISDEFAULT] => false
    )
    Bien entendu j'ai fait tous ces tests dans la sandbox Paypal.
    Et après de très nombreux essais je ne trouve pas d'ou vient le probleme, ni comment le regler !
    En esperant que vous pourrez m'aider !

    Merci à vous !

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    si tu utilises une variable de type "nombre flottant" seul "23" sera envoyé. Affiche la requête pour vérifier
    si tu veux envoyer les 2 chiffres derrière la virgule tu dois mettre une chaine de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prixrequete = '23.00';
    tu peux obtenir cette chaine avec la fonction http://php.net/number_format
    GNAP !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci d'avoir répondu, j'ai essayé en mettant comme tu m'as dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $prixrequete = '23.00';
    Mais toujours le même probleme ca crédite 10 € au lieu de 23.00 €
    Et j'ai vérifié en affichant la requête je vois cette requete qui est la bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    https://api-3t.sandbox.paypal.com/nvp?VERSION=61&USER=XXXXX.XXX.XX&PWD=XXXXXXXXXXX&SIGNATURE=A3c0s0FT8xw5gj-CySi8DW5xIixBA5AoxmDyQG5MuLFM774mZply5Oni&METHOD=SetExpressCheckout&CANCELURL=http%3A%2F%2FXXXXX.com%2Findex.php%3Fopt%3Dcancelpaypal&RETURNURL=http%3A%2F%2FXXXXX.com%2Findex.php%3Fopt%3Dsuccesspaypal&AMT=23.00&CURRENCYCODE=EUR&INVNUM=5139765661983632356&DESC=Ceci+est+un+produit+TEST&LOCALECODE=FR&HDRIMG=http%3A%2F%2Fwww.XXXXXX.com%2Fimages%2Fbanner.png

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je me permet d'upper ce topic car j'ai exactement le même problème, j'ai beau mettre 50.00 à l'attribut AMT, rien n'y fait, la transaction sera toujours de 10€. Y aurait t-il une limitation du sandbox de Paypal sur le montant de la transaction ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je me permet d'upper le topic également. J'ai le même soucis, et ce pour n'importe quelle version de l'API utilisée (que j'utilise AMT ou PAYMENTREQUEST_0_AMT). Je ne pense pas qu'il y ait une limite sur la sandbox car en utilisant l'intégration HTML à la place de l'API, le montant est correct.

    Quelqu'un a-t-il trouvé la solution ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je viens d'essayer en ajouter les variables PAYMENTREQUEST_0_ITEMAMT et L_PAYMENTREQUEST_0_AMT0, on a bien le prix qu'on souhaite prélever qui s'affiche lors du lancement de l'API, j'ai eu une lueur d'espoir, mais malheureusement, toujours ces 10 euros au final... c'est vraiment de la m*rde...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je réponds, si ça peut aider d'autres personnes

    En fait, le problème venait du fait que lors du 2e appel à l'API (DoExpressCheckoutPayment), on passe également le montant en paramètre. Il faut donc bien veiller à ce que le montant qu'on passe est le même que celui passé lors du SetExpressCheckout.

    Bonne journée !

Discussions similaires

  1. developpeur c++ demande aide pour création d'un pieton 3D
    Par fumidu dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 29/05/2006, 18h51
  2. Réponses: 4
    Dernier message: 13/03/2006, 16h21
  3. HELP! Demande aide pour petit site à réaliser en ASP et JS
    Par itachi64 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/03/2006, 10h06
  4. Réponses: 2
    Dernier message: 11/03/2006, 20h34
  5. demande aide pour XML/XSL
    Par Jarod51 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/01/2006, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo