#1 (permalink)  
Alt 27.02.2008, 16:54
Benutzer
 
Registriert seit: 06.09.2005
Beiträge: 46
Standard Ipayment Patch funktioniert nicht !

Also irgendwie klappt das bei mir mit dem Patch nicht. Ich habe alles nach Readme so gemacht wie geschrieben, abe er landet immer wieder in der checkout_payment.php. Das schlimmste, er bucht das Geld sogar bei den Kunden ab, erstellt aber keine Bestellung.
Oben in der checkout_payment.php. steht danach
Bei der Verarbeitung Ihrer Kreditkartendaten ist ein Fehler aufgetreten:


das war´s keine Fehlerangabe
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 27.02.2008, 18:10
xt:Commerce Support Kunde
 
Registriert seit: 03.07.2007
Beiträge: 7
Standard

Bei uns war der Fehler auch.

Das Problem ist, dass das neue iPayment-Modul nach der Rückkehr des Kunden von iPayment den Security Hash überprüfen will.

Dabei speichert das Modul den Wert der Bestellung (Variable amount) vor dem senden des Users an iPayment in der Session - allerdings in unserem Fall nicht richtig, weswegen es auf der checkout_confirmation auch immer eine Fehlermeldung gab - ich weiß nicht ob das daran liegt, das bei uns irgendeine Datei veraltet ist o.ä., jedenfalls lautet die Fehlermeldung:

Warning: Cannot use a scalar value as an array in (...)/includes/modules/payment/ipayment.php on line 142

Jeder, bei dem diese Meldung kommt, dürfte die entsprechenden Probleme haben.
Nachzuschauen übrigens in der Tabelle payment_ipayment_log, dort steht dann jeweils, dass der Security code nicht übereinstimmt.

Und das ist das Problem - bei iPayment geht alles gut, er schickt den User mit einer positiven Rückmeldung an den Shop, und trotzdem produziert das iPayment-Modul den Fehler.

Mein Fix - wobei ich natürlich nicht weiß, ob das andere Probleme nach sich zieht!

Datei zu editieren: includes/modules/payment/ipayment.php

Folgende Zeilen auskommentieren:
PHP-Code:
if (empty($_SESSION[$this->code]->amount) || (int)$_GET['trx_amount'] != $_SESSION[$this->code]->amount)
$errorMsg 'Amount doesn\'t match.'
an zwei Stellen:
PHP-Code:
unset($_SESSION[$this->code]->amount); 
PHP-Code:
$_SESSION[$this->code]['amount'] = round($amount 1000); 

Die Zeile
PHP-Code:
$hash md5(MODULE_PAYMENT_IPAYMENT_USER_ID $_SESSION[$this->code]->amount $trx_currency $_GET['ret_authcode'] . $_GET['ret_booknr'] . MODULE_PAYMENT_IPAYMENT_SECURITY_KEY); 
ersetzen durch
PHP-Code:
$hash md5(MODULE_PAYMENT_IPAYMENT_USER_ID $_GET['trx_amount'] . $trx_currency $_GET['ret_authcode'] . $_GET['ret_booknr'] . MODULE_PAYMENT_IPAYMENT_SECURITY_KEY); 
Erklärung: da die wichtigen Werte (wie zB der Wert der Bestellung = amount) ohnehin durch den Security Code nochmals überprüft werden (indem ein md5-Hash gebildet wird über diese wichtigen Werte, der den von euch selbst vergebenen und Dritten damit unbekannten Security Code enthält), kann der Wert "amount" genausogut auch aus dem $_GET-Parameter "trx_amount" ausgelesen werden. Manipulation - m.E., ohne Gewähr - trottdem nicht möglich.

