From ec356cf5e8423a7971d081477de5d9cbe05d9c5c Mon Sep 17 00:00:00 2001 From: vintem Date: Tue, 12 Jul 2011 22:26:53 -0300 Subject: [PATCH] allow for preferred currency --- app/controllers/checkout_controller_decorator.rb | 2 +- app/models/billing_integration/paypal_express.rb | 1 + app/models/paypal_account.rb | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/checkout_controller_decorator.rb b/app/controllers/checkout_controller_decorator.rb index 45c2411..358557d 100644 --- a/app/controllers/checkout_controller_decorator.rb +++ b/app/controllers/checkout_controller_decorator.rb @@ -217,7 +217,7 @@ CheckoutController.class_eval do # hook to override paypal site options def paypal_site_opts - {} + {:currency => payment_method.preferred_currency} end def order_opts(order, payment_method, stage) diff --git a/app/models/billing_integration/paypal_express.rb b/app/models/billing_integration/paypal_express.rb index c26e72a..a835e56 100644 --- a/app/models/billing_integration/paypal_express.rb +++ b/app/models/billing_integration/paypal_express.rb @@ -4,6 +4,7 @@ class BillingIntegration::PaypalExpress < BillingIntegration preference :signature, :string preference :review, :boolean, :default => false preference :no_shipping, :boolean, :default => false + preference :currency, :string, :default => 'USD' def provider_class ActiveMerchant::Billing::PaypalExpressGateway diff --git a/app/models/paypal_account.rb b/app/models/paypal_account.rb index 5e50623..98c2f20 100644 --- a/app/models/paypal_account.rb +++ b/app/models/paypal_account.rb @@ -8,7 +8,7 @@ class PaypalAccount < ActiveRecord::Base def capture(payment) authorization = find_authorization(payment) - ppx_response = payment.payment_method.provider.capture((100 * payment.amount).to_i, authorization.params["transaction_id"]) + ppx_response = payment.payment_method.provider.capture((100 * payment.amount).to_i, authorization.params["transaction_id"], :currency => payment.payment_method.preferred_currency) if ppx_response.success? record_log payment, ppx_response payment.complete