So che Virtuemart 1.1.9 non è più supportato, ma ho molte personalizzazioni sul mio sito Web Joomla online installato. non riesco a spostarlo "nelle ultime versioni di joomla e VM.
Si prega di leggere lo scenario .. Ho joomla 1.5 con virtuemart 1.1.9- Ogni volta che un utente elabora il pagamento con carta di credito tramite authorize.net, dopo aver completato il processo l'utente vede un messaggio di "grazie, il tuo ordine è stato completato ... indipendentemente dalla risposta alla transazione che non è riuscita o è riuscita.
My Need is .. Voglio che un'e-mail venga inviata al mio indirizzo e-mail quando una transazione non riesce. Non riesco a controllare le dichiarazioni di authorize.net sul mio cellulare.
What I Question is ... come posso inviare e-mail a me stesso e quali file e funzioni stanno funzionando per controllare le risposte dal server authorize.net.
Per favore fatemi sapere Se questa domanda è confusa ... Cercherò di elaborarla più facilmente comprensibile.
Dopo molti sforzi ho finalmente raggiunto quelle pagine che contengono tutti i dettagli della transazione.
durante l'utilizzo di Authorize.net, la richiesta di transazione viene inviata in formato Json/XML al server authorize.net e dopo l'elaborazione viene restituita una risposta nello stesso formato XML/Json. La pagina seguente funziona per questo riguardo
joomlasite/administrator/components/com_virtuemart/classes/pagamento/ps_authorize.php
Ora in questa ricerca di file process_payment funzione,
process_payment
Questa è la funzione principale per tutti i moduli di pagamento che utilizzano connessioni dirette a un gateway di pagamento (come authorize.net o eWay XML). Questo è il luogo in cui i dettagli del pagamento vengono convalidati e acquisiti in caso di successo. Restituisce vero in caso di successo, falso in caso di fallimento.
E questo è ciò che ho personalizzato in base alla risposta del gateway di pagamento.
Ho fatto eco a tutta la risposta e quindi in base allo stato 1,3,4 o qualsiasi ho creato uno script di posta elettronica php per inviare un'e-mail all'indirizzo e-mail specificato
eco temporaneamente la risposta dal server
$vmLogger->err('result: '. $result);
Mostrerà tutte le risposte come errore dopo la transazione.
$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;
ora ho personalizzato le risposte in base al loro stato.
...
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);
.....
Questo invierà e-mail al fornitore in caso di risposta non riuscita, rifiutata o emessa in altro modo ma non riuscita.
puoi personalizzare la risposta per un pagamento andato a buon fine anche sotto
if ($response[0] == '1') {
............. email is successful
Spero che altri sviluppatori possano trovare questo utile.
Saluti