osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Atos : paiement en 3 fois [résolu], Il me manque pas grand chose...
giantalex
posté 5 Nov 2007, 14:59
Message #1


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 3
Inscrit : 30-October 07
Membre no 19566



Bonjour a tous.
Voila plusieurs jours que je suis sur l'ajout du mode de paiement en 3 fois sans frais.
J'utilise le systeme Atos avec la banque Pop.
J'ai cherché sur le forum et j'ai trouvé 2 topic intéressant :
ici et un autre la.
J'ai suivie la marche suivi par le premier topic :
CITATION
Il faut ajouter tes variables directement dans le fichier atos.php

$first_amount = sprintf("%03d",(($amount/3)* $this->_getCurrencyUnit($currency)));

$command .= " capture_day=5";
$command .= " capture_mode=PAYMENT_N";
$command .= " data=NB_PAYMENT=3\;PERIOD=30\;INITIAL_AMOUNT=$first_amount";

puis
CITATION
Ensuite reste plus qu'a dédoubler le module atos et changer toutes les variables ATOS en ATOSNFOIS par exemple pour éviter de faire doublons dans le include/modules/payement/atosnfois.php et le include/languages/french/modules/payement/atosnfois.php, et les clients n'ont ensuite plus qu'a choisir ensuite au moment du paiement le payement par cb ou le 3 fois sans frais.

puis je suis passé au 2eme topic pour la suite.
CITATION
Faut peu être juste le faire apparaitre à partir d'un minimum de commande.


alors j'ai bien dans l'admin dans module payment une nouvelle ligne mais il doit y avoir un probleme car lorsque je modifie les paramètres de cette ligne c'est la ligne carte de crédit deja existante avant qui se modifie.
Et alors ensuite je n'arrive pas a faire apparaitre le paiement en 3 fois lors de la commande.

J'ai envoyé aussi plusieurs mp a yofx, manmachine et Ryu007 mais pas de reponse alors je compte sur une ame charitable pour m'aider.
Merci d'avance.
Giantalex

Ce message a été modifié par giantalex - 6 Nov 2007, 11:30.
Go to the top of the page
 
infini
posté 5 Nov 2007, 17:18
Message #2


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 234
Inscrit : 18-October 06
Lieu : Oinville s/Montcient (78)
Membre no 12728



Salut

dans le fichier catalog/includes/modules/payment/atos3fois.php

remplace :

$this->enabled = MODULE_PAYMENT_ATOS3FOIS_STATUS == 'True' ? true : false;;

par :

// Paiement a partir de 300 euros
if ($order->info['total'] >= 300 || $order->info['total']==""){
$this->enabled = MODULE_PAYMENT_ATOS3FOIS_STATUS == 'True' ? true : false;;
}

Infini




--------------------
MS2.2 (stable) + Admin Account with Access Level - FCKeditor - New customer emails - Box newsletter - Ecotaxe - Discount coupon codes - OrderCheck - Login box - Sitemap - Giftwrap - AntiRobotRegistrationValidation - AJAX AttributeManager - PDF Invoice - Ultimate SEo Urls - Stats Sales Report - Stats customers orders - Colissimo - Traking colissimo - Atos 6.00 - Sogenactif - [OVH dédié] et énormément de customisation au niveau design - Valide XHTML et CSS2.1
Go to the top of the page
 
Ryu007
posté 5 Nov 2007, 20:58
Message #3


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1385
Inscrit : 3-June 04
Lieu : Saint-mandé
Membre no 2597



CITATION(giantalex @ 5 Nov 2007, 14:59) [snapback]257880[/snapback]
alors j'ai bien dans l'admin dans module payment une nouvelle ligne mais il doit y avoir un probleme car lorsque je modifie les paramètres de cette ligne c'est la ligne carte de crédit deja existante avant qui se modifie.
Et alors ensuite je n'arrive pas a faire apparaitre le paiement en 3 fois lors de la commande.

