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

PHP & Base de données Discussion :

mise en place d'un moyen de paiement


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2022
    Messages : 89
    Par défaut mise en place d'un moyen de paiement
    Bonjour
    Je suis confrontée a un soucis.
    Ma société veux mettre un paiement en ligne concernant des factures.
    Elle veux que je l'intègre sur le site web de celle ci .
    Ce site web est juste un simple site vitrine qui a été fait par WordPress.
    C'est pas l'intégré qui me soucis actuellement mais la rédaction de ce fichier.
    La banque m'a bien fourni une documentation sur la mise en place via PHP sauf que je ne comprend pas une chose .
    Sur leur fichier, sur le formulaire, il n'y a qu'un bouton validé , ts les autres champs sont cachés.
    Le problème c'est que mon chef veux que le client rentre son nom, son email, la référence de la facture, la référence facture et le montant de la facture qu'il veux régler.
    Je ne trouve aucun explication pour ces ajouts de ligne.
    Dois je créer une base de données?
    Je n'ai trouvé aucun tutos sur google
    J'ajouterai bien ses lignes dans le formulaire.
    A moins que je dois faire un formulaire a part?
    Si une personne a déjà du mettre ce système en place , j'aimerai bien un peu d'aide
    Je ne vous mets que le fichier du formulaire .
    J'améliorai le formulaire une fois que mes fonctionnalités marchent

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
     
     
    <?php
     
    // --------------- D�CLARATION DES VARIABLES ---------------
     
    $pbx_site = '9999999';															//variable de test 9999999
    $pbx_rang = ' 95';															//variable de test 95
    $pbx_identifiant = '123456789';										//variable de test 123456789
    $pbx_total = "200";															//variable de test 200
    // Suppression des points ou virgules dans le montant						
    $pbx_total = str_replace(",", "", $pbx_total);
    $pbx_total = str_replace(".", "", $pbx_total);
     
    $pbx_cmd = 'cmd_test1';														//variable de test cmd_test1 ( référence commande coté commerçant)
    $pbx_porteur = '';													//variable de test (adresse email du porteur de la cb )
     
     
     
    //ajout SUPPLEMENTAIRE de champ dans le formulaire
    $pbx_name = "";
    $pbx_mail = "";
    $pbx_reference_piece = "";
    $pbx_reference_client = "";
     
     
    // Param�trage de l'url de retour back office site (notification de paiement IPN) :
    $pbx_repondre_a = '';
     
    // Param�trage des donn�es retourn�es via l'IPN :
    $pbx_retour = 'Mt:M;Ref:R;Auto:A;Erreur:E'; //référence a recevoir (le E permets de savoir l'erreur ( chiffre comment par 000 ou 001XX) , se reporter à la notice, en cas de succés : E égale 00000)
     
    // Param�trage des urls de redirection navigateur client apr�s paiement :
    $pbx_effectue = 'http://www.votre-site.extention/accepte.php';
    $pbx_annule = 'http://www.votre-site.extention/annule.php';
    $pbx_refuse = 'http://www.votre-site.extention/refuse.php';
     
    // On r�cup�re la date au format ISO-8601 :
    $dateTime = date("c");
     
    // Nombre de produit envoy� dans PBX_SHOPPINGCART :
    $pbx_nb_produit = 'nombre de produit dans le panier';									//variable de test 5
    // Construction de PBX_SHOPPINGCART :
    $pbx_shoppingcart = "<?xml version=\"1.0\" encoding=\"utf-8\"?><shoppingcart><total><totalQuantity>" . $pbx_nb_produit . "</totalQuantity></total></shoppingcart>";
     
    // Valeurs envoyées dans PBX_BILLING :
    $pbx_prenom_fact = 'prenom de l utilisateur de facturation';							//variable de test Jean-Marie
    $pbx_nom_fact = 'nom de l utilisateur de facturation';									//variable de test Thomson
    $pbx_adresse1_fact = 'ligne1 de l adresse de facturation';								//variable de test 1 rue de Paris
    $pbx_adresse2_fact = 'ligne2 de l adresse de facturation';								//variable de test <vide>
    $pbx_zipcode_fact = 'code postal de l adresse de facturation';							//variable de test 75001
    $pbx_city_fact = 'ville de l adresse de facturation';									//variable de test Paris
    $pbx_country_fact = 'code pays iso-3166-1 numérique de l adresse de facturation';		//variable de test 250 (pour la France)
    // Construction de PBX_BILLING :
    $pbx_billing = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Billing><Address><FirstName>" . $pbx_prenom_fact . "</FirstName>" .
    	"<LastName>" . $pbx_nom_fact . "</LastName><Address1>" . $pbx_adresse1_fact . "</Address1>" .
    	"<Address2>" . $pbx_adresse2_fact . "</Address2><ZipCode>" . $pbx_zipcode_fact . "</ZipCode>" .
    	"<City>" . $pbx_city_fact . "</City><CountryCode>" . $pbx_country_fact . "</CountryCode>" .
    	"</Address></Billing>";
     
    // --------------- SELECTION DE L'ENVIRRONEMENT ---------------
    // Recette (paiements de test)  :
    $urletrans = "";
     
    // Production (paiements r�els) :
    // URL principale :
    // $urletrans ="";
    // URL secondaire :
    // $urletrans ="";
     
    // --------------- RECUPERATION DE LA CLE HMAC ---------------
    // Connection à la base de données
    // mysql_connect...
    // On récupère la clé secréte HMAC (stockée dans une base de données par exemple) et que l'on renseigne dans la variable $hmackey;
    $hmackey = '4642EDBBDFF9790734E673A9974FC9DD4EF40AA2929925C40B3A95170FF5A578E7D2579D6074E28A78BD07D633C0E72A378AD83D4428B0F3741102B69AD1DBB0';
    // $hmackey = 'votre clé générée depuis le back office Vision';
     
    // --------------- TRAITEMENT DES VARIABLES ---------------
     
    // On cr�e la cha�ne � hacher sans URLencodage
    $msg = "PBX_SITE=" . $pbx_site .
    	"&PBX_RANG=" . $pbx_rang .
    	"&PBX_IDENTIFIANT=" . $pbx_identifiant .
    	"&PBX_TOTAL=" . $pbx_total .
    	"&PBX_DEVISE=978" .
    	"&PBX_CMD=" . $pbx_cmd .
    	"&PBX_PORTEUR=" . $pbx_porteur .
    	"&PBX_REPONDRE_A=" . $pbx_repondre_a .
    	"&PBX_RETOUR=" . $pbx_retour .
    	"&PBX_EFFECTUE=" . $pbx_effectue .
    	"&PBX_ANNULE=" . $pbx_annule .
    	"&PBX_REFUSE=" . $pbx_refuse .
    	"&PBX_HASH=SHA512" .
    	"&PBX_TIME=" . $dateTime .
    	"&PBX_SHOPPINGCART=" . $pbx_shoppingcart .
    	//ajout des differents names 
    	"&PBX_NAME=" . $pbx_name.
    	"&PBX_EMAIL=" . $pbx_mail .
    	"&PBX_REFERENCE_PIECE=" . $pbx_reference_piece .
    	"&PBX_REFERENCE_CLIENT=" . $pbx_reference_client .
     
    	"&PBX_BILLING=" . $pbx_billing;
     
     
    // echo "$ msg :" . $msg;
     
    // Si la cl� est en ASCII, On la transforme en binaire
    $binKey = pack("H*", $hmackey);
     
    // On calcule l�empreinte (� renseigner dans le param�tre PBX_HMAC) gr�ce � la fonction hash_hmac et //
    // la cl� binaire
    // On envoi via la variable PBX_HASH l'algorithme de hachage qui a �t� utilis� (SHA512 dans ce cas)
    // Pour afficher la liste des algorithmes disponibles sur votre environnement, d�commentez la ligne //
    // suivante
    //print_r(hash_algos());
    $hmac = strtoupper(hash_hmac('sha512', $msg, $binKey));
     
    // La cha�ne sera envoy�e en majuscule, d'o� l'utilisation de strtoupper()
    // On cr�e le formulaire � envoyer
    // ATTENTION : l'ordre des champs dans le formulaire est extr�mement important, il doit
    // correspondre exactement � l'ordre des champs dans la cha�ne hach�e.
    ?>
     
    <!------------------ ENVOI DES INFORMATIONS A e-Transactions (Formulaire) ------------------>
    <!--les commentaires sont en dessous des variables désignées et celles qui possèdent une astèrisque * sont obligatoires-->
    <form method="POST" action="<?php echo $urletrans; ?>">
    	<input type="hidden" name="PBX_SITE" value="<?php echo $pbx_site; ?>">
    	<!--*numéro de site fourni par e-Transactions-->
    	<input type="hidden" name="PBX_RANG" value="<?php echo $pbx_rang; ?>">
    	<!--*numéro de rang fourni par e-Transactions-->
    	<input type="hidden" name="PBX_IDENTIFIANT" value="<?php echo $pbx_identifiant; ?>">
    	<!--*indentifiant interne fourni par e-Transactions-->
    	<div>
    		<label>montant à payer </label>
    		<input type="number" name="PBX_TOTAL" value="<?php echo $pbx_total ?>">
    		<!--*montant total de la transaction-->
    	</div>
     
     
    	<input type="hidden" name="PBX_DEVISE" value="978">
    	<!--*devise de la transaction -->
    	<input type="hidden" name="PBX_CMD" value="<?php echo $pbx_cmd; ?>">
    	<!--*référence commande coté commerçant -->
    	<!-- <input type="hidden" name="PBX_SOURCE" value="RWD">
    	systématique RWD pour affichage responsive design -->
    	<input type="hidden" name="PBX_PORTEUR" value="<?php echo $pbx_porteur; ?>">
    	<!--*adresse e-mail de l'acheteur-->
    	<input type="hidden" name="PBX_REPONDRE_A" value="<?php echo $pbx_repondre_a; ?>">
    	<input type="hidden" name="PBX_RETOUR" value="<?php echo $pbx_retour; ?>">
    	<!--*listes des variables a retourner par e-transactions-->
    	<input type="hidden" name="PBX_EFFECTUE" value="<?php echo $pbx_effectue; ?>">
    	<input type="hidden" name="PBX_ANNULE" value="<?php echo $pbx_annule; ?>">
    	<input type="hidden" name="PBX_REFUSE" value="<?php echo $pbx_refuse; ?>">
    	<input type="hidden" name="PBX_HASH" value="SHA512">
    	<!--*type d'algorithme de hachage pour le calcul de l'empreinte-->
    	<input type="hidden" name="PBX_TIME" value="<?php echo $dateTime; ?>">
    	<!--*horodatage de la transaction-->
    	<input type="hidden" name="PBX_SHOPPINGCART" value="<?php echo htmlspecialchars($pbx_shoppingcart); ?>">
     
    	<!---------champs que j'ai ajouté sur le formulaire -------->
    	<div>
    		<label>nom:</label>
    		<input type="text" id="nom" name="PBX_NAME" required />
    	</div>
    	<div>
    		<label>Email:</label>
    		<input type="email" id="email" name="PBX_EMAIL" required />
    	</div>
    	<div>
    		<label>Référence pièce:</label>
    		<input type="text" id="reference_piece" name="PBX_REFERENCE_PIECE" required />
    	</div>
    	<div>
    		<label>Référence client:</label>
    		<input type="text" id="reference_client" name="PBX_REFERENCE_CLIENT" required />
    	</div>
     
    	<!--------------------------------------------------------------------------------->
     
     
    	<input type="hidden" name="PBX_BILLING" value="<?php echo htmlspecialchars($pbx_billing); ?>">
    	<input type="hidden" name="PBX_HMAC" value="<?php echo $hmac; ?>">
    	<!--*signature cachée avec la clé secrète HMAC-->
    	<!--*signaturecalculée avec la clé secrete-->
     
    	<input type="submit" value="Envoyer">
    </form>

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    si j'ai bien compris, ce formulaire va envoyer ces données à un url du site e-transactions. donc il faut que vous regardiez si à la fin du paiement, le site e-transactions vous retransmet tous ces détails.
    si ce n'est pas le cas, le système que j'ai déjà vu est que d'abord on enregistre tous les détails de la commande, les coordonnées, etc. dans une commande et ensuite on transmet l'identifiant de la commande au serveur de paiement. et quand le paiement est fini, le serveur de la banque vous renvoi l'identifiant de la commande.

    par contre, j'ai l'impression que vous aller perdre beaucoup de temps à faire quelque chose de compliqué alors que tout ça existe déjà sous forme de code libre pour wordpress. d'abord il y a l'extension woocommerce pour gérer les produits, le panier et la commande. et ensuite il y a des extensions qui s'occupe de faire l'interface entre woocommerce et les moyens de paiement. par exemple il y a un extension "e-transactions" là :
    https://fr.wordpress.org/plugins/e-transactions-wc/

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2022
    Messages : 89
    Par défaut
    Justement, je l ai déjà essayé en installant woo commerce
    Effectivement si je crée un article pour dénomination facture.
    Le client pourra l ajouter au panier avec son propre montant et ensuite payer sa facture.
    Par contre, c pas pratique du tout et pas ergonomique de payer des factures externes comme ça.
    Le paiement en ligne ne concerne pas des produits vendus sur le site.
    Sur le site,on vends rien et on n achete rien, c juste un site vitrine présentant l entreprise.
    Les factures sont des prestations effectuées par l entreprise.
    N Est il pas possible de faire juste un formulaire en php,et de récupérer les donnés et les transmettre à ce paiement en ligne grâce au module transmis par cette banque?
    Ça aurait été tellement simple d avoir juste une URL ou le client arriverai directement sur le paiement en ligne ou il rentrerai directement sa réf client,sa réf facture, son mail et le montant..
    Mon chef veux également un export de ts les paiements d ou pourquoi je pensais à les enregistrer en BDD.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    si le client à déjà un compte sur le site, cela se fait avec woocommerce :
    • menu "Commandes" -> bouton "Ajouter une commande"
    • vous choisisez le client dans le menu déroulant
    • ensuite vous faire "ajouter produit" puis vous ajoutez un produit ou un frais (vous pouvez modifier le prix dans les 2 cas)
    • et enfin en haut de la page à droite, dans le menu "actions de commande", vous sélectionner "e-mail de facture ...", vous validez et le client recoit un e-mail avec un lien pour payer

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2022
    Messages : 89
    Par défaut
    Les clients n ont pas de compte sur ce site.

    Les factures émises ne sont pas sur ce site non plus.

    Ma société a plus de 1500 clients avec 300 facture établi chaque jour.

    J ai essayé avec woo , j ai créé un produit qui s appelle " facture" que je client peux " acheter" sans compte , cad mettre ds le panier avec le prix qu il rentre lui mm et ensuite quand il veux payer, il est effectivement redirigé vers le CA sauf que c pas ergonomique et fonctionnel que le client dois ajouter lui mm le produit..

    A moins que pour cette solution, il faudrait que ds ce site , je dispose de toutes les factures donc il faut les faire venir via une api à partir de l autre logiciel sauf que je dispose de 10 jours pour que cela sois en place et ce délai est bien trop court car je ne sais mm pas si cet api est déjà construite

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    j'ai mis en pièce jointe une extension qui affiche un formulaire et qui lance ensuite un paiement avec le moyen de paiement configuré dans woocommerce.
    pour l'utiliser après avoir activé l'extension, mettez le shortcode [FormulairePaiement] dans une page.

Discussions similaires

  1. Mise en place d'un service de paiement par carte à puce
    Par VINCENTINO dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 21/11/2017, 13h22
  2. Réponses: 4
    Dernier message: 19/09/2007, 09h51
  3. [C#] Mise en place d'un site multilingue
    Par regbegpower dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/03/2004, 19h15
  4. mise en place serveur web intranet
    Par gui4593 dans le forum Installation
    Réponses: 7
    Dernier message: 01/01/2004, 18h18
  5. Mise en place d'index....??
    Par liv dans le forum Requêtes
    Réponses: 6
    Dernier message: 18/12/2003, 11h04

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