2016-04-08 6 views
0

Я разрабатываю приложение Rails 4, где пользователь может подписаться на одноразовую оплату с помощью приложения.Могу ли я передать другую валюту у активного торговца с полосой в приложении Rails 4?

Для подписки используйте Активный Торговец с полосой, где теперь пользователь заплатит $ 50 прямо сейчас, и платеж выполнен успешно. Подкатегории:

ActiveMerchant::Billing::Base.mode = :test 

    transaction = ActiveMerchant::Billing::StripeGateway.new(:login => Rails.application.secrets.stripe_secret_key) 

    paymentInfo = ActiveMerchant::Billing::CreditCard.new(
       :number    => purchage_params[:card_holder_number], 
       :month    => purchage_params[:expiry_month], 
       :year    => purchage_params[:expiry_year], 
       :verification_value => purchage_params[:cvv]) 


    purchaseOptions = {:billing_address => { 
     :name  => purchage_params[:card_holder_name], 
     :currency => @country.currency, 
     :address1 => session[:address], 
     :city  => session[:city], 
     :state => @region.name, 
     :zip  => session[:zip_postal] 
    }} 

    response = transaction.purchase((amount * 100).to_i, paymentInfo, purchaseOptions) 

Теперь моя проблема, я хочу удержать платеж по стране пользователя. Как ниже страны и оплаты.

USA = $50 USD 
South Africa = 355 ZAR 
India = 520 INR 
Australia = $50 AUD 

Так как я могу установить валюту и страну платежа мудрую. У кого-нибудь есть идея?

Благодаря

ответ

0

Я не совсем ясно, как к тому, что вы ищете, но от того, что я понимаю, вы пытаетесь зарядить указанную цену за подразделы в зависимости от страны. Из того, что я прочитал, вам не нужно будет определять страну происхождения, поскольку стоимость драгоценных камней в валюте США и карточная компания должны теоретически автоматически конвертировать ее в эту цену.

--Edit--

Хорошо, после того, как я сделал некоторые копали вокруг, это выглядит, как если бы я был немного неправильно. Если вам удалось сделать то, что вы пытаетесь сделать, вы получите эту ошибку response.message: The transaction currency specified must be the same as previously specified.

Валютой по умолчанию валюты Активного торговца является доллар США. Когда транзакция пройдет, она будет проходить как плата за доллар США, и вы не сможете ее изменить, добавив покупку. Поэтому вы должны изменить его, прежде чем он будет установлен на метод покупки. Поскольку вы основываете его на подписке, для которой требуется регистрация, вы можете указать, что у пользователя есть страна по умолчанию, так как вы должны собирать свою личную информацию в любом случае, чтобы иметь платежный адрес. Таким образом, опция предопределена, и вы просто используете конвертер валют перед тем, как применить товар к корзине.

+0

Ok Thannks @tommy для ответа. Могу ли я изменить валюту по умолчанию активного торговца? средства для US user USD, для пользователя INR для Индии. означает время выполнения. – user1780370

+0

В зависимости от выбранного вами шлюза. Вот документация Stripe и поддерживаемых валют. http://www.rubydoc.info/github/Shopify/active_merchant/ActiveMerchant/Billing/StripeGateway –

0

Я получил свои решения. Пожалуйста, проверьте код, как передать валюту.

purchaseOptions = {:billing_address => { 
     :name  => purchage_params[:card_holder_name], 
     :currency => @country.currency, 
     :address1 => session[:address], 
     :city  => session[:city], 
     :state => @region.name, 
     :zip  => session[:zip_postal] 
    }, 
    :currency => "CAD"} 

Мы можем разместить динамический код вместо "CAD".