Ankündigung

Einklappen
Keine Ankündigung bisher.

Nach einbau von Amazon Pay wird die Adresse nicht mehr angenommen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Nach einbau von Amazon Pay wird die Adresse nicht mehr angenommen

    Hallo zusammen,

    folgendes Problem oder Scenario.

    Ich lege einen Artikel in den Warenkorb, geh zur Kasse, logge mich ein, alles Wunderbar
    Doch dann kommt die Fehlermeldung (ausgegeben von Amazon Pay ) vermute ich
    Ihre Adressdaten sind unvollständig, es fehlen Straße und Hausnummer.
    Bitte clicken Sie bei der Adresse auf Bearbeiten und tragen Sie Straße und Hausnummer im Feld Straße ein. Bestätigen Sie mit dem Button Aktualisieren.

    Angabe der Adressdaten:
    test test (Hauptanschrift)

    test test
    testweg 123
    12345 test ort
    Deutschland

    Ich kann die Adressdaten theoretisch ändern, aber es ändert sich nichts an der Fehlermeldung

    Das Passiert mit Kundenkonto und auch bei bestellen ohne Kundenkonto.

    Hat wer eine Idee, wo ich ansetzen soll?
    Zuletzt geändert von bumerang24; 20.11.2017, 18:38.

    #2
    Beitrag ins passende Unterforum verschoben.

    Bitte genauere Info:
    Mit welchem Kunden wird hier eingeloggt?
    Mit einem, der schonmal via Amazon eingeloggt hat, also mit der Amazon Sandbox Emailadresse?
    Und der soll jetzt nicht mit Amazon bezahlen sondern mit einer anderen Zahlungsart?

    Kommentar


      #3
      Ich habe drei verschiedene Kunden.
      Kunde 1 kauft nur über Amazon SandBox mit eigener Mail Adresse
      Kunde 2 ist bereits registrierter Bestandskunde mit eigener MailAdresse, kauft nur über das Kundenkonto ein, kein Amazon Pay
      Kunde 3 will sich nicht registrieren, kauft mit eigener Mail Adresse als Gast ein

      Zum testen shop.bumerang24.de ( ist mein Testshop live )

      Kommentar


        #4
        Und bei welchem Kunden genau kommt diese Meldung?
        Ist das eine Email, die unter Kunden > Kunden mit einem X als ohne Account gekennzeichnet ist?
        Hat dieser Kunde mehrere Adressen im Adressbuch?
        Ist bei all seinen Adressen wirklich überall eine Strasse vorhanden?

        Kommentar


          #5
          eine Adresse,
          Änderung bringt nichts, Strasse überall vorhanden wie im Test Beispiel
          weitere Adresse bringt auch nichts
          Es kommt beim Bestandskunden, und auch beim Kunden ohne Kundenkonto immer diese Fehlermeldung

          Cache im FF jedesmal auch gelleert zur Sicherheit vor jeden neuen Login
          Zuletzt geändert von bumerang24; 20.11.2017, 18:46. Grund: zusatz

          Kommentar


            #6
            Poste mal den Inhalt der includes/modules/pages/checkout_shipping/header_php.php

            Kommentar


              #7
              Datei wie auf dem Server ( angepasst mit Bayond Compare )

              Code:
              <?php
              /**
               * Checkout Shipping Page
               *
               * @package page
               * @copyright Copyright 2003-2017 Zen Cart Development Team
               * @copyright Portions Copyright 2003 osCommerce
               * @license http://www.zen-cart-pro.at/license/2_0.txt GNU Public License V2.0
               * @version $Id: header_php.php for Amazon Pay 2017-11-15 19:41:51Z webchills $
               */
              // This should be first line of the script:
                $zco_notifier->notify('NOTIFY_HEADER_START_CHECKOUT_SHIPPING');
                require_once(DIR_WS_CLASSES . 'http_client.php');
                // A RETURNING COWOA CUSTOMER SHOULD NOT BE ABLE TO CHECKOUT COMING FROM ORDER STATUS, SO KILL THE SESSION  
               if ($_SESSION['ORDER_STATUS'] == 'True') {
                    zen_session_destroy();      
                }
                
                // check if is mobile or tablet visitor to allow order report mobile, tablet or desktop
                
               if (!class_exists('Mobile_Detect')) {
                include_once(DIR_WS_CLASSES . 'Mobile_Detect.php');
              }
              $detect = new Mobile_Detect;
              $isMobile = $detect->isMobile();
              $isTablet = $detect->isTablet();
               if ($detect->isMobile()) {
              $_SESSION['mobilevisitor'] = true;
              $_SESSION['tabletvisitor'] = false;
              
              }
              if ($detect->isTablet()) {
              $_SESSION['tabletvisitor'] = true;
              $_SESSION['mobilevisitor'] = false;
              }
              
              // if there is nothing in the customers cart, redirect them to the shopping cart page
                if ($_SESSION['cart']->count_contents() <= 0) {
                  zen_redirect(zen_href_link(FILENAME_TIME_OUT));
                }
              
              // if the customer is not logged on, redirect them to the login page
                if (!isset($_SESSION['customer_id']) || !$_SESSION['customer_id']) {
                  $_SESSION['navigation']->set_snapshot();
                  zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL'));
                } else {
                  // validate customer
                  if (zen_get_customer_validate_session($_SESSION['customer_id']) == false) {
                    $_SESSION['navigation']->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_SHIPPING));
                    zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL'));
                  }
                }
              
              // Validate Cart for checkout
                $_SESSION['valid_to_checkout'] = true;
                $_SESSION['cart']->get_products(true);
                if ($_SESSION['valid_to_checkout'] == false) {
                  $messageStack->add('header', ERROR_CART_UPDATE, 'error');
                  zen_redirect(zen_href_link(FILENAME_SHOPPING_CART));
                }
                
                // verify if phone number exists
                
                if (MODULE_PAYMENT_FRITES_PHONE_REQUIRED == 'True') {  
               
                  $phone_query = "SELECT customers_telephone
                                          FROM   " . TABLE_CUSTOMERS . "
                                          WHERE  customers_id = :customersID     
                                          ";
              $phone_query = $db->bindVars($phone_query, ':customersID', $_SESSION['customer_id'], 'integer');
                  
                  $check_phone = $db->Execute($phone_query);
              
                  if ($check_phone->fields['customers_telephone'] == '') {
                     $messageStack->add_session('header', ERROR_NO_PHONE_DEFINED, 'error');
                  zen_redirect(zen_href_link(FILENAME_ACCOUNT_EDIT));
                  }
                }
                  
                  // verify if last name exists
                  $lastname_query = "SELECT customers_lastname
                                          FROM   " . TABLE_CUSTOMERS . "
                                          WHERE  customers_id = :customersID     
                                          ";
              $lastname_query = $db->bindVars($lastname_query, ':customersID', $_SESSION['customer_id'], 'integer');
                  
                  $check_lastname = $db->Execute($lastname_query);
              
                  if ($check_lastname->fields['customers_lastname'] == '') {
                     $messageStack->add_session('header', ERROR_NO_LASTNAME_DEFINED, 'error');
                  zen_redirect(zen_href_link(FILENAME_ACCOUNT_EDIT));
                  }
                  
                  // verify if street exists
                  $street_query = "SELECT entry_street_address
                                          FROM   " . TABLE_ADDRESS_BOOK . "
                                          WHERE  customers_id = :customersID
                                          AND    address_book_id = :addressBookID";   
                                          
              $street_query = $db->bindVars($street_query, ':customersID', $_SESSION['customer_id'], 'integer');
              $street_query = $db->bindVars($street_query, ':addressBookID', $_SESSION['sendto'], 'integer');
                  
                  $check_street = $db->Execute($street_query);
              
                  if ($check_street->fields['entry_street_address'] == '') {
                     $messageStack->add_session('header', ERROR_NO_STREET_DEFINED, 'error');
                  zen_redirect(zen_href_link(FILENAME_ADDRESS_BOOK));
                  }
                  
              
              // Stock Check
                if ( (STOCK_CHECK == 'true') && (STOCK_ALLOW_CHECKOUT != 'true') ) {
                  $products = $_SESSION['cart']->get_products();
                  for ($i=0, $n=sizeof($products); $i<$n; $i++) {
                    $qtyAvailable = zen_get_products_stock($products[$i]['id']);
                    // compare against product inventory, and against mixed=YES
                    if ($qtyAvailable - $products[$i]['quantity'] < 0 || $qtyAvailable - $_SESSION['cart']->in_cart_mixed($products[$i]['id']) < 0) {
                        zen_redirect(zen_href_link(FILENAME_SHOPPING_CART));
                        break;
                      }
                    }
                  }
              // if no shipping destination address was selected, use the customers own address as default
                if (!$_SESSION['sendto']) {
                  $_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
                } else {
              // verify the selected shipping address
                  $check_address_query = "SELECT count(*) AS total
                                          FROM   " . TABLE_ADDRESS_BOOK . "
                                          WHERE  customers_id = :customersID
                                          AND    address_book_id = :addressBookID";
              
                  $check_address_query = $db->bindVars($check_address_query, ':customersID', $_SESSION['customer_id'], 'integer');
                  $check_address_query = $db->bindVars($check_address_query, ':addressBookID', $_SESSION['sendto'], 'integer');
                  $check_address = $db->Execute($check_address_query);
              
                  if ($check_address->fields['total'] != '1') {
                    $_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
                    unset($_SESSION['shipping']);
                  }
                }
              
                require(DIR_WS_CLASSES . 'order.php');
                $order = new order;
              
              // register a random ID in the session to check throughout the checkout procedure
              // against alterations in the shopping cart contents
              if (isset($_SESSION['cart']->cartID)) {
                if (!isset($_SESSION['cartID']) || $_SESSION['cart']->cartID != $_SESSION['cartID']) {
                  $_SESSION['cartID'] = $_SESSION['cart']->cartID;
                }
              } else {
                zen_redirect(zen_href_link(FILENAME_TIME_OUT));
              }
              
              // if the order contains only virtual products, forward the customer to the billing page as
              // a shipping address is not needed
                if ($order->content_type == 'virtual') {
                  $_SESSION['shipping'] = array();
                  $_SESSION['shipping']['id'] = 'free_free';
                  $_SESSION['shipping']['title'] = 'free_free';
                  $_SESSION['shipping']['cost'] = 0;
                  $_SESSION['sendto'] = false;
                  zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
                }
              
                $total_weight = $_SESSION['cart']->show_weight();
                $total_count = $_SESSION['cart']->count_contents();
              
              // load all enabled shipping modules
                require(DIR_WS_CLASSES . 'shipping.php');
                $shipping_modules = new shipping;
              
                $pass = true;
                if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') ) {
                  $pass = false;
              
                  switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
                    case 'national':
                      if ($order->delivery['country_id'] == STORE_COUNTRY) {
                        $pass = true;
                      }
                      break;
                    case 'international':
                      if ($order->delivery['country_id'] != STORE_COUNTRY) {
                        $pass = true;
                      }
                      break;
                    case 'both':
                      $pass = true;
                      break;
                  }
              
                  $free_shipping = false;
                  if ( ($pass == true) && ($_SESSION['cart']->show_total() >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
                    $free_shipping = true;
                  }
                } else {
                  $free_shipping = false;
                }
              
                require(DIR_WS_MODULES . zen_get_module_directory('require_languages.php'));
              
                if (isset($_SESSION['comments'])) {
                  $comments = $_SESSION['comments'];
                }
              
              
              // process the selected shipping method
                if ( isset($_POST['action']) && ($_POST['action'] == 'process') ) {
                  if (zen_not_null($_POST['comments'])) {
                    $_SESSION['comments'] = zen_output_string_protected($_POST['comments']);
                  }
                  $comments = $_SESSION['comments'];
                  $quote = array();
              
                  if ( (zen_count_shipping_modules() > 0) || ($free_shipping == true) ) {
                    if ( (isset($_POST['shipping'])) && (strpos($_POST['shipping'], '_')) ) {
                      /**
                       * check to be sure submitted data hasn't been tampered with
                       */
                      if ($_POST['shipping'] == 'free_free' && ($order->content_type != 'virtual' && !$pass)) {
                        $quote['error'] = 'Invalid input. Please make another selection.';
                      }
                      list($module, $method) = explode('_', $_POST['shipping']);
                      if ( is_object($$module) || ($_POST['shipping'] == 'free_free') ) {
                        if ($_POST['shipping'] == 'free_free') {
                          $quote[0]['methods'][0]['title'] = FREE_SHIPPING_TITLE;
                          $quote[0]['methods'][0]['cost'] = '0';
                          $quote[0]['methods'][0]['icon'] = '';
                        } else {
                          $quote = $shipping_modules->quote($method, $module);
                        }
                        if (isset($quote[0]['error'])) {
                          unset($_SESSION['shipping']);
                        } else {
                          if ( (isset($quote[0]['methods'][0]['title'])) && (isset($quote[0]['methods'][0]['cost'])) ) {
                            $_SESSION['shipping'] = array('id' => $_POST['shipping'],
                                              'title' => (($free_shipping == true) ?  $quote[0]['methods'][0]['title'] : $quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'),
                                              'cost' => $quote[0]['methods'][0]['cost']);
              
                            zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
                          }
                        }
                      } else {
                        unset($_SESSION['shipping']);
                      }
                    }
                  } else {
                    unset($_SESSION['shipping']);
              
                    zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
                  }
                }
              
              // get all available shipping quotes
                $quotes = $shipping_modules->quote();
              
                // check that the currently selected shipping method is still valid (in case a zone restriction has disabled it, etc)
                if (isset($_SESSION['shipping'])) {
                  $checklist = array();
                  foreach ($quotes as $key=>$val) {
                    if ($val['methods'] != '') {
                      foreach($val['methods'] as $key2=>$method) {
                        $checklist[] = $val['id'] . '_' . $method['id'];
                      }
                    } else {
                      // skip
                    }
                  }
                  $checkval = $_SESSION['shipping']['id'];
                  if (!in_array($checkval, $checklist) && $_SESSION['shipping']['id'] != 'free_free') {
                    $messageStack->add('checkout_shipping', ERROR_PLEASE_RESELECT_SHIPPING_METHOD, 'error');
                  }
                }
              
              // if no shipping method has been selected, automatically select the cheapest method.
              // If the module's status was changed when none were available, to save on implementing
              // a javascript force-selection method, also automatically select the cheapest shipping
              // method if more than one module is now enabled
                if ((!isset($_SESSION['shipping']) || (!isset($_SESSION['shipping']['id']) || $_SESSION['shipping']['id'] == '') && zen_count_shipping_modules() >= 1)) $_SESSION['shipping'] = $shipping_modules->cheapest();
              
              
                // Should address-edit button be offered?
                $displayAddressEdit = (MAX_ADDRESS_BOOK_ENTRIES >= 2);
              
                // if shipping-edit button should be overridden, do so
                $editShippingButtonLink = zen_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL');
                if (isset($_SESSION['payment']) && method_exists(${$_SESSION['payment']}, 'alterShippingEditButton')) {
                  $theLink = ${$_SESSION['payment']}->alterShippingEditButton();
                  if ($theLink) {
                    $editShippingButtonLink = $theLink;
                    $displayAddressEdit = true;
                  }
                }
              
                require(DIR_WS_CLASSES . 'payment.php');
                $payment_modules = new payment;
              
                $breadcrumb->add(NAVBAR_TITLE_1, zen_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
                $breadcrumb->add(NAVBAR_TITLE_2);
              
              // This should be last line of the script:
                $zco_notifier->notify('NOTIFY_HEADER_END_CHECKOUT_SHIPPING');

              Kommentar


                #8
                Poste noch die genaue PHP Version und die genaue MySQL Version aus Tools > Serverinfo so, diese beiden Dinge reichen:
                Code:
                PHP Version: 7.0.22-0ubuntu0.16.04.1 (Zend: 3.0.0)
                Datenbank: MySQL 5.7.20-0ubuntu0.16.04.1

                Kommentar


                  #9
                  Code:
                  [B]PHP Version:[/B] 7.0.21 (Zend: 3.0.0)
                  Code:
                  [B]Datenbank:[/B] MySQL 5.7.16-log[CODE]
                  HTTP Server: Apache[/CODE]
                  Code:
                  [B]Server Betriebssystem:[/B] Linux 4.6.0-0.bpo.1-amd64

                  Kommentar


                    #10
                    Füge mal in der includes/modules/pages/checkout_shipping/header_php.php unter //verifiy if street exists folgendes ein:
                    Code:
                    // verify if street exists    
                        if (!$_SESSION['sendto']) {
                        $_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
                      }
                    Kommt dann die Versandkostenauswahl?

                    Kommentar


                      #11
                      Die Versandkostenauswahl kommt, mit Weiter wenn ich bestätige eine Weiße Seite....
                      der Log dazu gleich noch in der Checkout Payment Seite
                      Code:
                      [20-Nov-2017 20:06:18 Europe/Berlin] PHP Fatal error:  Cannot declare  class order, because the name is already in use in  /home/www/XX_XXXX_155_SHOP/includes/classes/order.php on line 1299
                      und
                      Code:
                      [20-Nov-2017 20:09:05 Europe/Berlin] PHP Deprecated:  Methods with the  same name as their class will not be constructors in a future version of  PHP; _Browser has a deprecated constructor in  /home/www/XX_XXXX_155_SHOP/extras/plugins/riCjLoader/lib/browser.php on  line 39
                      Ich weis jetzt wieder nicht genau Fehler oder Hinweis bei den Dateien.

                      Ich hab jetzt am Server PHP 5.6 eingestellt, auch keine Änderung, Log und weiße Seite bleibt

                      Noch Zeile 94 - 111 in der Headerphp nach der Änderung
                      Code:
                      // verify if street exists    
                          if (!$_SESSION['sendto']) {
                          $_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
                        }
                          $street_query = "SELECT entry_street_address
                                                  FROM   " . TABLE_ADDRESS_BOOK . "
                                                  WHERE  customers_id = :customersID
                                                  AND    address_book_id = :addressBookID";   
                                                  
                      $street_query = $db->bindVars($street_query, ':customersID', $_SESSION['customer_id'], 'integer');
                      $street_query = $db->bindVars($street_query, ':addressBookID', $_SESSION['sendto'], 'integer');
                          
                          $check_street = $db->Execute($street_query);
                      
                          if ($check_street->fields['entry_street_address'] == '') {
                             $messageStack->add_session('header', ERROR_NO_STREET_DEFINED, 'error');
                          zen_redirect(zen_href_link(FILENAME_ADDRESS_BOOK));
                          }
                      Zuletzt geändert von bumerang24; 20.11.2017, 20:17. Grund: zusätzliche Infos

                      Kommentar


                        #12
                        Das hat alles nichts mit der PHP oder MySQL Version zu tun.
                        Die Änderung in der includes/modules/pages/checkout_shipping/header_php.php ist in diesem Shop nötig, weil anscheinend bei Dir die SESSION['sendto'] nicht gesetzt wird. Das weist auf andere Probleme in diesem Shop hin.
                        Die weiße Seite auf der checkout_payment Seite hat dann definitiv nichts mehr mit dem Amazon Modul zu tun und auch nichts mit dieser Änderung.

                        Cannot declare class order, because the name is already in use in includes/classes/order.php deutet darauf hin, dass Du Funktionsdateien ins Sprachverzeichnis hochgeladen hast oder dass in includes/classes doppelte Dateien mit der Endung php vorkommen., z.B. Backupdateien, die dort nichts verloren haben.

                        Es wäre wohl sinnvoll, das Modul zu entfernen und die vorgenommenen Änderungen rückgängig zu machen.
                        Und dann eine normale Bestellung durchzuspielen und erst alle Fehler in diesem Shop zu beheben, bevor er mit weiteren Änderungen noch weiter modifiziert wird.

                        Kommentar


                          #13
                          Ich spiele mal mein Backup ein, dann sind die Modul Änderungen Geschichte.
                          Ich teste dann nochmal wie gewünscht die Bestellungen und melde mich.

                          Mit der Datei hattest du rechts es war eine orders.php_1 im Orner Classes
                          Der Testshop läuft wieder ohne Amazon Pay, eine Testbestellung habe ich für dich fertig gemacht.
                          So siehst du dass alles läuft.
                          Ich werde dann morgen noch mal das komplett geänderte Amazon Pay einbauen, testen und berichten.

                          Schönen Abend noch und erst mal Danke für´s Fehlersuchen
                          Zuletzt geändert von bumerang24; 20.11.2017, 21:02.

                          Kommentar


                            #14
                            Geschafft

                            So,
                            nun sollte alles laufen, keine Fehler und Logs mehr vorhanden, dank den Anpassungen von Webchills.
                            Jetzt wird es ernst, Amazon Pay geht an den Start für das Weihnachtsgeschäft.

                            Kommentar


                              #15
                              Hi zusammen,

                              kurze Kommentar dazu: ich habe eben Amazon Pay testweise eingebaut und den gleichen Fehler bekommen. Ich habe meinen Shop plain mit 1.5.5e aufgesetzt, also nicht von eine alten Version migriert. Ich habe vor Einspielen von AP schon einige Module eingebaut, daher weiß ich nicht, woher der Fehler jetzt rührt. Ich hatte keine Log-Fehlermeldung. Nach Einbau Deines Codes webchills läuft alles. Ggf. muss das standardmäßig ins Modul rein, oder?

                              Das nur als ergänzende Info...

                              LG und schönen Tag.
                              Lutz

                              Kommentar

                              Info zu diesem Forenarchiv:
                              Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                              Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                              Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                              PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                              Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                              FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                              Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                              Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                              Fehler in der Software können auf Github als Issues gemeldet werden.
                              Follow us
                              aktuelle version
                              Zen Cart 1.5.7g deutsch
                              vom 12.12.2023
                              [Download]
                              Lädt...
                              X