如何在 activemerchant gem 中允许与美元货币不同?
Posted
技术标签:
【中文标题】如何在 activemerchant gem 中允许与美元货币不同?【英文标题】:How to allow different from USD currency in activemerchant gem? 【发布时间】:2014-04-27 21:15:36 【问题描述】:如果我的货币不是“美元”,我无法通过activemerchant
创建purchase
这是来自response.message
的错误短信:
The transaction currency specified must be the same as previously specified.
这是购买设置:
response = EXPRESS_GATEWAY.setup_purchase(product.price,
:currency => product.currency.upcase, # it's 'EUR'
:items => [name: product.name, quantity: 1, amount: product.price, description: product.description],
:ip => request.remote_ip,
:return_url => paypal_checkout_url,
:cancel_return_url => paypal_checkout_url
)
这是购买本身:
def purchase
response = EXPRESS_GATEWAY.purchase(product.price, express_purchase_options)
end
def express_purchase_options
:ip => ip_address,
:token => express_token,
:payer_id => express_payer_id
end
也许我也应该在express_purchase_options
中指定货币?
【问题讨论】:
【参考方案1】:我在我的一个项目中使用此 gem 并使用“欧元”货币。
我的配置如下:
# config/application.rb
config.after_initialize do
ActiveMerchant::Billing::PaypalExpressGateway.default_currency = 'EUR'
end
就是这样。无需配置其他任何东西。
【讨论】:
并记得在此更改后重新加载 Rails 服务器。【参考方案2】:是的,在整个流程中的所有调用中,指定的货币都必须相同。看起来这必须使用 Express Checkout ..??您只需确保 SetExpressCheckout 请求和 DoExpressCheckoutPayment 请求使用相同的货币代码。
【讨论】:
是的,我正在使用 PayPal ExpressCheckout 我也遇到同样的问题,我首先使用 AUD 请求 SetExpressCheckout,下次使用 AUDDoExpressCheckoutPayment 再次请求/b> 但收到此错误。 需要查看您的请求样本以确认这一点。以上是关于如何在 activemerchant gem 中允许与美元货币不同?的主要内容,如果未能解决你的问题,请参考以下文章
如果 gem 源指定为 git,则 ActiveMerchant ActionView 帮助程序初始化崩溃,但如果它是默认路径或本地路径则有效
使用 Activemerchant Gem 切换到多个商家帐户以进行 Paypal Express 结帐
使用 Bundler 加载 activemerchant 时出现问题