Changeset 47625 in spip-zone


Ignore:
Timestamp:
May 10, 2011, 9:56:29 AM (10 years ago)
Author:
rastapopoulos@…
Message:

Il ne faut pas vérifier le statut du paiement avant d'envoyer aux traitements ! En effet il ya plein de statuts possibles qui ne sont pas des erreurs non plus. Notamment "Pending" (en attente) qui ensuite peut être validé par le marchand sur son compte.

Ce sont donc aux plugins utilisant IPN (comme "commandes_paypal") de gérer les différents statuts et faire telle ou telle action en conséquence.

Location:
_plugins_/paypal
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/paypal/action/paypal_ipn.php

    r47607 r47625  
    2626        // retour peut etre "INVALID" ou "VERIFIED".
    2727        spip_log($retour,'paypal');
    28 
    29         if ($retour == "VERIFIED") {
    30 
    31                 // verifications :
    32                 // 1) paiement ok
    33                 // 2) email compte paypal ok
    34                 // 3) identifiant unique de transaction
    35                 if (($datas['payment_status'] == 'Completed')
    36                 and ($datas['receiver_email'] == $conf['api'][$envr]['account'])) {
    37                         // 3 ... on suppose que c'est OK
    38                         // on pourrait imaginer creer une table speciale pour les transactions
    39                         // mais bon...
    40                        
    41                         spip_log('Retour de Paypal vérifié, on peut passer aux traitements','paypal');
    42                         // c'est tout bon, on envoie ca au pipeline pour traitements
    43                         pipeline('traitement_paypal', array(
    44                                 'args'=>array(
    45                                         'paypal' => $datas,
    46                                         'test' => (($envr == 'test') or ($datas['test_ipn'] == 1)),
    47                                 ),
    48                                 'data'=>'')
    49                         );
    50                 }
     28       
     29        // Si c'est bon, on vérifie aussi que l'email soit celui configuré dans le compte
     30        if (
     31                $retour == "VERIFIED"
     32                and $datas['receiver_email'] == $conf['api'][$envr]['account']
     33        ) {
     34                spip_log('Retour de Paypal vérifié, on peut passer aux traitements','paypal');
     35                // c'est tout bon, on envoie ca au pipeline pour traitements
     36                pipeline('traitement_paypal', array(
     37                        'args'=>array(
     38                                'paypal' => $datas,
     39                                'test' => (($envr == 'test') or ($datas['test_ipn'] == 1)),
     40                        ),
     41                        'data'=>'')
     42                );
    5143        }
    5244
  • _plugins_/paypal/plugin.xml

    r47609 r47625  
    55        </auteur>
    66        <licence>GPL v3</licence>
    7         <version>0.1.0</version>
     7        <version>0.1.1</version>
    88        <icon>img/paypal_logo.gif</icon>
    99        <options>paypal_options.php</options>
Note: See TracChangeset for help on using the changeset viewer.