Sofortüberweisung.de Modul OXID CE 4.0.0 (evtl. auch PE/EE)

Hallo liebe Gemeinde,

Wie bereits angekündigt stellen wir ab sofort ein Modul für Sofortüberweisung.de zur Verfügung das kompatibel mit der aktuellen Oxid Version 4 ist. Das Modul wird unter der GPL veröffentlicht und kann frei heruntergeladen werden. Herunterladen könnt ihr die aktuelle Version des Moduls immer hier:


In der Sektion gratis Module, oder demnächst auch direkt bei sofortüberweisung.de

Über Feedback und Verbesserungsvorschläge würden wir uns freuen.

mfg
Alex
Aggrosoft it intelligence

Achtung, es gab einen kleinen Fehler in dem Sofortüberweisung Modul der es unmöglich machte weitere Module einzubauen die auf die selben Basisklassen zugreifen.

Es steht eine aktualisierte Version zur Verfügung, bitte unbedingt updaten !

Aggrosoft it intelligence GbR

ahoi aggro. erstmal vielen dank für das gratis modul. kannst du bitte ein paar screenshots irgendwo hinpacken? entweder bin ich doof oder es gibt keine :slight_smile:

Was für Screenshots hast du dir denn vorgestellt ? Wenn du es im Einsatz sehen willst --> www.wandmotive.com

Aggrosoft it intelligence GbR

Kann es sein, dass es bei der Hash-Generierung ein Problem gibt?

Nach der Weiterleitung zu Sofortüberweisung bekomme ich:

Der übergebene Input-Hash stimmt nicht mit dem von uns berechneten Input-Hash überein.

Ich denke Problemursache ist, dass die “currency_id” und das “project_password” nicht in die Hashgenerierung miteinfließen. Oder bin ich da auf dem Holzweg?

Ja diesen Fehler habe ich auch schon gesehen, ich bin nur noch nicht dazu gekommen ihn zu fixen.

Versuch mal das

“project_password” => $this->_sSofortuebweisungPassword,

auf Zeile 158 in dem su_basket modul einzufügen das sollte klappen.

Und dann auf Zeile 101

if($params[$keys[$i]] != "" && $keys[$i] != "project_password")

Aggrosoft it intelligence GbR

Danke für den Tipp!

Problem ist nur, dass das Projekt-Passwort jetzt im Klartext im Email-Link drinnen steht.

Idee: Eigene Methode “getHash”, die nur den Hash generiert:

public function getHash(){
$params = $this->getSofortueberweisungAllParameters();
$params[“project_password”] = $this->getSofortuebweisungPassword();
$params[“currency_id”] = “EUR”;

    return md5(implode("|", $params));

}

In Zeile 106 und 134 könnte man dann verwenden:

$hash = $this->getHash();

Viele Grüße, mbierkandt

Ja, das is wohl die bessere Alternative - ich bau es ein und sage bescheid wenn der patch online ist.

Aggrosoft it intelligence GbR

Der Patch ist online, dringend updaten , die Inputprüfung ist für eine Fälschungssicherheit äußerst wichtig.

Aggrosoft it intelligence GbR

Vielen Dank!

Hallo,

ich möchte das Modul gerne für die EE 4 verwenden, aber so wie ich das bis jetzt gesehen hab fehlt ua.die ShopID und die Unterscheidung der einzelnen Subshops.

Ist da das in Planung ?

Grüße, Toni

Wenn du mir verrätst was geändert werden müsste dann glaube ich sollte das kein Problem sein - wo liegt denn das Problem mit der EE?

Aggrosoft it intelligence GbR

Also, das Problem liegt darin das man bei Sofortüberweisung für jeden Subshop der EE ein eigenes Konto benötigt, es soll als mit übertragen werden aus welchen Shop die Bestellung kommt samt aller Daten für das Betreffende Konto.
Dazu muss ein Datenfeld mit der Shop-ID und für jeden Subshop getrennte Zugangsdaten für Sofortüberweisung.

Beim Modul für die EE2.7 war dies so und hat auch Funktioniert.

Grüße, Toni

Hallo,

habe das Modul auch rein gepackt wie beschrieben in der Anleitung incl. Anmeldung. So jetzt habe ich noch eine neue Zahlungsart mit "Sofortüberweisung angelegt und aktiv geschaltet.

So nun das habe ich mit Paypal auch gemacht und wenn man Paypal auswählt und auf weiter geht, öffnet sich die Paypal-Seite. Es wäre nun ne tolle Sache wenn das bei Sofortüberweisung auch so wäre. Was ist zu tun?

