2009-06-29 18 views
3

J'utilise ActiveMerchant avec Braintree comme processeur de paiement. Je veux profiter de la fonctionnalité de coffre-fort client de Braintree pour stocker les informations de carte de crédit.Comment puis-je utiliser une source de paiement enregistrée pour un achat dans ActiveMerchant?

Le stockage se passe bien, mais je ne peux pas trouver la bonne façon de charger la carte de crédit avec le customer_vault_id. Il semble très simple selon le Braintree documentation, mais je ne suis pas sûr de savoir comment le transmettre via ActiveMerchant. J'obtiens des erreurs de validation de Braintree si j'envoie une carte de crédit avec des données vides, et des erreurs d'ActiveMerchant si j'essaie nil. La seule chose qui semble évident est d'envoyer le customer_vault_id dans le hachage purchase_options, comme:

GATEWAY.purchase(self.price_in_cents, self.credit_card, 
       :ip => self.ip_address, 
       :customer_vault_id => 12345) 

Est-ce la bonne façon d'utiliser un coffre-fort client stockées?

Si tel est le cas, quel est le deuxième argument correct pour cette ligne si je souhaite utiliser un coffre-fort client enregistré comme méthode de paiement?

Merci.

Répondre

2

J'ai découvert que vous pouvez remplacer le customer_vault_id comme une chaîne pour le ActiveMerchant::Billing::CreditCard dans la méthode d'achat. Les docs n'ont vraiment aucune indication de ceci :(