Differences

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

deutsch:module:shop:paypal [2011/12/20 21:10]
Marcus Obst fix the SQL statements
deutsch:module:shop:paypal [2018/06/03 18:09] (current)
Line 1: Line 1:
-====== Shop mit PayPal-Anbindung ======+====== Shop mit PayPal-Anbindung (alte Release) ======
FIXME translate FIXME translate
Line 14: Line 14:
 \\  \\
**Autor:**  Robert/ q23.media \\ **Autor:**  Robert/ q23.media \\
-**CMS version:** = ab Shop \\ +**CMS version:** = < r421 \\
Verzeichnis: /include/inc_module/mod_shop_paypal/\\ Verzeichnis: /include/inc_module/mod_shop_paypal/\\
Line 167: Line 167:
</code> </code>
-=== 5. in frontend.render.php ===+=== 5. in front.order_submit.inc.php ===
Unter der stelle Unter der stelle
<code> <code>
Line 200: Line 200:
wieder schließen. \\ wieder schließen. \\
 \\  \\
- +=== 6. shop.func.php ===
-=== 6. frontend.render.php === +
Suche die Funktion Suche die Funktion
<code> <code>
Line 269: Line 268:
- $q_result = _dbQuery("SELECT * FROM ".DB_PREPEND."phpwcms_shop_orders WHERE order_number='".$order_num."' LIMIT 1");+ $q_result = _dbQuery("SELECT * FROM ".DB_PREPEND."phpwcms_shop_orders WHERE order_number=".$order_num." LIMIT 1");
if(isset($q_result[0])){ if(isset($q_result[0])){
Line 352: Line 351:
// test the txn_id; if txn_id is used and it's not a chargeback then it's invalid // test the txn_id; if txn_id is used and it's not a chargeback then it's invalid
- $txn_id_is_used = _dbCount("SELECT * FROM ".DB_PREPEND."phpwcms_shop_transactions WHERE txn_id='".$trans['txn_id']."'"); + $txn_id_is_used = _dbCount("Select * from".DB_PREPEND."phpwcms_shop_transactions where txn_id=".$trans['txn_id']);
if(  $txn_id_is_used && !isset($trans['reason_code']) && !( empty($trans['txn_type']) && ($trans['reason_code'] === "chargeback")) ){ if(  $txn_id_is_used && !isset($trans['reason_code']) && !( empty($trans['txn_type']) && ($trans['reason_code'] === "chargeback")) ){
Line 428: Line 427:
- _dbInsertOrUpdate( DB_PREPEND."phpwcms_shop_transactions", $data, "txn_id = '".$trans['txn_id']."'", '');+ _dbInsertOrUpdate( DB_PREPEND."phpwcms_shop_transactions", $data, "where `txn_id` = '".$trans['txn_id']."'", '');
Line 441: Line 440:
</code> </code>
- 
=== 7. processing.preferences.inc.php === === 7. processing.preferences.inc.php ===
Ersetzungen wie folgt. Nach Ersetzungen wie folgt. Nach
Line 514: Line 512:
 \\  \\
 \\  \\
-==== #4: Zwischenzusammenfassung ==== +==== #4: Zusammenfassung ==== 
-Ab jetzt müßte \\ +Jetzt müßte \\ 
-  a. die Zahlart PayPal Auswahl im Shop verfügbar sein \\ +  a. die Zahlart PayPal Auswahl im Shop verfügbar sein 
-  b. eine Weiterleitung zu PayPal geschehen (derzeit ist noch die Sandbox Testumgebung aktiv) \\ +  b. eine Weiterleitung zu PayPal geschehen (derzeit ist noch die Sandbox Testumgebung aktiv) 
-  c. der Shop innerhalb seiner normalen Parameter funktionieren. \\+  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 eine der oben aufgeführten Punkte nicht zutreffen gibt es ein Problem. Kontrollier bitte noch einmal ganz genau die Punkt eins bis drei. Andernfalls: Happy PayPal'ing!!!
 \\  \\
 \\  \\
-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: 
-<code> 
-$phpwcms['site_domain'] = 'domain.de'; // ohne www oder subdomain 
-$phpwcms['machine_alias'] = 'alias'; // www oder subdomain 
-</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 
-<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.1324411804.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