source: spip-zone/_plugins_/commandes_paypal/commandes_paypal_pipelines.php @ 107918

Last change on this file since 107918 was 96091, checked in by spip.franck@…, 4 years ago

Quand il y a changement de borne de compatibilité, il faut faire un z+1 minimum pour que les sites utilisant le plugin détectent le changement.

  • j'en profite pour faire un up concernant les necessite en mettant les premières version qui sont sous la forme x.y.z et avec des bornes de compatibilité bien défini.

0.1.4 concernant paypal http://zone.spip.org/trac/spip-zone/browser/_plugins_/paypal/plugin.xml?rev=52581
0.4.6 concernant commandes http://zone.spip.org/trac/spip-zone/browser/_plugins_/commandes/plugin.xml?rev=52556
Cela permet à plugin.spip de fournir aux personnes qui regardent le xml des infos "fiable"

File size: 1.7 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6function commandes_paypal_traitement_paypal($flux){
7        // Si on est dans le bon cas d'un paiement de commande et qu'il y a une référence et que la commande existe toujours
8        if (
9                $flux['args']['paypal']['custom'] == 'payer_commande'
10                and $reference = $flux['args']['paypal']['invoice']
11                and $commande = sql_fetsel('id_commande, statut, id_auteur', 'spip_commandes', 'reference = '.sql_quote($reference))){
12                        $id_commande = $commande['id_commande'];
13                        $statut_commande = $commande['statut'];
14                        $statut_paypal = $flux['args']['paypal']['payment_status'];
15                        $prix_paypal = $flux['args']['paypal']['mc_gross'];
16
17                        // Si le statut Paypal est "Pending" on passe juste la commande en attente et on verra plus tard pour le reste
18                                if ($statut_paypal == 'Pending'){
19                                        $statut_nouveau = 'attente';
20                                }
21                                // Si Paypal est "Completed" on vérifie que le montant correspond au prix de cette commande
22                elseif ($statut_paypal == 'Completed'){
23                        $fonction_prix = charger_fonction('prix', 'inc/');
24                        $prix_commande = $fonction_prix('commande', $id_commande);
25
26                        // Si on a pas assez payé
27                        if ($prix_paypal < $prix_commande){
28                                $statut_nouveau = 'partiel';
29                        }
30                        // Sinon c'est bon
31                        else{
32                                $statut_nouveau = 'paye';
33                        }
34                }
35                // Sinon on dit que c'est en erreur
36                else{
37                        $statut_nouveau = 'erreur';
38                }
39
40                spip_log("commandes_paypal_traitement envoi vers instituer $id_commande-$statut_nouveau",'commandes');
41
42                //on institue la commande
43                $action = charger_fonction('instituer_commande', 'action');
44                $action($id_commande."-".$statut_nouveau);
45
46        }
47        return $flux;
48}
49
50?>
Note: See TracBrowser for help on using the repository browser.