it-swarm.com.de

Wie ändere ich authorize.net Antworten virtuemart 1.1.9?

Ich weiß, dass Virtuemart 1.1.9 nicht mehr unterstützt wird, aber ich habe viele Anpassungen auf meiner online installierten Joomla-Website vorgenommen. Ich kann es nicht auf die neuesten Versionen von Joomla und VM auch verschieben.

Bitte lesen Sie das Szenario .. Ich habe Joomla 1.5 mit virtuemart 1.1.9- Immer wenn ein Benutzer eine Kreditkartenzahlung über authorize.net verarbeitet, sieht der Benutzer nach Abschluss des Vorgangs die Nachricht "Danke, Ihre Bestellung wurde abgeschlossen ... ungeachtet der fehlgeschlagenen oder erfolgreichen Transaktionsantwort.

My Need is .. Ich möchte, dass eine E-Mail an meine E-Mail-Adresse gesendet wird, wenn eine Transaktion fehlschlägt. Ich kann die Aussagen von authorize.net nicht auf meinem Handy überprüfen.

Was ich frage ist ... wie kann ich mir selbst eine E-Mail schicken und welche Dateien und Funktionen funktionieren, um die Antworten vom authorize.net-Server zu überprüfen.

Bitte lassen Sie es mich wissen. Wenn diese Frage verwirrend ist, werde ich versuchen, sie verständlicher zu gestalten.

1
MFarooqi

Nach viel Mühe habe ich endlich die Seiten erreicht, die alle Transaktionsdetails enthalten.

bei Verwendung von Authorize.net wird die Transaktionsanforderung im Json/XML-Format an den authorize.net-Server gesendet und nach der Verarbeitung wird eine Antwort im gleichen XML/Json-Format zurückgegeben. Die folgende Seite funktioniert diesbezüglich

joomlasite/administrator/components/com_virtuemart/classes/payment/ps_authorize.php

Jetzt in dieser Datei suchen process_payment Funktion,

process_payment

Dies ist die Hauptfunktion für alle Zahlungsmodule, die direkte Verbindungen zu einem Zahlungsgateway verwenden (wie authorize.net oder eWay XML). Dies ist der Ort, an dem die Zahlungsdetails überprüft und bei Erfolg erfasst werden. Gibt bei Erfolg true zurück, bei Misserfolg false.

Und das ist das, was ich gemäß der Antwort vom Zahlungsgateway angepasst habe.

Ich habe die gesamte Antwort wiederholt und dann je nach Status 1,3,4 oder einem beliebigen von mir erstellten PHP-E-Mail-Skript eine E-Mail an die angegebene E-Mail-Adresse gesendet

echo vorübergehend die Antwort vom Server

$vmLogger->err('result: '. $result);

Alle Antworten werden nach der Transaktion als Fehler angezeigt.

$Message = 
'**Notification:**A Transaction was attempt. Authorize.net responded 
   **'.$response[3].'**. 
Details are as under:


========= ORDER INFORMATION =========
Invoice : '.$response[36].'
Amount : '.$order_total.'

============== RESULTS ==============
Response : '.$response[3].'
Authorization Code : '.$response[4].'
Transaction ID : '.$response[6].'

==== CUSTOMER BILLING INFORMATION ===
First Name : '. substr($dbst->f("first_name"), 0, 50).'
Last Name : '. substr($dbst->f("last_name"), 0, 50).'
E-Mail : '.$dbbt->f("user_email");

 $cc_headers = "MIME-Version: 1.0" . "\r\n";
 $cc_headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
 //this address will show as "from" in email box
 $cc_headers = 'From:<[email protected]>'. "\r\n"; 

 //$vendor_mail fetches virtuemart's vendor's email.
 $to_email = $vendor_mail;
 $cc_subject = "Transaction attempt - ".$response[3];
 $cc_message = $Message;

jetzt habe ich die Antworten an ihren Status angepasst.

        ...
elseif ($response[0] == '2') {
....//some codes
            mail($to_email,$cc_subject,$cc_message,$cc_headers);
.....
elseif ($response[0] == '3') {
....//some codes
            mail($to_email,$cc_subject,$cc_message,$cc_headers);
.....
elseif ($response[0] == '4') {
....//some codes
            mail($to_email,$cc_subject,$cc_message,$cc_headers);
.....

Dadurch wird eine E-Mail an den Anbieter gesendet, wenn die Antwort fehlschlägt, abgelehnt oder eine andere ausgegeben, aber nicht erfolgreich ist.

sie können die Antwort für eine erfolgreiche Zahlung auch unter anpassen

 if ($response[0] == '1') {
 ............. email is successful

Ich hoffe, andere Entwickler finden dies hilfreich.

Grüße

1
MFarooqi