Differences

This shows you the differences between two versions of the page.

deutsch:module:shop:paypal-neu [2012/02/26 13:56]
Robert
deutsch:module:shop:paypal-neu [2018/06/03 18:09] (current)
Line 17: Line 17:
==== #1: DB-Update ==== ==== #1: DB-Update ====
-Es muß eine neuen Zwischenspeicher-Tabelle angelegt werden.+Es muß eine neue Zwischenspeicher-Tabelle angelegt werden.
<code php|h SQL-Anweisung in phpmyadmin ausführen:|h> <code php|h SQL-Anweisung in phpmyadmin ausführen:|h>
Line 51: Line 51:
) ENGINE=MyISAM AUTO_INCREMENT=14 ; ) ENGINE=MyISAM AUTO_INCREMENT=14 ;
</code> </code>
 + \\
 + \\
 + \\
 + \\
==== #2: Einspielen der notwendige Dateien ==== ==== #2: Einspielen der notwendige Dateien ====
- front_order_process.inc.php \\ - front_order_process.inc.php \\
- paypal.class.php \\ - paypal.class.php \\
-hier herunterladen +hier herunterladen \\ 
-{{:deutsch:module:shop:phpwcms_paypal.zip|}} +{{:deutsch:module:shop:phpwcms_r421andup_paypal.zip|}} 
-und auf den Server/ in include/inc_module/mod_shop_paypal/inc kopieren.+und auf den Server in include/inc_module/mod_shop_paypal/inc kopieren.
 \\  \\
-==== #3: Modifizieren des bestehenden Orderprocess ==== 
 \\  \\
 \\  \\
 + \\
 +
 +==== #3: Modifizieren des bestehenden Orderprocess ====
=== 1. Template File === === 1. Template File ===
Line 123: Line 129:
-=== 2.1: frontend.render.php ===+=== 2: frontend.render.php ===
Nach Nach
<code> <code>
Line 173: Line 179:
$_SESSION['shopping_cart']['order_number'] = $order_num; $_SESSION['shopping_cart']['order_number'] = $order_num;
- switch( $_SESSION['shopping_cart']['payby'] ){ + switch( $_SESSION[CART_KEY]['payby'] ){ 
- +
case 'paypal': case 'paypal':
headerRedirect(PHPWCMS_URL.$_tmpl['config']['cart_url']."&shop_order_process"); headerRedirect(PHPWCMS_URL.$_tmpl['config']['cart_url']."&shop_order_process");
Line 191: Line 197:
} //endswitch } //endswitch
</code> </code>
-wieder schließen. \\+wieder schließen.
 \\  \\
- + \\ 
- + \\ 
- + \\  
- +Suche
- +
-=== 6. frontend.render.php ===  +
-Suche die Funktion+
<code> <code>
-get_payment_options()+$supported = array('prepay' => 0, 'pod' => 0, 'onbill' => 0);
</code> </code>
-suchen und +und überschreiben mit
<code php|h $supported mit:|h> <code php|h $supported mit:|h>
- $supported = array('paypal' => 0, 'prepay' => 0, 'pod' => 0, 'onbill' => 0);+$supported = array('paypal' => 0, 'prepay' => 0, 'pod' => 0, 'onbill' => 0);
</code> </code>
-überschreiben. \\ +überschreiben. 
-\\ + \\ 
-Anschließend + \\ 
-<code php|h das ans ende vor dem schließenden PHP-Tag kopieren.:|h>+ \\ 
 + \\ 
 +Das ans ende vor dem schließenden PHP-Tag kopieren: 
 +<code php|h |h>
function validateReferrer(  $yoursite, //Your site url without 'http://' or subdomain function validateReferrer(  $yoursite, //Your site url without 'http://' or subdomain
$domain_name //Type your domain with www. this time $domain_name //Type your domain with www. this time
Line 436: Line 442:
} }
-</code> 
-  
- 
-=== 7. processing.preferences.inc.php === 
-Ersetzungen wie folgt. Nach 
-<code> 
-  $plugin['data']['shop_pref_email_from'] = clean_slweg($_POST['pref_email_from']); 
-</code> 
-ggf. das einfügen 
-<code> 
- $plugin['data']['shop_pref_email_paypal'] = clean_slweg($_POST['pref_email_paypal']); 
</code> </code>
 \\  \\
-nach 
-<code> 
- if(! is_valid_email($plugin['data']['shop_pref_email_from']) ) $plugin['data']['shop_pref_email_from'] = ''; 
-</code> 
-ggf. das einfügen: 
-<code> 
- if(! is_valid_email($plugin['data']['shop_pref_email_paypal']) ) $plugin['data']['shop_pref_email_paypal'] = ''; 
-</code> 
 \\  \\
