Differences

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

deutsch:module:shop:paypal [2012/02/26 12:39]
Robert
deutsch:module:shop:paypal [2018/06/03 18:09] (current)
Line 1: Line 1:
-====== Shop mit PayPal-Anbindung (alter Release) ======+====== Shop mit PayPal-Anbindung (alte Release) ======
FIXME translate FIXME translate
Line 5: Line 5:
Der phpwcms Shop ist rudimentär, reicht aber für kleine Projekte vollkommend aus. Ärgerlich ist lediglich die beschränkte Zahlungsmöglichkeiten. PayPal wurde zwar im Backend (und teilweise im Code) vorgesehen, funktioniert jedoch bislang nicht. Mittels den folgenden Schritten gelingt es dem Shop Paypal-fähig zu machen. Der phpwcms Shop ist rudimentär, reicht aber für kleine Projekte vollkommend aus. Ärgerlich ist lediglich die beschränkte Zahlungsmöglichkeiten. PayPal wurde zwar im Backend (und teilweise im Code) vorgesehen, funktioniert jedoch bislang nicht. Mittels den folgenden Schritten gelingt es dem Shop Paypal-fähig zu machen.
-Anmerkung:+Anmerkrung:
Es gibt dafür zwar eine alte Shopversion von nebenaube, möchte man allerdings eine modifizierte oder neuere Shopversion des phpwcms nutzen bringt dies nicht viel. Es gibt dafür zwar eine alte Shopversion von nebenaube, möchte man allerdings eine modifizierte oder neuere Shopversion des phpwcms nutzen bringt dies nicht viel.
- 
-Testumgebung: 
-Um die hier vorgestellten Möglichkeiten nutzen zu können, sollte der Shop bzw. die Bezahlung via Paypal Sandbox auf einem online erreichbaren Testserver getestet werden, da Paypal, um die Bezahlung zu verifizieren (IPN) eine URI zu eurem Shop aufruft. Diese sollte dann nicht auf den localhost führen. 
- 
---- ----
Line 18: Line 14:
 \\  \\
**Autor:**  Robert/ q23.media \\ **Autor:**  Robert/ q23.media \\
-**CMS version:** = kleiner r421 \\ +**CMS version:** = < r421 \\
Verzeichnis: /include/inc_module/mod_shop_paypal/\\ Verzeichnis: /include/inc_module/mod_shop_paypal/\\
Line 171: 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 204: 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 273: 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 356: 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 432: 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 445: Line 440:
</code> </code>
- 
=== 7. processing.preferences.inc.php === === 7. processing.preferences.inc.php ===
Ersetzungen wie folgt. Nach Ersetzungen wie folgt. Nach
Line 518: 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.1330256386.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