2 votes

Champs de paiement manquants dans la méthode de paiement Authorize.net

Il s'agit d'un problème assez étrange. Si j'active la méthode de paiement Authorize.net, les champs de saisie pour entrer les détails de la carte de crédit sont absents de l'interface HTML. Il s'agit d'une installation pratiquement prête à l'emploi, avec juste un peu de travail sur le thème, et je n'ai pas touché aux templates de l'opc.

Si j'active la méthode de paiement Saved CC, les champs apparaissent correctement.

Je n'ai fait aucun changement aux fichiers Authorize.net OOTB dans Magneto et j'ai même essayé de désactiver tout mon thème et cela n'a pas eu d'impact.


Capture d'écran du code : http://cl.ly/image/3g1n2x021N2s


Après avoir regardé de plus près, il semble que cette ligne dans templates/checkout/payments/method.phtml ne renvoie pas de HTML : $this->getPaymentMethodFormHtml($_method)

J'ai trouvé cette méthode et elle essaie de charger un enfant.

public function getPaymentMethodFormHtml(Mage_Payment_Model_Method_Abstract $method)
{
     return $this->getChildHtml('payment.method.' . $method->getCode());
}

C'est à peu près tout ce que j'ai fait.

2voto

Francis Kim Points 2562

J'essaierais de suivre les étapes suivantes :

  • Vérifiez votre journal des exceptions sous /var/log/exception.log
  • Vérifiez votre journal d'erreurs PHP
  • Désactivez votre thème actuel en renommant votre dossier de thème, par exemple : /app/design/frontend/default/themename >> /app/design/frontend/default/_themename - cela exclut la possibilité d'un thème invalide ou d'un problème de XML de mise en page. Veillez à ce qu'il revienne à un thème de base par défaut non modifié !
  • Désactivez vos extensions non standard en définissant <active>false</active> dans les XML qui se trouvent sous /app/etc/modules un par un.
  • Essayer de voir s'il y a une différence de valeur $method->getCode() lorsque le CC sauvegardé est activé et désactivé.
  • Si possible, mettez à jour l'extension Authorize.net. Si ce n'est pas le cas, vérifiez au moins si votre /app/etc/modules/Mage_Authorizenet.xml est le suivant :
<config>
    <modules>
        <Mage_Authorizenet>
            <active>true</active>
            <codePool>core</codePool>
            <depends>
                <Mage_Paygate/>
                <Mage_Sales/>
                <Mage_Checkout/>
            </depends>
        </Mage_Authorizenet>
    </modules>
</config>

0voto

Mufaddal Points 2696

Il s'agit d'une solution de contournement si vous ne trouvez pas de solution à votre problème.

Vous pouvez créer votre propre formulaire de paiement pour authorize.net

Formulaire Authorize.net utilisé cc.phtml pour l'affichage des champs Authorize.net, vous pouvez donc copier ce fichier et paramétrer ce formulaire à partir du fichier xml.

Allez dans votre checkout.xmland dans <checkout_onepage_index translate="label"> tag find checkout.payment.methods qui affiche toutes les méthodes en tant que méthodes d'action, comme suit

 <action method="setMethodFormTemplate"><method>authorizenet</method><template>payment/form/authorizenet.phtml(which is copy of your cc.phtml)</template></action>

Je ne l'ai pas testé.

Authorize.net utilise ce bloc pour afficher les champs du formulaire, vous pouvez donc consulter ce fichier app \code\core\Mage\Paygate\Block\Authorizenet\Form\Cc.php

0voto

chapagain Points 6536

Vous pouvez également vérifier si Mage_Authorizenet o Mage_Paygate sont désactivés dans l'administration de Magento.

Système -> AVANCÉ -> Avancé

Assurez-vous qu'ils y sont activés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X