web-dev-qa-db-fra.com

Comment changer les réponses authorize.net virtuemart 1.1.9?

Je sais que Virtuemart 1.1.9 n’est plus supporté, mais j’ai beaucoup de personnalisation sur mon site Web Joomla en ligne installé. Je ne peux pas le déplacer vers les dernières versions de joomla et VM aussi.

Veuillez lire le scénario .. J'ai joomla 1.5 avec virtuemart 1.1.9- Chaque fois qu'un utilisateur traite un paiement par carte de crédit via authorize.net, le processus terminé, il voit un message "merci, votre commande est terminée ... quelle que soit la réponse de la transaction, que ce soit un échec ou un échec.

Mon besoin est .. Je veux qu'un email soit envoyé à mon adresse email lorsqu'une transaction échoue. Je ne peux pas vérifier les déclarations de authorize.net sur mon mobile.

What I Question is ... Comment puis-je envoyer un courrier électronique à moi-même et quels fichiers et fonctions fonctionnent pour vérifier les réponses du serveur authorize.net.

Faites-le moi savoir Si cette question est confuse ... je vais essayer de la développer plus facilement.

1
MFarooqi

Après beaucoup d’efforts, j’ai finalement atteint ce qui contient tous les détails de la transaction.

lors de l'utilisation de Authorize.net, la demande de transaction est envoyée au serveur authorize.net au format Json/XML et, après le traitement, une réponse est renvoyée dans le même format XML/Json. La page suivante fonctionne pour ce qui concerne

joomlasite/administrateur/composants/com_virtuemart/classes/payment/ps_authorize.php

Maintenant, dans cette recherche de fichier process_payment fonction,

process_payment

C'est la fonction principale de tous les modules de paiement utilisant des connexions directes à une passerelle de paiement (comme authorize.net ou eWay XML). C'est l'endroit où les détails du paiement sont validés et capturés en cas de succès. Renvoie true en cas de succès, false en cas d'échec.

Et c’est ce que j’ai personnalisé en fonction de la réponse de la passerelle de paiement.

J'ai répété toutes les réponses puis, selon le statut 1,3,4 ou tout autre, j'ai créé un script de messagerie php pour envoyer un courrier électronique à une adresse électronique spécifiée.

faire écho temporairement à la réponse du serveur

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

Toutes les réponses apparaîtront sous forme d'erreur après la transaction.

$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;

maintenant, j'ai personnalisé les réponses en fonction de leur statut.

        ...
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);
.....

Cela enverra un courrier électronique au fournisseur en cas d'échec, de refus ou de tout autre problème, mais sans succès.

vous pouvez personnaliser la réponse pour le paiement réussi aussi sous

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

J'espère que d'autres développeurs trouveront cela utile.

Cordialement

1
MFarooqi