Quand tu as dédoublé le fichier, as-tu pris soin :
1- de lui donner un nom différent
2 - renommer la classe
CODE
   class atos {

3 - change le code
CODE
     var $code = 'atos';

fonction constructeur
CODE
     function atos() {


CITATION(giantalex @ 5 Nov 2007, 14:59) [snapback]257880[/snapback]
J'ai envoyé aussi plusieurs mp a yofx, manmachine et Ryu007 mais pas de reponse alors je compte sur une ame charitable pour m'aider.

Nous aimons beaucoup aider les gens, mais nous sommes pas disponibles 24/24H 7/7J comme une hotline.
Merci de ta compréhension.


--------------------
Image IPB Image IPB
Go to the top of the page
 
giantalex
posté 6 Nov 2007, 09:31
Message #4


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 3
Inscrit : 30-October 07
Membre no 19566



Merci pour ta reponse ryu007. Je comprends bien que vous ne soyez pas la 24h/24 et 7j/7!!! On a tous une vie. C'etait juste une precision pour prouver que j'avais bien cherché la solution a mon probleme avant de poster!

Alors je vais mettre les modifs que j'ai fait et la je pense que quelqu'un trouveras le probleme parce que j'avai bien fait toutes tes dernieres recommendations.

J'ai commencé par dedoubler le repertoire -> catalog/atos en catalog/atosn.
Ensuite j'ai dedoubler le fichier -> catalog/includes/modules/payment/atos.php en catalog/includes/modules/payment/atosn.php. Dans ce nouveau fichier j'ai modifié le code comme ceci (je n'affiche que les lignes modifiées):
CODE
define('DIR_FS_ATOS', DIR_FS_CATALOG . 'atos/');
par :
define('DIR_FS_ATOS_N', DIR_FS_CATALOG . 'atosn/');

class atos {
par :
class atosn {
...
var $code = 'atos';
par :
var $code = 'atosn';
...
function atos() {
par :
function atosn() {
...
$this->description  = MODULE_PAYMENT_ATOS_TEXT_DESCRIPTION;
$this->enabled      = MODULE_PAYMENT_ATOS_STATUS == 'True' ? true : false;;
$this->title        = MODULE_PAYMENT_ATOS_TEXT_TITLE;
$this->email_footer = MODULE_PAYMENT_ATOS_TEXT_EMAIL_FOOTER;
$this->production   = MODULE_PAYMENT_ATOS_PRODUCTION_MODE == 'production' ? true : false;
$this->sort_order   = MODULE_PAYMENT_ATOS_SORT_ORDER;
$this->os_info      = $this->_getOperatingSystemInfo();
if ((int)MODULE_PAYMENT_ATOS_ORDER_STATUS_ID > 0) {
        $this->order_status = MODULE_PAYMENT_ATOS_ORDER_STATUS_ID;
}
par :
$this->description  = MODULE_PAYMENT_ATOS_N_TEXT_DESCRIPTION;
// Paiement a partir de 150 euros
if ($order->info['total'] >= 150 || $order->info['total']==""){
      $this->enabled = MODULE_PAYMENT_ATOS_N_STATUS == 'True' ? true : false;;
}
      $this->title        = MODULE_PAYMENT_ATOS_N_TEXT_TITLE;
      $this->email_footer = MODULE_PAYMENT_ATOS_N_TEXT_EMAIL_FOOTER;
      $this->production   = MODULE_PAYMENT_ATOS_N_PRODUCTION_MODE == 'production' ? true : false;
      $this->sort_order   = MODULE_PAYMENT_ATOS_N_SORT_ORDER;
      $this->os_info      = $this->_getOperatingSystemInfo();
if ((int)MODULE_PAYMENT_ATOS_N_ORDER_STATUS_ID > 0) {
      $this->order_status = MODULE_PAYMENT_ATOS_N_ORDER_STATUS_ID;
}
...
if (!$this->production)
    $selection['fields'] = array(array('title' => '<font class="highlight">' . MODULE_PAYMENT_ATOS_TEXT_TITLE_DEMOMODE . '</font>',
                       'field' => ''));
par :
if (!$this->production)
    $selection['fields'] = array(array('title' => '<font class="highlight">' . MODULE_PAYMENT_ATOS_N_TEXT_TITLE_DEMOMODE . '</font>',
                       'field' => ''));
...
$this->message = MODULE_PAYMENT_ATOS_CALL_REQUEST_ERROR . ': ' . $sips['command'] . '<br>' . $sips['error'];
par :
$this->message = MODULE_PAYMENT_ATOS_N_CALL_REQUEST_ERROR . ': ' . $sips['command'] . '<br>' . $sips['error'];
...
$this->message = MODULE_PAYMENT_ATOS_CALL_REQUEST_ERROR;
par :
$this->message = MODULE_PAYMENT_ATOS_N_CALL_REQUEST_ERROR;
...
function _getExternalFileName($name) {
      $name = DIR_FS_ATOS . $name;
par :
function _getExternalFileName($name) {
      $name = DIR_FS_ATOS_N . $name;
...ajout de ligne :
$first_amount = sprintf("%03d",(($amount/3)* $this->_getCurrencyUnit($currency)));
avant :
$amount = sprintf("%03d", $amount * $this->_getCurrencyUnit($currency));
puis :
$command .= " capture_day=5";
$command .= " capture_mode=PAYMENT_N";
$command .= " data=NB_PAYMENT=3;PERIOD=30;INITIAL_AMOUNT=" . $first_amount;
juste apres la derniere ligne deja existante ->
$command .= " customer_ip_address=" . $_SERVER['REMOTE_ADDR'];
...
function GetInstalledCertificates() {
      $certificates = array();
      if ($dir = @dir(DIR_FS_ATOS)) {
par :
function GetInstalledCertificates() {
      $certificates = array();
      if ($dir = @dir(DIR_FS_ATOS_N)) {
...
function GetInstalledParmcomFiles() {
      $parmcom_files = array();
      if ($dir = @dir(DIR_FS_ATOS)) {
    while ($file = $dir->read()) {
      $data = split('\.', $file);
      if (($data[0] == 'parmcom') && !file_exists(DIR_FS_ATOS . 'certif.fr.' . $data[1]))
par :
function GetInstalledParmcomFiles() {
      $parmcom_files = array();
      if ($dir = @dir(DIR_FS_ATOS_N)) {
    while ($file = $dir->read()) {
      $data = split('\.', $file);
      if (($data[0] == 'parmcom') && !file_exists(DIR_FS_ATOS_N . 'certif.fr.' . $data[1]))

ensuite j'ai dedoublé le fichier langue -> catalog/includes/languages/french/modules/payment/atos.php en
catalog/includes/languages/french/modules/payment/atosn.php
j'ai modifié les lignes comme ceci :
CODE
define('MODULE_PAYMENT_ATOS_N_TEXT_TITLE', 'Paiement en 3 fois');
define('MODULE_PAYMENT_ATOS_N_TEXT_TITLE_DEMOMODE', 'Ce mode de paiement est en démonstration. Il sera bientôt disponible et vous pourrez effectuer vos paiements en toute sécurité par carte bancaire. Vous pouvez essayer cette démonstration, mais pour effectuer réellement votre transaction, il vous faudra utiliser un autre mode de paiement');
define('MODULE_PAYMENT_ATOS_N_TEXT_DESCRIPTION', 'Paiement en 3 fois / SIPS-ATOS');
define('MODULE_PAYMENT_ATOS_N_TEXT_EMAIL_FOOTER', '');
define('MODULE_PAYMENT_ATOS_N_TEXT_ERROR_MESSAGE', 'Erreur de traitement. Essayer à nouveau.');
define('MODULE_PAYMENT_ATOS_N_CALL_REQUEST_ERROR', 'Une erreur inattendue est arrivée au cours de la demande.<br>Veuillez choisir un autre moyen de paiement.<br>');
define('MODULE_PAYMENT_ATOS_N_PAYMENT_MEANS_CB',         'Carte Bleue');
define('MODULE_PAYMENT_ATOS_N_PAYMENT_MEANS_VISA',       'VISA');
define('MODULE_PAYMENT_ATOS_N_PAYMENT_MEANS_AMEX',       'American Express');
define('MODULE_PAYMENT_ATOS_N_PAYMENT_MEANS_MASTERCARD', 'Eurocard/Mastercard');
define('MODULE_PAYMENT_ATOS_N_ERROR_02', 'Referral, authorization required by phone');
define('MODULE_PAYMENT_ATOS_N_ERROR_03', 'Merchand id invalid : contact ATOS support');
define('MODULE_PAYMENT_ATOS_N_ERROR_05', 'Transaction cancelled. No detail about security.');
define('MODULE_PAYMENT_ATOS_N_ERROR_12', 'Invalid amount');
define('MODULE_PAYMENT_ATOS_N_ERROR_13', 'Invalid transaction, fields invalid: (used of AMEX, without any AMEX contract)');
define('MODULE_PAYMENT_ATOS_N_ERROR_17', 'Cancelled by customer');
define('MODULE_PAYMENT_ATOS_N_ERROR_30', 'Format error: contact ATOS hotline for more details');
define('MODULE_PAYMENT_ATOS_N_ERROR_63', 'HIGH PROBLEM OF SECURITY: must log out the customer and remove its session id');
define('MODULE_PAYMENT_ATOS_N_ERROR_75', 'More than 3 tries failed');
define('MODULE_PAYMENT_ATOS_N_ERROR_90', 'Service unavailable');
define('MODULE_PAYMENT_ATOS_N_ERROR_94', 'Transaction already played');
define('MODULE_PAYMENT_ATOS_N_ERROR_INVALID_CODE', 'Invalid error code');
define('MODULE_PAYMENT_ATOS_N_CERTIFICATE_NAME_CYBERPLUS',    'Test CyberPlus (Banque Populaire)');
define('MODULE_PAYMENT_ATOS_N_CERTIFICATE_NAME_ETRANSACTION', 'Test E-Transactions (Crédit Agricole)');
define('MODULE_PAYMENT_ATOS_N_CERTIFICATE_NAME_MERCANET',     'Test Mercanet (BNP Paribas)');
define('MODULE_PAYMENT_ATOS_N_CERTIFICATE_NAME_SOGENACTIF',   'Test Sogénactif (Société Général)');
define('MODULE_PAYMENT_ATOS_N_CERTIFICATE_NAME_SCELLIUS',     'Test Scellius (La Poste)');
define('MODULE_PAYMENT_ATOS_N_CERTIFICATE_NAME_SHERLOCKS',    'Test Sherlocks (Crédit Lyonnais)');

Puis dans le fichier -> catalog/atos_response.php j'ai ajouté :
CODE
include(DIR_WS_MODULES . 'payment/atosn.php');
include(DIR_WS_LANGUAGES . $language . '/modules/payment/atosn.php');
juste apres :
include(DIR_WS_MODULES . 'payment/atos.php');
include(DIR_WS_LANGUAGES . $language . '/modules/payment/atos.php');
...
$atosn = new atosn();
juste apres :
$atos = new atos();
...
$atosn->sendNotification('ATOS Response Error', $hash);
juste apres :
$atos->sendNotification('ATOS Response Error', $hash);
...
ainsi de suite pour toutes lignes avec $atos->


Voila toutes les modifs qui ont été faites.
Si quelqu'un trouve l'erreure!!!
Merci encore pour votre aide.

Ce message a été modifié par giantalex - 6 Nov 2007, 09:43.
Go to the top of the page
 
giantalex
posté 6 Nov 2007, 11:30
Message #5


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 3
Inscrit : 30-October 07
Membre no 19566



Voila je viens de trouver toutes mes erreures et le modules en 3 fois sans frais marche.
Merci encore a ruy007 d'avoir cherché mon probleme.
J'avais oublié de modifier les appels de la classe atos:: en atosn::
Maintenant tout marche a merveille.
Je ne sais pas comment mettre resolu a coté du titre du topic.
A bientot.

PS: si quelqu'un a une question sur atos et le paiement en 3 fois je serai ravis de l'aider, maintenant que je connais le principe!

Giantalex
Go to the top of the page
 
fancy
posté 14 Nov 2007, 10:54
Message #6


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 4
Inscrit : 23-March 06
Membre no 9584



Bonjour Giantalex,

Après avoir suivi à la lettre votre description de la mise en place du paiement en trois fois en plus du paiment en ligne bancaire "normal", j'ai bien 2 lignes dans l'administration mais qui interagissent entre elles.

Si je modifie les champs de l'une ça modifie l'autre en même temps.

Mais malgré tout si je fixe les paramètres du premier "carte de crédit" sur les paramètres qui fonctionnent je me retrouve connectée à la banque sans problème.

Et je me retrouve avec une erreur dans la page de paiement, ça m'affiche : MODULE_PAYMENT_ATOS_TEXT_TITLE
D'ailleurs le titre pour le paiement en trois fois ne change pas dans l'admin'...
Sûrement parce que le module ne sait pas où donner de la tête... blush.gif

J'utilise Oscommerce version MS2.2.

Pourriez-vous m'aider ? Merci par avance.

Fancy.

PS : dans le fichier atos.php renommé atos3fois.php, j'ai modifié tous les "atos" en "atos3fois" et les "ATOS" en "ATOS_3_FOIS", du coup je ne peux plus installer le mode de paiment maintenant... blink.gif

Ce message a été modifié par fancy - 14 Nov 2007, 11:16.


--------------------
Go to the top of the page
 
fancy
posté 15 Nov 2007, 10:45
Message #7


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 4
Inscrit : 23-March 06
Membre no 9584



Bonjour,

Après avoir ré-essayé de refaire toute la manipulation, plus rien ne focntionne... Atos ne veut plus s'installer, mais le paiment par carte bancaire est présent lors de la validation de la commande en mode demo...

Je sais que ce post est mis en résolu mais pourriez-vous m'aider ?
Dois-je commencer un nouveau post sur le sujet du paiement en trois fois ?

Merci de me faire signe, rolleyes.gif
Fancy.


--------------------
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 19th May 2022 - 13:45
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)