-vor 
-<code> 
- 'prepay' => empty($_POST['pref_payment_prepay']) ? 0 : 1, 
-</code> 
-ggf. das einfügen 
-<code> 
- 'paypal' => empty($_POST['pref_payment_paypal']) ? 0 : 1, 
-</code> 
- \\  
-nach 
-<code> 
- _setConfig('shop_pref_email_from', $plugin['data']['shop_pref_email_from'], 'module_shop'); 
-</code> 
-ggf. das einfügen 
-<code> 
- _setConfig('shop_pref_email_paypal', $plugin['data']['shop_pref_email_paypal'], 'module_shop'); 
-</code> 
 \\  \\
-nach 
-<code> 
- 'shop_pref_email_from' => '', 
-</code> 
-ggf. das einfügen 
-<code> 
- 'shop_pref_email_paypal' => '', 
-</code> 
 \\  \\
-nach + 
-<code> +==== #4: Zusammenfassung ==== 
- 'prepay'=> 1,  +Jetzt müßte \\ 
-</code> +  a. die Zahlart PayPal Auswahl im Shop verfügbar sein 
-ggf. das einfügen +  b. der Shop innerhalb seiner normalen Parameter funktionieren 
-<code> +  c. eine Weiterleitung geschehen (höchstwahrscheinlich fehlerhaft!)
- 'paypal' => 1, +
-</code>+
 \\  \\
- \\  +Sollte eine der oben aufgeführten Punkte nicht zutreffen gibt es ein Problem. Kontrollier bitte noch einmal ganz genau die Punkt eins bis drei.
-=== 8. Language-Files === +
-Ggf. die language files unter /include/inc_module/mod_shop/lang mit paypal anreichern. \\ +
-Das sollte eigentlich bei phpwcms > 2007 bereits vorhanden sein.+
 \\  \\
-Bspw. für deutsch nach 
-<code> 
-$BLM['shopprod_payment_method'] = 'Zahlungsmethoden'; 
-</code> 
-das einfügen 
-<code> 
-$BLM['shopprod_payby_paypal'] = 'PayPal'; 
-$BLM['shopprod_email_paypal'] = 'PayPal E-Mail'; 
-</code> 
 \\  \\
 \\  \\
