2012-12-18 2 views
5

Rails 3.0.10 et de pierres précieuses activemerchant 1.29.3Débogage ActiveMerchant; besoin d'une demande complète et une réponse. Comment?

Mon application fonctionne très bien dans bac à sable, mais les transactions en mode de production ne parviennent pas à "en-tête de sécurité n'est pas valide", "ErrorCode" => "10002"

Nous avons lancé une demande de support avec paypal, après avoir passé en revue tous les paramètres de configuration un million de fois et ils pensent que nous touchons un point de terminaison incorrect. Ils ont demandé une trace complète pour la transaction, y compris les en-têtes, etc., alors j'essaie de comprendre comment procéder. J'ai trouvé this article

qui a suggéré d'ajouter ceci au bloc de configuration

ActiveMerchant::Billing::PaypalGateway.wiredump_device = File.new(File.join([Rails.root, "log", "paypal.log"]), "a") 

Mais cela résulte simplement dans un journal vide; rien n'y est jeté. Alors, comment puis-je obtenir cette information de l'objet GATEWAY, si possible? Voici la config de production, dont le format est identique à ce qui est utilisé dans la mise en scène d'env.

::GATEWAY = ActiveMerchant::Billing::PaypalGateway(
     :login => 'me_api1.blah...', 
     :password => 'string...', 
     :signature => 'longer string...' 
    ) 

Merci.

Répondre

5

nécessaires pour ajouter la ligne supplémentaire comme suit:

ActiveMerchant::Billing::PaypalGateway.wiredump_device.sync = true 

Dans le même bloc de configuration dans l'environnement

-3

Quelque part dans la bibliothèque de classes que vous utilisez il devrait y avoir une fonction de sortie pour vous (si elle est une bibliothèque bien construite, qui est.)

Même sans cela, cependant, vous devriez être en mesure de regarder dans cette fonction PaypalGateway pour voir où/comment il définit le point de terminaison. Il s'agit soit de coder en dur la valeur, soit de définir des points de terminaison différents en fonction de l'option sandbox que vous avez configurée ailleurs dans la classe.

Il est difficile de vous en dire plus sans regarder la bibliothèque de classes que vous utilisez, mais je peux convenir qu'il doit s'agir d'informations d'identification incorrectes ou d'un point de terminaison incorrect. Je n'ai jamais vu cette erreur d'en-tête de sécurité lorsqu'il ne s'agissait pas simplement d'informations d'identification non valides, ce qui signifie que vos valeurs sont incorrectes ou que vous utilisez le mauvais point de terminaison.

Si vous voulez publier toute cette fonction (ou peut-être même que la bibliothèque entière comme point de terminaison pourrait être définie à partir d'une autre fonction), je peux jeter un oeil et trouver le problème pour vous.

+0

pas vraiment une réponse à la question, est-il? Je suis d'accord, il devrait y avoir un moyen de le faire sortir. C'est l'essence de ma question ... – wkhatch

+0

Oui, c'est une réponse à la question quand vous ne fournissez pas la classe réelle à regarder. Nous montrer l'utilisation d'une fonction ne sert à rien. Si vous voulez fournir que je serais heureux de trouver la réponse pour vous. J'apprécie le neg pour essayer d'aider, cependant. Je garderai cela à l'esprit la prochaine fois que je vous verrai poser une question que je peux aider. –

+1

Ceci: ActiveMerchant :: Billing :: PaypalGateway fait partie d'une bibliothèque de tiers ... la gemme activemerchant, en ruby. Si vous le savez, veuillez mettre à jour votre réponse, avec une réponse réelle. Sinon, le vote à la baisse est valable. Je vous remercie – wkhatch

Questions connexes