- Posts: 32
- Thank you received: 1
[RÉSOLU] Interface PayBox
13 years 1 month ago - 13 years 1 month ago #119809
by cdp-nc
[RÉSOLU] Interface PayBox was created by cdp-nc
Bonjour,
En parcourant les forums et la documentation, j'ai vu qu'il n'y avait pas actuellement de plugin pour interfacer HikaShop et PayBox (j'ai peut-être mal vu....). Je suis donc en train d'écrire un formulaire pour cela, mais si HTML, JS et CSS ne me posent absolument aucun problème, le PHP n'est pas ma tasse de thé (et à 60 ans, je crains fort de rester au stade de débutant pas motivé).
Donc je bute sur un problème, la récupération de l'email de l'internaute qui passe commande ! Je pense le passer par cookies au moment de la connexion (ou/et de l'enregistrement si celui-ci connecte l'internaute dans la foulée)... mais quel est le fichier *.php qui gère cette connexion ?
Merci beaucoup
J-P
En parcourant les forums et la documentation, j'ai vu qu'il n'y avait pas actuellement de plugin pour interfacer HikaShop et PayBox (j'ai peut-être mal vu....). Je suis donc en train d'écrire un formulaire pour cela, mais si HTML, JS et CSS ne me posent absolument aucun problème, le PHP n'est pas ma tasse de thé (et à 60 ans, je crains fort de rester au stade de débutant pas motivé).
Donc je bute sur un problème, la récupération de l'email de l'internaute qui passe commande ! Je pense le passer par cookies au moment de la connexion (ou/et de l'enregistrement si celui-ci connecte l'internaute dans la foulée)... mais quel est le fichier *.php qui gère cette connexion ?
Merci beaucoup
J-P
Last edit: 13 years 1 month ago by cdp-nc.
Please Log in or Create an account to join the conversation.
13 years 1 month ago #119812
by nicolas
Replied by nicolas on topic Interface PayBox
Bonjour,
Sans connaissances avancées en PHP, il vous sera difficile de faire un plugin de paiement complet.
Pour executer un code PHP à l'enregistrement/connexion d'un utilisateur, il faut créer un plugin user joomla implémentant l'évènement correspondant: docs.joomla.org/Plugin/Events/User
Je vous recommenderez plutot de contacter votre banque pour utiliser une autre plateforme de paiement qui existe déjà pour HikaShop comme SIPS ATOS. Ce sera bien plus simple.
Sans connaissances avancées en PHP, il vous sera difficile de faire un plugin de paiement complet.
Pour executer un code PHP à l'enregistrement/connexion d'un utilisateur, il faut créer un plugin user joomla implémentant l'évènement correspondant: docs.joomla.org/Plugin/Events/User
Je vous recommenderez plutot de contacter votre banque pour utiliser une autre plateforme de paiement qui existe déjà pour HikaShop comme SIPS ATOS. Ce sera bien plus simple.
Please Log in or Create an account to join the conversation.
13 years 1 month ago - 13 years 1 month ago #119813
by cdp-nc
Replied by cdp-nc on topic Interface PayBox
Ce n'est pas un plugin que je développe, mais seulement un formulaire + un fichier de variables à partir des infos fournies par ma banque. Et ce n'est pas du PHP que je veux ajouter, mais juste un cookie. Il ne me manque que la récup de cet email, c'est pour ça que je m'accroche...
Merci quand même
EDIT : le courriel à la banque vient de partir ! Mais en Nouvelle-Calédonie, elles font ce qu'elles veulent... attendons en croisant les doigts...
Merci quand même
EDIT : le courriel à la banque vient de partir ! Mais en Nouvelle-Calédonie, elles font ce qu'elles veulent... attendons en croisant les doigts...
Last edit: 13 years 1 month ago by cdp-nc.
Please Log in or Create an account to join the conversation.
13 years 1 month ago #119823
by nicolas
Replied by nicolas on topic Interface PayBox
Pour enregistrer un cookie, cela se fait en PHP avec la fonction setcookie. Donc je ne vois pas comment vous voulez faire sans faire de PHP ?
Please Log in or Create an account to join the conversation.
13 years 1 month ago - 13 years 1 month ago #119938
by cdp-nc
Replied by cdp-nc on topic Interface PayBox
Cela peut aussi se faire côté client via une simple ligne en JS... La banque ne m'ayant pas répondu, je vais approfondir la chose...
Merci
Merci
Last edit: 13 years 1 month ago by cdp-nc.
Please Log in or Create an account to join the conversation.
13 years 1 month ago #119942
by nicolas
Replied by nicolas on topic Interface PayBox
En ce cas, c'est le fichier "registration" de la vue "user" où vous pourrez ajouter le JS pour le formulaire d'enregistrement et le fichier "login_form" pour le formulaire de login. Vous pouvez les éditer via le menu Affichage>Vues.
The following user(s) said Thank You: cdp-nc
Please Log in or Create an account to join the conversation.
13 years 1 month ago - 13 years 1 month ago #119951
by cdp-nc
Replied by cdp-nc on topic Interface PayBox
Merci beaucoup pour cette information précieuse. J'ai aussi trouvé, adapté mais pas testé ça :
<?php
$UserInfo = JFactory::getUser() ;
$usermail = $Userinfo->email;
if ( ! empty( $usermail ) ) {
?>
<script type="text/javascript">
if (document.cookie.indexOf("usermail")<0) document.cookie = "usermail=<?php echo $usermail; ?>" ;
</script>
<?php
}
?>
En fait, pour la maintenance, j'hésite à inclure dans les fichiers sources du code PHP, je préfère procéder par des hacks JS en testant sur l'URL dans mon fichier CDP.js.
(là, je suis "bloqué" sur l'enregistrement des nouveaux clients, j'avais tout désactivé lors de la migration du site de 1.5 en 2.5 pour ne plus être inondé par les SPAMS ! Il faut vraiment que je réactive ça !!!)
J-P
<?php
$UserInfo = JFactory::getUser() ;
$usermail = $Userinfo->email;
if ( ! empty( $usermail ) ) {
?>
<script type="text/javascript">
if (document.cookie.indexOf("usermail")<0) document.cookie = "usermail=<?php echo $usermail; ?>" ;
</script>
<?php
}
?>
En fait, pour la maintenance, j'hésite à inclure dans les fichiers sources du code PHP, je préfère procéder par des hacks JS en testant sur l'URL dans mon fichier CDP.js.
(là, je suis "bloqué" sur l'enregistrement des nouveaux clients, j'avais tout désactivé lors de la migration du site de 1.5 en 2.5 pour ne plus être inondé par les SPAMS ! Il faut vraiment que je réactive ça !!!)
J-P
Last edit: 13 years 1 month ago by cdp-nc. Reason: Ajout d'une condition pour que le cookie ne soit créé qu'une fois
Please Log in or Create an account to join the conversation.
13 years 1 month ago #119959
by cdp-nc
Replied by cdp-nc on topic Interface PayBox
Devant la complexité de l'usage du seul JS (cas de la première connexion, du login sur un autre onglet...), je me suis résolu à placer le code dans l'index.php de mon template... et ça marche.
Please Log in or Create an account to join the conversation.
13 years 1 month ago #119961
by cdp-nc
Replied by cdp-nc on topic Interface PayBox
Pour clore ce sujet, au cas où quelqu'un serait intéressé, voici le JS (à placer dans un fichier externe et à lancer au load de la page index du template) :
Code:
function ajout_paiement_CB() {
/* recup du cookie qui contient l'email de l'internaute */
if (document.cookie.indexOf("usermail")>-1) {
debut=document.cookie.indexOf("usermail")+9;
ttt=document.cookie.substring(debut,document.cookie.length);
usermail=ttt.substring(0,ttt.indexOf(";"));
}
/* récup du montant de la commande et du nom de la devise */
if (window.location.href.indexOf("/order/show/cid")>-1) {
var allTD=document.getElementsByTagName("td");
for (i=1;i<allTD.length;i++){
if (allTD[i].className&&allTD[i].className=="hikashop_order_total_value") {
TOTAL=allTD[i].innerHTML.replace("\n", "");
TOTAL=TOTAL.replace(" ", "");TOTAL=TOTAL.replace(" ", "");TOTAL=TOTAL.replace(" ", "");TOTAL=TOTAL.replace(" ", "");
if (TOTAL.indexOf("XPF")>-1) fichier="fichier.txt"; else fichier="variablesEURO.TXT";
TOTAL=TOTAL.replace("XPF", "");
while (TOTAL.charAt(0)==' ') TOTAL=TOTAL.substring(1,TOTAL.length);
TOTAL=TOTAL.substring(0,TOTAL.indexOf(' '));
}
}
/* récup du numéro de la commande */
COMMANDE=document.getElementsByTagName("h1")[0].innerHTML.replace("Commande:", "");
COMMANDE=COMMANDE.replace("\n", "");
while (COMMANDE.charAt(0)==' ') COMMANDE=COMMANDE.substring(1,COMMANDE.length);
COMMANDE=COMMANDE.substring(0,COMMANDE.indexOf(' '))
/* construction des INPUT */
CB_PBX_EMAIL=document.createElement('input');
CB_PBX_EMAIL.type='hidden';
CB_PBX_EMAIL.name="PBX_PORTEUR";
CB_PBX_EMAIL.value=usermail;
document.getElementById("adminForm").appendChild(CB_PBX_EMAIL);
CB_PBX_TOTAL=document.createElement('input');
CB_PBX_TOTAL.type='hidden';
CB_PBX_TOTAL.name="PBX_TOTAL";
CB_PBX_TOTAL.value=TOTAL;
document.getElementById("adminForm").appendChild(CB_PBX_TOTAL);
CB_PBX_CMD=document.createElement('input');
CB_PBX_CMD.type='hidden';
CB_PBX_CMD.name="PBX_CMD";
CB_PBX_CMD.value=COMMANDE;
document.getElementById("adminForm").appendChild(CB_PBX_CMD);
CB_PBX_MODE=document.createElement('input');
CB_PBX_MODE.type='hidden';
CB_PBX_MODE.name="PBX_MODE";
CB_PBX_MODE.value="13";
document.getElementById("adminForm").appendChild(CB_PBX_MODE);
CB_PBX_OPT=document.createElement('input');
CB_PBX_OPT.type='hidden';
CB_PBX_OPT.name="PBX_OPT";
CB_PBX_OPT.value=fichier;
document.getElementById("adminForm").appendChild(CB_PBX_OPT);
/* bouton lançant le paiement */
pasbo=document.createElement('center');
CB=document.createElement('input');
CB.type = 'submit';
CB.value = "Paiement par Carte Bancaire";
CB.style.fontSize = "200%";
CB.style.fontWeight = "bold";
CB.style.color = "blue";
CB.style.backgroundColor = "#ccc";
CB.style.padding = "5px 50px";
CB.style.margin = "50px 0";
CB.style.borderRadius = "10px";
CB.style.border="1px solid black";
CB.className="image_lien";
CB.setAttribute("onMouseOver", "CB.style.color = 'red';" );
CB.setAttribute("onMouseOut", "CB.style.color = 'blue'" );
pasbo.appendChild(CB);
document.getElementById("adminForm").appendChild(pasbo);
document.getElementById("adminForm").action="../../../../../../cgi-bin/modulev2.cgi";
}
}
The following user(s) said Thank You: nicolas
Please Log in or Create an account to join the conversation.
Time to create page: 0.196 seconds