- \\ +==== #5: config.inc.php ==== 
-==== #4: Zwischenzusammenfassung ==== +Mit großer Wahrscheinlichkeit ist die Weiterleitungen beim Abschliessen des Bestellprozesses fehlerhaft. Die Parameter $phpwcms['machine_alias'] und $phpwcms['site_domain'] existieren Standardmäßig nicht und sollten in die config.inc.php nachgetragen werden.
-Ab jetzt müßte \\ +
-  a. die Zahlart PayPal Auswahl im Shop verfügbar sein \\ +
-  b. eine Weiterleitung zu PayPal geschehen (derzeit ist noch die Sandbox Testumgebung aktiv) \\ +
-  c. der Shop innerhalb seiner normalen Parameter funktionieren. \\ +
- \\ +
-Sollte eine der oben aufgeführten Punkte nicht zutreffen gibt es ein Problem. Kontrollier bitte noch einmal ganz genau die Punkt eins bis drei. +
- \\ +
- \\ +
-Sollte es zu eigenartigen Weiterleitungen beim ABschliessen des Bestellprozesses kommen, dann trifft dies zu: +
-Die zur Verfügung gestellte Datei front.order_process.inc.php enthält einen Abschitt, zum Überprüfen des Referrer. +
-<code> +
- switch ($_GET['action']) { +
-  +
-    case 'process':      // Process and order... +
- validateReferrer(   $phpwcms['site_domain'], +
-    $phpwcms['machine_alias'].'.'.$phpwcms['site_domain']  +
- );//or bail... +
-</code> +
-Diese Parameter $phpwcms['machine_alias'] und $phpwcms['site_domain'] existieren Standardmäßig nicht und sollten ggf. in die config.inc.php nachgetragen werden.+
Konkret wäre das: Konkret wäre das:
<code> <code>
Line 536: Line 465:
$phpwcms['machine_alias'] = 'alias'; // www oder subdomain $phpwcms['machine_alias'] = 'alias'; // www oder subdomain
</code> </code>
- 
-Bitte ggf auch die frontend.render.php => function validateReferrer() einsehen und verstehen was da passiert! 
- 
-==== #5.1: Übersetzung ==== 
-Wird ein Kunde zu Paypal weiter geleitet erscheint eine Meldung. Diese ist derzeit in englischer Sprache. Unter paypal.class.php kann dies verändert werden. \\ 
 \\  \\
-Such nach +In diesem Zusammenhang auch die frontend.render.php => function validateReferrer() einsehen und verstehen was da passiert!
-<code> +
-// Generate the request header +
-</code> +
-und ersetze das darauf folgende +
-<code php|h beispielhaft mit:|h> +
- echo "<html>\n"; +
- echo "<head><title>PayPal Zahlung...</title></head>\n"; +
- +
- echo "<body onLoad=\"document.forms['paypal_form'].submit();\">\n"; +
- +
- echo "<center><h2>Bitte warten. Sie werden jetzt zu PayPal weiter geleitet.</h2></center>\n"; +
- echo "<form method=\"post\" name=\"paypal_form\" "; +
- echo "action=\"".$this->paypal_url."\">\n"; +
- +
- foreach ($this->fields as $name => $value) { +
- echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n"; +
-+
- echo "<center><br/><br/>Sollten Sie nicht innerhalb der nächsten Sekunden weitergeleitet werden "; +
- echo "klicken Sie bitte hier...<br/><br/>\n"; +
- echo "<input type=\"submit\" value=\"Zu PayPal\"></center>\n"; +
- +
- echo "</form>\n"; +
- echo "</body></html>\n"; +
-</code> +
- \\ +
- \\ +
-==== #5.2: Übersetzung ==== +
-Die Success/ Error Page muß ebenso angepasst werden. Diese -wie zuvor angelegt/ eingefügt- im Template ganz am Ende zu finden. \\ +
- \\ +
-<code php|h beispielhafte deutsche übersetzung:|h> +
-<!--PAYPAL_ORDER_DONE_START//--> +
- <h2>Bestellung  #{ORDER} erfolgreich platziert</h2> +
- <p>Hallo <strong>{INV_FIRSTNAME} {INV_NAME}</strong>,<br /> +
- Vielen Dank für deine Bestellung. Du erhälst eine Benachrichtigung an <strong>{EMAIL}</strong> sobald uns Deine Bezahlung von PayPal bestätigt wurde.</p> +
- <p>Deine Bestellnummer lautet: <strong>{ORDER}</strong>. Bitte verwende die Nummer bei Rückfragen.</p> +
-<!--PAYPAL_ORDER_DONE_END//--> +
- +
-<!--PAYPAL_ORDER_DEBUG_START//--> +
- <h2>Paypal Fehler</h2> +
- <p><strong>{DEBUG_MSG1} </strong></p> +
- <p><strong>{DEBUG_MSG2} </strong></p> +
-<!--PAYPAL_ORDER_DEBUG_END//--> +
-</code> +
- \\ +
- \\ +
- \\ +
-==== #6: Beheben des Steuerbug ==== +
-Zwar gibt es unter Shop > Produkte die Möglichkeit zu bestimmen ob ein Preis in brutto oder netto vorliegt. Die Erweiterung wertet dies jedoch nicht aus sondern geht standardmäßig von einem Netto-Preis aus. Das bedeutet PayPal rechnet noch einmal die Mehrwertsteuer oben drauf. Diese Erweiterung beseitigt das unerwünschte Verhalten. \\ +
- \\ +
-**ACHTUNG:** Hier wäre eine Abfrage wünschenswert die anhand der Erfassung im Backend entscheidet ob Artikel mit oder ohne MwSt. an Paypal übergeben werden muß. Der folgende Core-Hack erfordert **alle** Produkte des Shops als Brutto. \\ +
- \\ +
-Vorgehensweise: Quick&Dirty wird die Tax-Zeile aus der Übergabe an PayPal entfernt. \\ +
- \\ +
-<code php|h Suche in paypal.class.php: |h> +
-      foreach ($this->fields as $name => $value) { +
-        echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n"; +
-      } +
-</code> +
-<code php|h Ersetze die Funktion mit: |h> +
-      foreach ($this->fields as $name => $value) { +
- //remove tax from data-output  + q23.media 23102011 +
- if (substr($name, 0, 3) != 'tax') { +
-         echo "<input type=\"hidden\" name=\"$name\" value=\"$value\"/>\n"; +
-+
-      } +
-</code>+
deutsch/module/shop/paypal-neu.1330260971.txt.gz · Last modified: 2018/06/03 18:07 (external edit)
www.planmatrix.de www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0