Jump to content

willy633

Members
  • Posts

    6
  • Joined

  • Last visited

Recent Profile Visitors

1,586,247 profile views

willy633's Achievements

Newbie

Newbie (1/14)

  • First Post Rare
  • Conversation Starter Rare
  • Week One Done Rare
  • One Month Later Rare
  • One Year In Rare

Recent Badges

2

Reputation

  1. Je viens de contacter IONOS, un technicien très claire dans ses explications confirme que le blocage des POST sans user_agent pour des raisons de sécurité, le problème touche pas mal de site notamment ceux qui tournent encore sous Atos 1.0 (ce service prendra fin définitivement vers la fin d'année) et apparemment d'autres hébergeurs aussi exigent les POST avec user_agent, la solution est du côté ATOS qui doit inclure un user_agent dans leur lignes de requêtes. Sinon changer de contrat avec la banque pour passer à l'Atos v2 peut-être une solution. Bon il reste plus a contacter la banque pour la suite.
  2. Désolé je suis bête... je suis partie tellement loin dans mes réflexions... L'url est envoyé en MP. Sinon après vérification dans les access log les requêtes du serveur de la banque n’apparait plus pour les paiement réussis donc ils sont bloqués quelque part avant d'arriver sur notre serveur. Voici un aperçu d'une ligne lorsque une requêtes arrive sur notre serveur, mais depuis que le problème s'est manifesté plus aucune trace de l'ip du serveur de la banque. 193.56.46.0 - - [31/Aug/2021:09:47:11 +0200] "POST /modules/atos/validation.php HTTP/1.1" 200 - www.###notre-site###.fr "-" "" "-" est-ce l'obligation des fonctions curl de php doivent définir un « user_agent » que IONOS exige est à l'origine de ce problème?
  3. Merci pour votre réponse, je ne vois pas où chercher plus précisement, dans les pages de paiement que j'ai regardé rien de spéciale rien que les lignes les plus basiques, à moins que vous voulez dire la page complète de atos.php ou il faut chercher dans les dossiers de controller ? Sinon je viens de découvrir ceci (en essayant de réinstaller avec une version pour 1.6 mise à jours du modules v3.5.1 atos ) Mais la ils parlent de la déconnexion alors ce n'est pas mon cas. Mais je l'ai fait quand même en suivant l'instruction pour la configuration de .htaccess en ajoutant la ligne demandée Header always edit Set-Cookie (.*) "$1; SameSite=None; Secure" Bien-sur ça ne marche toujours pas... 😫
  4. Bonjour tout le monde, Je rencontre actuellement un problème de avec le module de paiement offciel Atos v2.9.24 sur une boutique prestashop 1.6.1.1. Hébergé chez IONOS serveur dédié clé en main. Le site tourne depuis des années sans problème, du jour au lendemain, nous recevons les paiements normalement mais les commandes ne se génèrent pas. Dans le backoffice de gestion de paiement de notre banque nous avons comme information : "Etat réponse automatique: UNDEFINED (Aucun envoi de réponse automatique n'a été défini (l'URL de la réponse automatique n'est pas renseigné))" Je pense que url que le module doit envoyer au le serveur de la banque n’est pas arrivé. Sur un autre serveur VPS dédié de chez Ionos, J’ai fait un teste avec notre site secondaire en prestashop v 1.7, tout fonctionne normalement et j’ai fait une installation de prestashop 1.6.1.24 pour tester et le résultat était négatif, le même problème les commandes ne se génère pas. J’ai appelé le service monétique de la banque, ils ont dit que rien a changé de leur côté. Et du côté hébergeur IONOS voici la réponse : "Une mise à jour de sécurité récente a eu lieu, les modules de paiement utilisant la fonction curl de php doivent définir un « user_agent » d’au moins 4 caractères lors du paramétrage." Je n’ai vrai pas le niveau en php, mais avec beaucoup de chance je me débrouille et bidouille jusqu’à présent sans problème, mais pas cette fois-ci j’ai beau à chercher entre les lignes de atos.php et les autres fichiers php du module je n’ai rien trouvé en rapport avec curl, et j’ai vérifié entre les lignes de la version prestashp 1.7 rien non plus, je ne sais pas si le module utilise le curl. Du coup je ne sais pas si le problème est lié réellement au curl user_agent. Ou tout simplement le module est obsolète il faut acheter à nouveau ? Sinon je ne vois qu’entre ces lignes qu’on peut faire peut-être quelques choses, mais je ne sais pas comment… ou il faut chercher ailleurs? private function setSilentURL() { return Tools::getShopDomain(true); } private function getAtosForm($cart) { $lang = new Language((int)$cart->id_lang); $customer = new Customer((int)$cart->id_customer); $currency = new Currency((int)$cart->id_currency); $custom = (int)Configuration::get('ATOS_ALLOW_CUSTOM'); $ps_url = Tools::usingSecureMode() && Configuration::get('PS_SSL_ENABLED_EVERYWHERE') ? Tools::getShopDomainSsl(true) : Tools::getShopDomain(true); $ps_url .= __PS_BASE_URI__; $ps_silent_url = $this->setSilentURL() . __PS_BASE_URI__; $ipn_page = $ps_silent_url.'modules/'.$this->name.'/validation.php'; $cancel_page = $ps_url.'modules/'.$this->name.'/atos_return.php'; if (version_compare(_PS_VERSION_, '1.5', '>')) { $back_url = $ps_url.'index.php?controller=order&step=3&'; $return_page = $ps_url.'index.php?controller=order-confirmation&id_cart='.$cart->id.'&id_module='.$this->id.'&key='.$customer->secure_key.'&'; } else { $back_url = $ps_url.'order.php?step=3&'; $return_page = $ps_url.'order-confirmation.php?id_cart='.$cart->id.'&id_module='.$this->id.'&key='.$customer->secure_key.'&'; } $redirect = Configuration::get('ATOS_REDIRECT') ? ' data=NO_RESPONSE_PAGE_POST="'.$return_page.'"' : ''; // for 1.3 compatibility if (!isset($currency->iso_code_num) || $currency->iso_code_num == '') { $array_currency_iso_num = array( 'DKK' => 208, 'EUR' => 978, 'USD' => 840, 'GBP' => 826, 'SEK' => 752, 'AUD' => 036, 'CAD' => 124, 'ISK' => 352, 'JPY' => 392, 'NZD' => 554, 'NOK' => 578, 'CHF' => 756, 'TRY' => 949, ); $currency_num = $array_currency_iso_num[$currency->iso_code]; } else $currency_num = $currency->iso_code_num; $return = ' normal_return_url="'.$return_page.'"'; $cancel = ' cancel_return_url="'.$cancel_page.'"'; $auto = ' automatic_response_url="'.$ipn_page.'"'; $ip = ' customer_ip_address='.Tools::substr($_SERVER['REMOTE_ADDR'], 0, 16); $capture_day = (int)Configuration::get('ATOS_CAPTURE_DAY'); $capture_mode = (int)Configuration::get('ATOS_CAPTURE_MODE') ? 'AUTHOR_CAPTURE' : 'VALIDATION'; $custom_tpl = ''; if ($custom === 1) $custom_tpl = ' templatefile=custom_tpl'; $parm = 'merchant_id='.Configuration::get('ATOS_MERCHANT_ID').' language='.$lang->iso_code. ' customer_id='.(int)$cart->id_customer. ' caddie='.(int)$cart->id. ' merchant_country=fr amount='.(int)round(sprintf('%f', $cart->getOrderTotal() * 100)). ' currency_code='.$currency_num. ' capture_day='.$capture_day. ' capture_mode='.$capture_mode. ' pathfile="'.dirname(__FILE__).'/pathfile" '.$return.$cancel.$auto.$ip.$redirect.$custom_tpl; $is_win = (Tools::strtoupper(Tools::substr(PHP_OS, 0, 3)) === 'WIN'); if (!$result = exec($this->bin_dir.'request'.(((int)$is_win === 1) ? '.exe' : '').' '.$parm)) return $this->l('Atos error: can\'t execute binary'); unset($cart, $lang, $customer, $currency); $result_array = explode('!', $result); if ($result_array[1] == -1) return $this->l('Atos error:').' '.$result_array[2]; elseif (!isset($result_array[3])) return $this->l('Atos error: can\'t execute request'); return $result_array[3]; } Ou il est temps que je migre vers la version 1.7 ? Merci de pour vos aides. Bonne journée.
  5. Bonjour, J'ai également le même soucis, je fonctionne en BtoB, mais sans remise. Avec des cents de différence également. Merci pour vos aides.
  6. Bonjour, J'ai résolu le problème avec cette ligne, dû moins pour le moment. Espérant que d'autres problèmes ne viennent pas me hanter par la suite, pour les gens qui cherchent encore... bah glisse moi un petit billet de 50euros, je vous donnerai la solution. Non je blague !! il faut coller la ligne $id_country = $id_country ? $id_country : Configuration::get('PS_COUNTRY_DEFAULT'); après : public static function priceCalculation($id_shop, $id_product, $id_product_attribute, $id_country, $id_state, $zipcode, $id_currency, $id_group, $quantity, $use_tax, $decimals, $only_reduc, $use_reduc, $with_ecotax, &$specific_price, $use_group_reduction, $id_customer = 0, $use_customer_price = true, $id_cart = 0, $real_quantity = 0) et au début de la déclaration : { static $address = null; static $context = null; if ($address === null) $address = new Address(); ..... .... .... si vous n'avez toujour pas compris c'est à dire après "{" et avant "static $address = null;". Avec ça normalement vous êtes tranquille pour le moment. Bon courage à vous. Sinon je tiens à remercier prestashop, même quelque bugs persistent, malheureusement le monde d'informatique n'est jamais parfait. Une solution e-commerce avec autant de fonctions en plus gratuite, difficile de trouver mieux.
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More