Une expérience de ClicToPay, solution bancaire tunisienne ?

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334694

-- url of the page with the problem -- : aucun problème

Bonjour,

Une amie tunisienne doit utiliser la solution de paiement ClicToPay pour un site tunisien. Il faut savoir que PayPal ou Stripe par exemple ne sont pas utilisables dans ce pays.
La banque des propriétaires du site utilise donc ClicToPay pour les transactions et nous sommes à la recherche de conseils pour faire le pont entre une solution e-commerce (pour le paiement des cotisations et de l'achat de produits associés) et cette passerelle ClicToPay.
N'ayant pas trouvé d'infos sur d'éventuels plugins, je fais appel à ceux qui auraient l'expérience de cette solution.

Merci d'avance !

Please Log in or Create an account to join the conversation.

  • Posts: 4747
  • Thank you received: 644
  • MODERATOR
3 years 3 months ago #334699

Bonjour,

En partant de vos besoins, plusieurs solutions s'offre à vous en fonction de vos options :
- Developpez vous même le plugin de paiement, à partir de notre documentation et de celle de ClicToPay
- Ou bien, à faire appel à un developpeur pour developper cette solution, nous vous recommandons assez chaudement Tsuki Dev pour ce genre de travail, vous trouverez son contact dans notre page Partner .

En espérant que cela vous aide à progresser sur votre sujet.
Regards

Last edit: 3 years 3 months ago by Philip.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334717

Bonjour et merci pour cette réponse !

Je pensais en effet utiliser la documentation de création de plugin, mais pour le moment, tout ce qui a été fourni par ClicToPay n'est qu'un document expliquant les étapes de la création de formulaires, si j'ai bien compris. Pas la moindre information sur les données à transmettre via un plugin faisant le lien entre une extension de CMS et le serveur.
Je n'ai pour le moment pas vu où obtenir ces informations.... je vais chercher encore.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334719

Bonjour,

Dans ce cas, il faut contacter le support marchand de la plateforme pour leur demander le guide d'intégration. Ils doivent normalement en avoir un qui est normalement mis à disposition des marchands voulant implémenter un intégration avec leur plateforme de paiement.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334728

Merci Nicolas,

Il semble que justement, le plus difficile soit d'arriver à avoir un contact avec ClicToPay. Il y a des mois que nous attendions les premières infos, notamment les explications de base et les informations pour se connecter au serveur, avec les comptes et numéros de cartes de tests, et nous les avons eu il y a peu, sans pour autant que l'accès de ce compte de test soit activé, et l'amie qui s'en occupe n'arrive toujours pas à obtenir de l'aide !
Je me demande si on ne va pas plutôt envisager Paymee ( www.paymee.tn ) qui semble un équivalent tunisien de PayPal !

J'ai toutefois trouvé un plugin utilisable avec une solution e-commerce d'un autre CMS, il pourrait me servir à construire un plugin pour Hikashop.

The following user(s) said Thank You: Philip

Please Log in or Create an account to join the conversation.

  • Posts: 4747
  • Thank you received: 644
  • MODERATOR
3 years 3 months ago #334729

Bonjour,

En effet avoir un autre plugin récent compatible avec ClickToPay pour pouvoir analyser les éléments à envoyer, à traiter et a retourner pour communiquer avec les platform de paiements de ClickToPay.
En espérant que cela vous permette d'avoir votre solution.

Cordialement

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334738

Merci Philip,

Si j'y arrive seul, je mettrai probablement le plugin à disposition gratuitement; :)

The following user(s) said Thank You: nicolas

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334867

Bonjour,

Si j'en crois le plugin que j'ai trouvé pour une autre solution et que je viens de prendre le temps d'analyser, il suffit de peu pour faire la transaction bancaire :

get(($this->testmode ? 'https://test.' : 'https://ipay.') . 'clictopay.com/payment/rest/register.do?currency=788&amount=' . str_replace('.', '', $order->get_total()) . '&orderNumber=' . $order_id . '&password=' . $this->password . '&returnUrl='.get_site_url().'/clictopay-check-payment&userName=' . $this->username)

Donc monnaie, montant, n° de commande, mot de passe du compte vendeur, adresse de retour et identifiant du vendeur.
Dans ce plugin, il n'y a pas de gestion différenciée de code d'erreur de paiement, simplement l’affichage d'une page signalant l'échec de transaction.

Quel plugin pourrait-il servir pour un clonage et une adaptation, sachant que les trois seules infos modifiables dans le plugin sont une case à cocher pour le mode test et deux champs de saisie de l'identifiant et du mot de passe du compte vendeur ?

Merci par avance de vos conseils !

PS : comme on le voit dans le code exemple, seul le dinar tunisien (TND ou 788) peut être utilisé

Last edit: 3 years 3 months ago by RG-Consultant. Reason: complément d'information

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334868

Bonjour,

Le plus simple est de partir du plugin de paiement example que nous avons à disposition sur notre documentation:
www.hikashop.com/support/documentation/6...on.html#howtopayment
Les fichiers de ce plugin contiennent beaucoup de commentaires qui explique ce qu'il faut faire.
Notez au préalable qu'il faut déjà connaître PHP un minimum et comprendre la structure d'un plugin Joomla:
docs.joomla.org/Portal:Plugin_Development
Si vous n'avez pas de notification de paiement, alors vous pouvez supprimer la fonction onPaymentNotification du plugin. La fonction example_signature n'est apparement pas nécessaire vu qu'il n'y a pas de signature non plus. Donc vous aurez juste la fonction onAfterOrderConfirm à modifier pour générer l'URL et rediriger l'utilisateur sur cette URL. Et le fichier example_end.php peut aussi être supprimé si vous faite la redirection directement dans onAfterOrderConfirm.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334879

Merci Nicolas !

Je n'avais pas vu ce plugin exemple. Je vais regarder.
Je ne suis pas codeur, mais je maintiens depuis plusieurs années le plugin LazyDbBackup de sauvegardes automatiques de base de données, bien qu'il ne soit pas vraiment aux normes Joomla!, et j'ai récemment modifié quelques plugins pour les rendre compatibles avec Joomla! 4.
J'espère donc arriver à m'y retrouver.

Il y a bien une notification de paiement ou non-paiement dans le plugin WP.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334896

Bonjour,

J'ai bien réussi à créer le plugin dont l'installation et le paramétrage se font sans erreur.
Il me faut maintenant tester les personnalisations, et essayer de comprendre si le fonctionnement standard des plugins de paiement Hikashop effectuent ce que je vois dans le plugin exemple WP, à savoir interroger le serveur ClicToPay et analyser la réponse pour y chercher si le champ "ErrorMessage" est ou non à "Success".
Le code d'interrogation est en effet

$response = wp_remote_get(($this->testmode ? 'https://test.' : 'https://ipay.') . 'clictopay.com/payment/rest/getOrderStatus.do?orderId=' . $_GET . '&password=' . $this->password . '&userName=' . $this->username);

suivi d'un json_decode($body)

J'espère que le mode débogage va me permettre de récupérer ce "body" pour en savoir plus, faute de documentation concernant l'intégration aux CMS.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334904

Bonjour,

Je suppose que vous avez fourni l'URL de notification pour l'URL de retour et donc, dans la fonction onPaymentNotification vous pouvez directement faire echo json_decode($body); exit; pour afficher votre débug sur la page de retour du client.
Le plus dur, c'est de faire la requête cURL pour appeler getOrderStatus.do
waytolearnx.com/2020/01/tutoriel-curl-en-php.html

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334925

Merci Nicolas,

Pour le moment, après avoir déjà beaucoup pataugé pour corriger les erreurs signalées par le serveur bancaire, je reste bloqué, sans affichage de la page de paiement sur ce serveur, mais ce message :

{"orderId":"c7a5d105-d436-7764-9325-37f100bb1a72","formUrl":" test.clictopay.com/payment/merchants/CLI...64-9325-37f100bb1a72 "}

Les logs m'affichent bien les données envoyées, telles que dans le plugin d'exemple dont j'ai parlé plus haut :

Array
(
[userName] => ***********
[password] => ************
[orderNumber] => 27
[returnUrl] => https://hikastarter.*********.fr
[currency] => 788
[amount] => 2000000
)

Je vais laisser décanter... ;)