Geändert von geisberger (27.02.2008 um 18:14 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 27.02.2008, 18:19
xt:Commerce Support Kunde
 
Registriert seit: 03.07.2007
Beiträge: 7
Standard

... alternativ die includes/modules/payment/ipayment.php durch diese ersetzen.
Habe die Änderungen in der Datei am Anfang jeweils mit "// FIX" und einer kleinen Erklärung versehen.
Angehängte Dateien
Dateityp: txt ipayment.php.txt (15,5 KB, 62x aufgerufen)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 27.02.2008, 18:58
xt:Commerce Support Kunde
 
Registriert seit: 07.05.2007
Ort: Stuttgart
Beiträge: 58
Standard

Die Analyse bezüglich der Session ist korrekt. Der Wert "amount" wird auf manchen Systemen nicht korrekt in der Session gespeichert bzw. kann nicht abgerufen werden, nachdem der Kunde von ipayment zurück in den Shop geleitet wird.

Falsch ist jedoch die Annahme, dass $_SESSION['amount'] und $_GET['trx_amount'] zwingend identisch sind. Wird diese Überprüfung rausgenommen können Transaktionsdaten möglicherweise manipuliert werden.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 27.02.2008, 19:27
xt:Commerce Support Kunde
 
Registriert seit: 03.07.2007
Beiträge: 7
Standard

Glaube ich nicht, da ja sowohl beim Senden an iPayment als auch hinterher wenn der User zurückkommt mit dem Security Key der md5-Hash generiert und überprüft wird.

Würde es reichen, wenn man einfach anstatt dem iPayment-Session-Objekt eine eigene Sessionvariable verwendet?

Also $_SESSION[$this->code]->amount ersetzen durch beispielsweise $_SESSION[$this->code.'amount']
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 27.02.2008, 19:28
xt:Commerce Support Kunde
 
Registriert seit: 03.07.2007
Beiträge: 7
Standard

Wie schlecht is das abgesehen davon eigentlich, dass man sich bei einem SECURITY-PATCH mit solchen Fehlern beschäftigen muss?

Geändert von geisberger (28.02.2008 um 08:47 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 27.02.2008, 19:45
Benutzer
 
Registriert seit: 06.09.2005
Beiträge: 46
Standard

Mit den Änderungen geht´s ! Ich werde es jetzt erstmal so laufen lassen und die Abbuchungsmails im Auge behalten. Besser wie mit dem alten Ipayment ist es so wohl auf jeden Fall.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 27.02.2008, 20:45
xt:Commerce Support Kunde
 
Registriert seit: 07.05.2007
Ort: Stuttgart
Beiträge: 58
Standard

Scheinbar gibt es nach der Installation des Patchs auf einigen PHP4-Systemen Probleme. Wir haben die beiden Module (KK + ELV) modifiziert, so dass der Fehler nicht mehr auftreten sollte.

Bevor wir diese Version veröffentlichen, hätten wir dazu gerne Feedback von Shop-Betreibern, bei denen das Problem bisher auftritt.
Bitte PM mit E-Mail Adresse an mich dann wird die neue Version umgehend zugeschickt.

Geändert von Espresso-Trinker (28.02.2008 um 08:40 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #9 (permalink)  
Alt 27.02.2008, 22:51
xt:Commerce Support Kunde
 
Registriert seit: 03.07.2007
Beiträge: 7
Standard

Habe nun eine Version gebaut, in der der Wert von amount in einer zusätzlichen Session-Variablen gespeichert wird.

Reicht das nun aus?
Angehängte Dateien
Dateityp: txt ipayment.php.txt (15,7 KB, 45x aufgerufen)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #10 (permalink)  
Alt 28.02.2008, 00:24
Benutzer
 
Registriert seit: 12.02.2007
Ort: Hamburg
Beiträge: 92
Standard

Gibt es hier auch eine Stellungnahme vom offiziellen "Support"?

Wenn ich mir das hier alles so durchlese, werde ich vorerst den Patch nicht aufspielen ....
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
funktioniert, ipayment, patch

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem weil ipayment modul von cc abhaengt cimono Allgemeine Diskussionen 2 02.12.2006 14:17
ipayment Modul gibt keine Fehlermeldungen aus kswtch Shopbereich 2 01.08.2006 17:50
Download Patch Gd Lib Funktioniert Nicht?!? inspiron Installation und Konfiguration 3 07.08.2004 12:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand