Générer un numéro de commande en PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Générer un numéro de commande en PHP

Re: Générer un numéro de commande en PHP

par Ryle » 03 oct. 2016, 16:10

Bonjour,

Pour la problématique du tableau associatif, le principe est simple, il faut spécifier une clé et une valeur. La clé est généralement un nombre ou une chaine de caractères. La valeur peut quant à elle être aussi bien un nombre, une chaine, mais également une variable, voire même un autre tableau :)
$tab = array(
  'cle1' => 12,
  'cle2' => 'chaine',
  'cle3' => $variable
);
Il te suffit donc de générer/récupérer ton numéro de commande dans une variable et d'utiliser celle-ci dans ton tableau (attention, il faut des virgules pour séparer les couples clé/valeurs, pas un point-virgule comme dans ton exemple qui est une fin d'instruction).

Quant à la génération du numéro de commande, celui-ci doit être unique pour toutes tes transactions. Il faut donc oublier le random (qui, s'il a peu de chance de proposer deux fois la même valeur, ça peut quand même se produire), et utiliser une information qui t'es propre et te permettra de retrouver les articles concernés en cas de problème.
Il est donc important de conserver et d'associer ce numéro à ta commande. Le plus simple est effectivement d'utiliser un identifiant en base (unique et qui peut s'incrémenter facilement), ou de construire un numéro qui te permettra facilement de retrouver de quoi il s'agit (avec l'année, le mois, etc.). Comme ça si un jour paypal te contact en te disant qu'il y a eu un problème avec la commande 201610-467, tu pourras retrouver de quoi il s'agit, savoir si elle a été expédiée ou non, si elle a été retournée ou non... :)

Re: Générer un numéro de commande en PHP

par moogli » 03 oct. 2016, 11:22

salut,

tu peux tenter avec un time() pour tester le principe.
Par contre tu doit forcément avoir un numéro de commande dans ton système et c'est ça que tu dois utiliser (par exemple la clef primaire de la table qui contient les commandes).

tu peux aussi voir dans la doc de paypal s'ils n'ont pas un exemple concret.

@+

Re: Générer un numéro de commande en PHP

par xnooztv » 01 oct. 2016, 14:38

J'ai effectuer un strval, mais j'ai quand même ce message d'erreur:
Cette facture a déjà été payée. Pour en savoir plus, veuillez contacter le marchand.
Je ne comprend pas.. :/

Générer un numéro de commande en PHP

par xnooztv » 01 oct. 2016, 14:20

Salut,

J'ai suivi un tutoriel pour créer un système de paiement via Paypal.
Malheureusement, il faut que je génére un numéro de commande (simple: rand(5, 15) par exemple)
Mais, comment le faire dans un array? Car j'ai essayer (oui je suis con) mais sa ne fonctionne pas..
Voici le code en question:
$form = array('cmd' => '_xclick',//indique a paypal qu'il s'agit d'un bouton payer maintenant
        'business' => '[email protected]',//adresse du vendeur (qui doit recevoir le paiement)
        'item_name' => 'Serveur TS3 - 0Network',  //nom de la commande
        'item_number' => ''; //numero de la commande
        'currency_code' => 'EUR', //Devise
        'amount' => '3', //montant a payer
        'lc' => 'FR', //langue de l'interface paypal
        'cert_id' => 'CWMDRQWBTCDPY', //identifiant de certificat donné par paypal
        'custom' => 'Achat serveur ts3 sur 0network',//variable permettant de recevoir diverses informations sur la page de retour
        'invoice' => '', //valeur unique empechant les paiements accidentels (doit être differente pour chaque paiement)
        'charset' => 'utf-8',//Definit le charset utilisez
        'no_shipping' => '1', //Le client n'est pas invite a rentrer son adresse
        'cpp_header_image' => 'http://www.domaine.com/logo.jpg',//Adresse de l'image se trouvant en haut de la page de paiement (750x90px maxi) dans l'ideal cette image soit se trouver sur un serveur securisé pour eviter d'avoir un message indiquant que certaine parti de la page ne sont pas écurisée.
        'return' => 'http://0network.tk/create.php',//Adresse de retour lorsque l'utilisateur clique sur retouner a la boutique
        'cancel_return' => 'http://0network.tk/acheter.php',//Adresse de retour pour les annulations
        'no_note' => '1',//Empeche l'utilisateur de rajouter des commentaires a son paiement.
        'notify_url' => 'http://0network.tk/ipn.php'//Url appelee par paypal lors du paiement, cette page permettra le traitement des commandes payees.
    );
    //on enregistre le formulaire crypte dans une variable
    $encrypted = paypal_encrypt($form);
Je doit générer le item_number et le invoice aléatoirement et uniquement.

Comment faire?
Merci d'avance.