J'ai posé une autre question sur le forum à propos du plugin "credit card" en me demandant s'il pourrait si besoin être utilisé pour ce paiement.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334928

Bonjour,

Non, le plugin credit card ne va pas vous aider.

Je n'ai pas vu votre code, mais d'après ce que je comprends, vous redirigez le navigateur de l'utilisateur vers l'URL de la plateforme de paiement.
Mais vu ce qui est affiché, ce n'est pas ce qu'il faut faire.
Il faut faire une requête cURL vers cette URL pour récupérer ce texte en PHP et ensuite json_decode ce texte pour extraire formURL et ensuite faire la redirection de l'utilisateur vers cette URL.
Il va vous falloir étudier cURL pour avancer sur ce plugin.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334944

Merci Nicolas,

Pour le moment, je me suis contenté de modifier le code du plugin exemple pour coller aux noms des données transmises par l'URL de l'autre plugin. Tant que les noms n'ont pas correspondu exactement, j'ai eu un message d'erreur.
Il n'y a maintenant plus de message d'erreur mais ce code au lieu de la page de recueil des infos de CB du cllient.

Je n'ai pas encore cherché à récupérer une réponse, puisque l'étape paiement sur le système bancaire n'est pas possible.

Dans le paramétrage du plugin, l'adresse donnée par le système ClicToPay a bien été saisie, le mot de passe et l'identifiant également, je n'ai plus d'erreur. Je pensais donc que la validation de la commande devrait alors ouvrir la page de paiement sur le site ClicToPay. Aurais-je mal compris ?

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334946

