Могу ли я передать другую валюту активному продавцу с полосой в приложении Rails 4?

Я занимаюсь разработкой приложения на Rails 4, в котором пользователь может один раз подписаться на приложение.

Для подписки используйте Active Merchant с полосой, где теперь пользователь платит $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

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

Спасибо

2 ответа

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

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".

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

--Редактировать--

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

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

Другие вопросы по тегам