ActiveMerchant PayPal Express可能的错误?

时间:2012-02-23 15:13:33

标签: ruby-on-rails paypal paypal-sandbox activemerchant

我有点困惑,不知怎的,我可以改变购买金额:

首先我设置我的购买,

@setup_response = gateway.setup_purchase(
  10*100,
  :ip                => request.remote_ip,
  :return_url        => url_for(:controller => "payments", :action => 'confirm', :only_path => false),
  :cancel_return_url => url_for(:controller => "payments", :action => 'error', :only_path => false),
  :currency => 'EUR',
  :email => current_user.email,
  :no_shipping => true,
  :items => items
)

后来我做了购买:

  purchase = gateway.purchase(
      500*100,
      :ip       => request.remote_ip,
      :payer_id => params[:payer_id],
      :token    => params[:token],
      :currency => 'EUR'
      )

正如您所看到的,我已将数量从10更改为>安装/用户在购买时同意1000,并且它在Paypal Sandbox中工作。

我觉得这很奇怪。任何人都可以证实吗?这应该不会发生? 这可能只适用于Sandbox吗?

2 个答案:

答案 0 :(得分:1)

非常确定Paypal Express Checkout不需要DoExpressCheckoutPaymentsetup_purchase映射到的地方)的金额与SetExpressCheckout的金额相同。引用Paypal's documentation

  

在最简单的情况下,您可以设置订单的总金额   调用SetExpressCheckout API。但是,您可以更改金额   如果你不知道,在调用DoExpressCheckoutPayment API之前   调用SetExpressCheckout API时的总金额。

答案 1 :(得分:0)

您可以在设置和购买之间留有一些余地 - 这是为了让人们可以更改订单,折扣等。

不要冒险向人们收费超过你的明确陈述 - 贝宝很快就给予退款,所以你最终会失败。