Bonjour,

Je pense que vous avez mal compris.
L'URL que vous générez, ce n'est pas l'URL de redirection vers la plateforme de paiement.
C'est l'URL pour récupérer l'URL de redirection.
Et donc, il ne faut pas rediriger l'utilisateur vers l'URL que vous générez mais faire une requête cURL sur cette URL pour récupérer en PHP le code

{"orderId":"c7a5d105-d436-7764-9325-37f100bb1a72","formUrl":" test.clictopay.com/payment/merchants/CLI...64-9325-37f100bb1a72 "}
puis en extraire formUrl pour rediriger sur cette nouvelle URL.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334950

Bonjour et encore merci de votre patience !

En effet, ce que je ne comprends surtout pas, c'est où récupérer cette réponse du serveur de paiement, puisqu'elle s'affiche actuellement dans le navigateur, pour en extraire la valeur de "formUrl" et appeler ensuite cette adresse formUrl qui ouvre bien le formulaire ClicToPay.
Utiliser avec cURL une adresse construite à l'image de celle du plugin WP ? Mais où insérer ce code, et comment ensuite utiliser la nouvelle adresse ? Par un nouvel appel cURL ?

Dans le code, je n'appelle jamais d'URL moi-même, je définis simplement les variables à passer dans onAfterOrderConfirm et l'arrive à la dernière ligne de cette fonction (return $this->showPage('end');)
Le fichier clictopay_end reçoit bien les infos de ces variables pour construire le formulaire "hidden"

J'imagine que c'est bien Hikashop qui ouvre l'adresse en transmettant les valeurs requises, ce qui me renvoie ce qui s'affiche dans le navigateur.

Je commence à désespérer ! :(

PS : le code ne passe jamais par la fonction onPaymentNotification

Last edit: 3 years 3 months ago by RG-Consultant.

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334951

Bonjour,

Il faut faire quelque chose comme cela:

$ch = curl_init();  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch); 
$data = json_decode($result);
$app = JFactory::getApplication();
$app->redirect(data->formUrl);
où $url est l'URL que vous générez.

Please Log in or Create an account to join the conversation.

  • Posts: 214
  • Thank you received: 11
  • Hikashop Business
3 years 3 months ago #334964

Merci Nicolas,

C''est ce que j'avais imaginé d'après le lien vers le tuto cURL que vous m'avez donné précédemment.
Maintenant la question est où le placer ? Juste avant return $this->showPage('end') ?

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
3 years 3 months ago #334966

Oui.

Please Log in or Create an account to join the conversation.

Time to create page: 0.089 seconds
Powered by Kunena Forum