In der Payment.tpl ist “Sofortüberweisung” auch mit drin aber reagiert nicht! Sprich es wird nicht die Verlinkung zur su-Seite aktiv und es gibt auch keine Fehlermeldung. Normalerweise sollte ja auch noch wenn diese Bezahlart gewählt wurde ein Link in der Bestellbestätigung auftauchen, was aber auch nicht der Fall ist.

So! – lange Rede kurzer Sinn, würde mich über einen Tipp freuen und muß nicht wieder die ganz Nacht vor der Kiste sitzen.

Gruß Edmund

PS bin noch Frischling im Forum, wo gibt es eine Info wie man besser im Forum an Infos kommt die einem wichtig sind. Finde den Shop grundsätzlich “super” aber die vorhandenen Möglichkeiten sich schlau zu machen wirklich etwas mager.

Hallo Edmund,

ich bin folgender masen vorgegangen erst hab ich das PayPal Modul und dann das Sofortüberweisung modul installiert hierbei war bei mir zu beachten das ich die Shop Version 4.0.1.0 habe und das Paypal Modul für 4.0.0.1 ist!

Zusammenfassung für Beide Module.

Dateien/Ordner die du hochladen kannst Datei Struktur beachten!

Paypal Ordner:

/copy_this

/changed_full/out/basic/tpl/inc

Paypal Dateien:

folgende tpl Dateien left.tpl, basket.tpl aus dem Ordner changed_full/out/basic

Aus dem Ordner changed_full/out/basic/src die oxid.css öffnen (suche nach Paypal) Zeile 325-333 kopieren und in deine Shop oxid.css einfügen dort in Zeile 329 das kopierte einfügen speichern abschicken.

Wenn du dein Design mit look&feel bearbeitest empfiehlt sich das kopierte ebenso in die oxid.tpl.css einzufügen zufinden out/basic/src/gui/ Zeile 327. Da sonnst bei änderungen die Paypal Modifikation verschwindet.

Sofortüberweisung Ordner:

/modules

out/admin

Sofortüberweisung Dateien:

aus dem Ordner /Sofortüberweisung folgende Dateien–> OxidProxy.php, su_feedback.php

aus diesem Ordner Datei su_config öffnen nötigen Angaben machen abspeichern ebenso hochladen.

die sql Datei oxid_payment öffnen kopieren im Backend Service–>Tools–>unter Update SQL einfügen " Speichern" wenn du gleich dabei bist folgende SQL von Paypal:

INSERT INTO oxpayments (OXID, OXACTIVE, OXDESC, OXADDSUM, OXADDSUMTYPE, OXFROMBONI, OXFROMAMOUNT, OXTOAMOUNT, OXVALDESC, OXCHECKED, OXDESC_1, OXVALDESC_1, OXDESC_2, OXVALDESC_2, OXDESC_3, OXVALDESC_3, OXLONGDESC, OXLONGDESC_1, OXLONGDESC_2, OXLONGDESC_3, OXSORT) VALUES (‘oxidpaypal’, 1, ‘PayPal’, 0, ‘abs’, 0, 0, 99999, ‘’, 0, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, 0);

ebenfalls im Backend Kundeninformation–>CMS-Seiten sortieren nach E-Mail

suche Ihre Bestellung/(ident: oxuserordermail) folgenden Code einfügen:

[{if $payment->oxuserpayments__oxpaymentsid->value == “susofortueberweisung”}]
Sollten Sie die Zahlung per Sofortüberweisung nicht bereits getätigt haben, können Sie die Zahlung über diesen Link nochmals einleiten: <b><a href="[{ $basket->getSofortueberweisungLink() }]">Jetzt per Sofortüberweisung bezahlen</a></b>
<br/>
<br/>
[{/if}]

suche nach Ihre Bestellung Plain/(ident: oxuserorderplainmail) folgenden Cod einfügen:

[{if $payment->oxuserpayments__oxpaymentsid->value == “susofortueberweisung”}]
Sollten Sie die Zahlung per Sofortüberweisung nicht bereits getätigt haben, können Sie die Zahlung über diesen Link nochmals einleiten, kopieren Sie dazu den folgenden Link in Ihre Browserleiste:

[{ $basket->getSofortueberweisungLink() }]

[{/if}]

