Changeset 81616 in spip-zone


Ignore:
Timestamp:
Mar 24, 2014, 10:01:09 AM (5 years ago)
Author:
cedric@…
Message:

finalisation : passage en mode test du plugin qui permet de payer a l'issu d'une saisie formidable
Il reste des imperfections : notamment permettre de retrouver la reponse liee a une transaction depuis la liste des transactions, mais le service rendu est au moins aussi bon que celui du plugin transactions qu'il vise a remplacer

Location:
_plugins_/formidablepaiement/trunk
Files:
4 added
2 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidablepaiement/trunk/formidablepaiement_pipelines.php

    r81583 r81616  
    1111
    1212if (!defined('_ECRIRE_INC_VERSION')) return;
    13        
    1413
     14/**
     15 * Mise en forme du formulaire de paiement post-saisie
     16 *
     17 * @param array $flux
     18 * @return array
     19 */
     20function formidablepaiement_formulaire_fond($flux){
    1521
     22        if ($flux['args']['form']=='formidable'
     23          AND $id = $flux['args']['args'][0]
     24          AND $flux['args']['je_suis_poste']){
    1625
    17 ?>
     26                if (($p1 = strpos($flux['data'],"<!--formidablepaiement-transaction-->"))!==false
     27                        AND ($p2 = strpos($flux['data'],"<!--//formidablepaiement-transaction-->"))!==false
     28                  AND $p2>$p1){
     29                        $length = $p2-$p1+39;
     30                        $form = substr($flux['data'],$p1,$length);
     31                        $flux['data'] = substr_replace($flux['data'],"",$p1,$length);
     32                        $flux['data'] .=
     33                                "<div class='formulaire_spip formulaire_paiement'>"
     34                                . $form
     35                                . "</div>";
     36
     37                        $css = find_in_path("css/formidablepaiement.css");
     38                        $flux['data'] .= "<style type='text/css'>@import url('$css');</style>";
     39                }
     40        }
     41        return $flux;
     42}
     43
     44/**
     45 * Ajouter le message de retour post-paiement
     46 * @param array $flux
     47 * @return array
     48 */
     49function formidablepaiement_bank_traiter_reglement($flux){
     50
     51        // si c'est une transaction associee a un form
     52        if ($id_transaction = $flux['args']['id_transaction']
     53          AND preg_match(",form\d+:,",$flux['args']['avant']['parrain'])
     54          AND $id_formulaires_reponse = $flux['args']['avant']['tracking_id']){
     55
     56                $reponse = sql_fetsel('*','spip_formulaires_reponses','id_formulaires_reponse='.intval($id_formulaires_reponse));
     57                $formulaire = sql_fetsel('*','spip_formulaires','id_formulaire='.intval($reponse['id_formulaire']));
     58
     59                $traitements = unserialize($formulaire['traitements']);
     60                if ($message = trim($traitements['paiement']['message'])){
     61                        include_spip("inc/texte");
     62                        $flux['data'] .= propre($message);
     63                }
     64        }
     65
     66        return $flux;
     67}
     68
     69function formidablepaiement_affiche_enfants($flux){
     70
     71        if ($flux['args']['objet']=='formulaires_reponse'
     72          AND $id_formulaires_reponse = $flux['args']['id_objet']){
     73
     74                $reponse = sql_fetsel('*','spip_formulaires_reponses','id_formulaires_reponse='.intval($id_formulaires_reponse));
     75
     76                $where = "parrain LIKE ".sql_quote('form'.$reponse['id_formulaire'].':%')." AND tracking_id=".intval($id_formulaires_reponse);
     77                $flux['data'] .= recuperer_fond("prive/objets/liste/transactions",array('where'=>$where));
     78        }
     79        return $flux;
     80}
     81
     82function formidablepaiement_affiche_milieu($flux){
     83        if ($flux['args']['exec']=='formulaires_reponses'
     84          AND $id_formulaire = $flux['args']['id_formulaire']){
     85
     86                $where = "parrain LIKE ".sql_quote('form'.$id_formulaire.':%');
     87                $flux['data'] .= recuperer_fond("prive/objets/liste/transactions",array('where'=>$where));
     88        }
     89        return $flux;
     90}
  • _plugins_/formidablepaiement/trunk/lang/formidablepaiement_fr.php

    r81583 r81616  
    2121        'traiter_paiement_option_tva_label' => 'Taux de T.V.A. (%)',
    2222        'traiter_paiement_option_message_label' => 'Message après paiement réussi',
    23         'traiter_paiement_necessite_explication' => 'Pour la prise en charge du paiement, il est nécessaire d\'enregistrer les résultats dans la base de données.'
     23        'traiter_paiement_necessite_explication' => 'Pour la prise en charge du paiement, il est nécessaire d\'enregistrer les résultats dans la base de données.',
     24
     25        'titre_reglement' => 'Règlement',
     26        'titre_reglement_montant' => 'pour un montant de <b>@montant@</b>',
    2427);
    2528
  • _plugins_/formidablepaiement/trunk/paquet.xml

    r81583 r81616  
    33        categorie="communication"
    44        version="1.0.0"
    5         etat="dev"
     5        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
    77        logo="prive/themes/spip/images/formidablepaiement-64.png"
    88        documentation=""
    9         schema="1.0.0" 
     9        schema="1.0.0"
    1010>
    1111
     
    1616        <licence>GNU/GPL</licence>
    1717
     18        <pipeline nom="formulaire_fond" inclure="formidablepaiement_pipelines.php" />
     19        <pipeline nom="bank_traiter_reglement" inclure="formidablepaiement_pipelines.php" />
     20        <pipeline nom="affiche_enfants" inclure="formidablepaiement_pipelines.php" />
     21        <pipeline nom="affiche_milieu" inclure="formidablepaiement_pipelines.php" />
     22
    1823        <necessite nom="bank" compatibilite="[2.6.1;2.*]" />
    1924        <necessite nom="formidable" compatibilite="[2.5.8;2.*]" />
  • _plugins_/formidablepaiement/trunk/traiter/paiement.php

    r81583 r81616  
    1919        $champs = saisies_lister_champs($saisies);
    2020
     21        // il faut d'abord avoir enregistre
     22        if (!isset($retours['traitements']['enregistrement'])
     23          OR !$id_formulaires_reponse = $retours['id_formulaires_reponse'])
     24                return $retours;
     25
     26        $montant_ht = $montant_ttc = 0;
     27        // recuperer le montant
     28
     29        // montant fixe/par defaut
     30        if ($options['montant_fixe']){
     31                $montant_ht = $montant_ttc = $options['montant_fixe'];
     32        }
     33        // saisie dans le formulaire
     34
     35        if ($options['champ_montant']
     36          AND $m = _request($options['champ_montant'])
     37          AND is_numeric($m)){
     38                $montant_ht = $montant_ttc = $m;
     39        }
     40
     41        // tva ?
     42        if (floatval($tva = $options['tva'])){
     43                if ($options['taxes']=="ttc"){
     44                        $montant_ht = $montant_ttc / ((100+$tva)/100);
     45                }
     46                if ($options['taxes']=="ht"){
     47                        $montant_ttc = $montant_ht * ((100+$tva)/100);
     48                }
     49        }
     50
     51        // preparer la transaction
     52        $options = array(
     53                'montant_ht' => $montant_ht,
     54                'id_auteur' => (isset($GLOBALS['visiteur_session']['id_auteur'])?$GLOBALS['visiteur_session']['id_auteur']:0),
     55                'parrain' => 'form'.$formulaire['id_formulaire'].':'.$formulaire['identifiant'],
     56                'tracking_id' => $id_formulaires_reponse,
     57        );
     58
     59        $inserer_transaction = charger_fonction("inserer_transaction","bank");
     60        $id_transaction = $inserer_transaction($montant_ttc, $options);
     61
     62        // inserer le form de paiement dans le message_ok
     63        // il sera deplace dans le html par le pipeline formulaire_fond
     64        if ($id_transaction
     65          AND $hash = sql_getfetsel("transaction_hash","spip_transactions","id_transaction=".intval($id_transaction))){
     66                $form = recuperer_fond(
     67                        "modeles/formidablepaiement-transaction",
     68                        array(
     69                                'id_transaction'=>$id_transaction,
     70                                'transaction_hash'=>$hash,
     71                                'id_formulaires_reponse' => $id_formulaires_reponse,
     72                        )
     73                );
     74
     75                $retours['message_ok'] = "<html><!--formidablepaiement-transaction-->$form<!--//formidablepaiement-transaction--></html>" . $retours['message_ok'];
     76
     77        }
    2178
    2279        // noter qu'on a deja fait le boulot, pour ne pas risquer double appel
Note: See TracChangeset for help on using the changeset viewer.