so nun wirds bischen komplizierter am besten du nimmst unveränderte tpl`s aus der aktuellen Shop Version folgende drei: payment.tpl, thankyou.tpl und order.tpl.

Fangen wir an mit der Payment.tpl füge in Zeile 185 folgenden Code ein der ist für beide Paypal und Sofortüberweisung.

(da es ja noch ein anders Sofortüberweisung Modul gibt weise ich gleich darauf hin, das ist für das oben beschriebene Modul nicht das ein Schlauberger das für das andere einfügt :D)

[{elseif $sPaymentID == “susofortueberweisung”}]
<tr onclick=“oxid.form.select(‘paymentid’,[{$inptcounter}]);”>
<td><input id=“test_Payment_[{$sPaymentID}]” type=“radio” name=“paymentid” value="[{$sPaymentID}]" [{if $oView->getCheckedPaymentId() == $paymentmethod->oxpayments__oxid->value}]checked[{/if}]></td>
<td id=“test_PaymentDesc_[{$smarty.foreach.PaymentSelect.iteration}]”><label><b>[{ $paymentmethod->oxpayments__oxdesc->value}]</b></label></td>
<td align=“right”><a href=“https://www.sofortueberweisung.de/cms/index.php?plink=fuerkaeufer&fs=”><img src="/out/basic/img/sofortueberweisung.gif" alt=“Sofortueberweisung” title=“Sofortueberweisung”></a></td>
</tr>
[{elseif $sPaymentID == “oxidpaypal”}]
<tr onclick=“oxid.form.select(‘paymentid’,[{$inptcounter}]);”>
<td><input type=“radio” name=“paymentid” value="[{$sPaymentID}]" [{if $oView->getCheckedPaymentId() == $paymentmethod->oxpayments__oxid->value}]checked[{/if}]></td>
<td><label><b>[{ $paymentmethod->oxpayments__oxdesc->value}]</b></label></td>
<td align=“right”><a href="#" onclick=“javascript:window.open(‘https://www.paypal.com/de/cgi-bin/webscr?cmd=xpt/cps/popup/OLCWhatIsPayPal-outside’,‘olcwhatispaypal’,'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=400, height=350’);”><img src="/out/basic/img/paypal.gif" border=“0” alt=“PayPal” /></a></td>
</tr>

bitte beachte das der Code von mir abgeändert wurde damit die beiden Zahlungsmetohden vom Design gleich aus sehen. Und für Papal oder Sofortüberweisung (bin mir nicht mehr sicher) hab ich ein größere Grafik gebastelt solltest du den Code 1zu1 übernehmen siehst ja dann auf der Payment Seite welche Grafik fehlt und aus dem Link oben den Namen der Grafik entnehmen und in den Ordner laden.

Nun zur thankyou.tpl

in Zeile 12 folgenden Code einfügen der ist für Sofortüberweisung:

[{if $order->oxorder__oxpaymenttype->value == “susofortueberweisung” }]
<strong class=“boxhead thankyouboxhead”>Sofortüberweisung</strong>
<div class=“box info”>
<div center=“true”>
<p>Um Ihre Bestellung abzuschließen müssen Sie die Website von Sofortüberweisung.de besuchen</p>
[{ $basket->getSofortuebweisungForm() }]

</div>
</div>
[{/if}]

in Zeile 52 einfügen für Paypal:

<!-- Paypal integration start -->
<div class=“box info”>
<div>

    [{if $order-&gt;oxorder__oxpaymenttype-&gt;value == "oxidpaypal-deact" }]
      &lt;br&gt;&lt;br&gt;&lt;br&gt;
      Sie haben als Zahlungsart "PayPal" gewählt.&lt;br&gt;
      Es wird sich nun ein neues Browserfenster öffnen, wo Sie Ihre erforderlichen Daten für eine Bezahlung mit "PayPal" eingeben können.&lt;br&gt;&lt;br&gt;
      Sollte sich kein Fenster öffnen, -z.B. wenn Sie Javascript deaktiviert haben- klicken Sie Bitte auf das folgende "PayPal"-Symbol,
      um das Fenster manuell zu öffnen.
      &lt;p&gt;
        &lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank" accept-charset="utf-8"&gt;
          &lt;input type="hidden" name="cmd" value="_ext-enter"&gt;
          &lt;input type="hidden" name="redirect_cmd" value="_xclick"&gt;
          &lt;input type="hidden" name="business" value="[{$paypal_mail}]"&gt;
          &lt;input type="hidden" name="item_name" value="[{$paypal_name}]"&gt;
          &lt;input type="hidden" name="currency_code" value="[{ $order-&gt;oxorder__oxcurrency-&gt;value }]"&gt;
          &lt;input type="hidden" name="amount" value='[{$paypal_price|string_format:"%.2f"}]'&gt;
          &lt;input type="hidden" name="handling" value="[{ $basket-&gt;dAddPaymentSum|string_format:"%.2f"}]"&gt;
          &lt;input type="hidden" name="shipping" value="[{ $basket-&gt;ddeliverycost|string_format:"%.2f" }]"&gt;
          [{if $paypal_force_vat }]
            &lt;input type="hidden" name="tax" value="[{ $paypal_vat }]"&gt;
          [{/if}]
          &lt;input type="hidden" name="email" value="[{$oxcmp_user-&gt;oxuser__oxusername-&gt;value }]"&gt;
          &lt;input type="hidden" name="first_name" value="[{$oxcmp_user-&gt;oxuser__oxfname-&gt;value }]"&gt;
          &lt;input type="hidden" name="last_name" value="[{$oxcmp_user-&gt;oxuser__oxlname-&gt;value }]"&gt;
          &lt;input type="hidden" name="address1" value="[{$oxcmp_user-&gt;oxuser__oxstreet-&gt;value }]"&gt;
          &lt;input type="hidden" name="zip" value="[{$oxcmp_user-&gt;oxuser__oxzip-&gt;value }]"&gt;
          &lt;input type="hidden" name="city" value="[{$oxcmp_user-&gt;oxuser__oxcity-&gt;value }]"&gt;
          &lt;input type="hidden" name="forencoding" value="ą"&gt;
          &lt;input type="hidden" name="charset" value="utf-8"&gt;

          &lt;input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" onload="this.form.submit()"&gt;
        &lt;/form&gt;
      &lt;/p&gt;
    [{/if}]
  &lt;/div&gt;

</div>
<!-- Paypal integration end -->

nun zu order.tpl(normaler weiße hätte ich die problemlos hochladen können aber die vorhandene order.tpl passt nicht zur der aus der Shop Version) Und das hat bei mir änliche Probleme gemacht wie bei dir.

Folgende Codschnipsel einfügen:

Zeile 59:

<!-- Paypal integration start -->
[{ if $oView->getAllSets() }]

&lt;strong id="test_DeliveryHeader" class="boxhead paymentboxhead"&gt;[{ if $oView-&gt;getAllSetsCnt() &gt; 1 }][{ oxmultilang ident="PAYMENT_SELECTSHIPPING" }][{else}][{ oxmultilang ident="PAYMENT_SELECTEDSHIPPING" }][{/if}]&lt;/strong&gt;
&lt;div class="box info"&gt;
    &lt;form action="[{ $oViewConf-&gt;getSslSelfLink() }]" name="shipping" id="shipping" method="post"&gt;
      &lt;div&gt;
          [{ $oViewConf-&gt;getHiddenSid() }]
          &lt;input type="hidden" name="cl" value="[{ $oViewConf-&gt;getActiveClassName() }]"&gt;
          &lt;input type="hidden" name="fnc" value="changeshipping"&gt;
          &lt;input type="hidden" name="cnid" value="[{$oViewConf-&gt;getActCatId()}]"&gt;

          &lt;div class="left"&gt;
            &lt;select name="sShipSet" onChange="JavaScript:document.forms.shipping.submit();"&gt;
              [{foreach key=sShipID from=$oView-&gt;getAllSets() item=oShippingSet name=ShipSetSelect}]
                &lt;option value="[{$sShipID}]" [{if $oShippingSet-&gt;blSelected}]SELECTED[{/if}]&gt;[{ $oShippingSet-&gt;oxdeliveryset__oxtitle-&gt;value }]&lt;/option&gt;
              [{/foreach}]
            &lt;/select&gt;
            &lt;noscript&gt;
              &lt;div&gt;
                &lt;span class="btn"&gt;&lt;input class="btn" type="submit" value="[{ oxmultilang ident="PAYMENT_UPDATESHIPPING" }]" &gt;&lt;/span&gt;
              &lt;/div&gt;
            &lt;/noscript&gt;
          &lt;/div&gt;
          &lt;div id="test_shipSetCost" class="right fs10"&gt;
            [{ if $oxcmp_basket-&gt;getDeliveryCosts() }]
              [{ oxmultilang ident="PAYMENT_CHARGE" }] [{ $oxcmp_basket-&gt;getFDeliveryCosts() }] [{ $currency-&gt;sign}]
            [{ /if}]
          &lt;/div&gt;
      &lt;/div&gt;
    &lt;/form&gt;
&lt;/div&gt;

[{/if}]

[{ if $oView->getPaymentError() == -2}]
<br><div class=“errorbox”>[{ oxmultilang ident=“PAYMENT_NOSHIPPINGFOUND” }]</div>
[{/if}]
<!-- Paypal integration end -->

Zeile 500:

<!-- PayPal Integration Start Part 1 -->
[{if !$oView->getAllSets()}]
<!-- PayPal Integration End Part 1 -->

Zeile 538:

<!-- PayPal Integration Start Part 2 -->
[{/if}]
<!-- PayPal Integration End Part 2 -->

nun hast du die 2 Dateien angepasst die für beide Module nötig sind + die order.tpl die bei mir nicht zur Shop Version gepasst hat. Diese drei Dateien hochladen in /out/basic/tpl

zu guter letzt noch Module einfügen Backend–>Grundeinstellungen–>System–>Module

oxbasket => su/su_basket
oxorder => invoicepdf/myorder
basket => efi_paypal/efi_paypal_basket
order => efi_paypal/efi_paypal_order
oxpaymentgateway => efi_paypal/efi_paypal_oxpaymentgateway

<-- so sieht meinen Moduleinstellung derzeit aus Paypal/Sofortüberweisung + das vorhandenen inovoicepdf

Grüße Philipp

ich hoffe das ich nichts vergessen habe und das es einigermasen verständlich ist.

@aggrosoft mal ne frage wieso machst du ein Sofortüberweisung modul wobei es doch schon eins gibt (auch gratis)ohne deine Arbeit zu akretiditieren zu wollen das von Troxnet find ich besser gelungen.

zur Begründung weil das Modul von der 3 Bestellseite aus greift (wie auch das Paypal Modul) nach erfolgreicher bezahlung auf thankyou weiterleitet. Das verhindert das Kunden eventuell ohne bezahlen die Bestellung abschließt! So muß man auch nichts in der Bestell Mail unterbringen in der Art Zahlung nachholen wenn noch nicht geschehen. (kann leicht übersehen werden ich habs erst nach 2 mal lesen gefunden…) Oder bei nicht Bezahlung wieder auf die Auswahl der Zahlungs Anbieter(im eigenen Shop) linkt.

Aus sicht eines Kunden find ich es auch nicht gelungen da man Bestellt dann wird Bezahlt weil keine weiterleitung auf den Shop besteht ist man auf Sofortüberweisung.de steht da a la Bestellt und nicht abgeholt G Irgendwie fehlt da die Information dem Kunden gegenüber.

Bei deiner Version ist es irgendwie kein Bestellfluß um es mal so umschreiben warenkorb–>bezahlen beim Anbieter–>Zahlung ok.->weiterleiten zum Shop Danke/ Zahlung erfolgreich Ware wird morgen versand…

du hast echt ein Top Modul geschrieben funktioniert einwandfrei aber ein bischen Benutzer unfreundlich…

Ich hoffe du kannst mit ernst gemeinter Kritig um gehen.

Wünschenswert wäre ein Moneybookers Modul so mal anmerkt

Grüße Philipp

Hallo,

habe erst jetzt gesehen daß Du dir ganz schön Mühe gegeben hast und wollte mich noch dafür bedanken und freue mich immer über qualifizierte Hilfe.

Ich habe in der Zwischenzeit die Sache etwas besser im Griff und habe auch die Lösung Troxnet eingebaut und es geht ganz gut. Habe deshalb Deine Lösung noch nicht getestet.

Wie ich sehe hast Du aber eine kreative Ader und es wäre super wenn Du weiterhin dein Know-how ins Forum mit einbringst, was ich auch vor habe wenn ich den Shop im Griff habe.

Es fehlt dem Forum noch etwas an Masse daher dauert es oft lange bis eine Antwort kommt und das sollte sich so schnell wie möglich ändern.

Gruß Edmund

@silver: damals war das Modul von tronet, meiner Meinung nach, nicht für die CE zu gebrauchen (haben es nie zum laufen gebracht) - zudem ist das Modul nicht wirklich open source (verschlüsselter code für ein GPL Modul, Oxid Entwicklergemeinde halt :wink: ), wenn du da mal was erweitern willst hast du halt einfach Pech gehabt. Sollte dich der verschlüsselte code nicht stört dann nutzt du wohl besser das tronet Modul.

Aggrosoft it intelligence GbR

Also ich setze das Sofortüberweisungsmodul von aggrosoft ein und bin voll zufrieden!

Habe lediglich das Layout für meine Zwecke ein wenig angepasst.

Hallo,

also verwende jetzt das Modul von Aggrosoft und kann bestätigen das dies zu 100% ohne Probleme läuft. Der Einbau ist auch Anfänger unproblematisch, und die Leute bei Sofortüberweisung sind auch ok und helfen so weit es geht mit.

Gruß Edmund