资金不足时无法获得PayPal结账错误

时间:2013-12-12 01:25:11

标签: ruby-on-rails-3 paypal

无法理解PayPal付款响应错误或至少警告。我是澳大利亚开发商(至少我位于澳大利亚并使用澳元作为货币)。

您能否告诉我为什么如果沙箱用户资金不足,交易对付款请求有积极(有效)的回复?

所以我有买家的user_A和seller_user。 user_A有0AUD并进行20AUD的定期付款交易,响应成功???为什么呢?

有什么方法可以了解用户没有足够的资金进行交易?

 gem: paypal-recurring
 rails: 3.2.14
 location: Australia

======重定向到结帐网址的控制器操作

ppl = PayPal::Recurring.new(
  return_url: paypal_confirm_url(:plan_id => params[:plan_id], :user_id => current_user.id),
  cancel_url: paypal_no_checkout_url,
  description: "Starter",
  amount: 15,
  currency: "AUD"
)
response = ppl.checkout
if response.valid?
  redirect_to response.checkout_url
else
  redirect_to :back
end    

====确认后的控制器操作

ppr = PayPal::Recurring.new(
  token: params[:token],
  payer_id: params[:PayerID],
  description: plan.name,
  amount: plan.value,
  currency: "AUD",
  period: :monthly,
  start_at: Time.zone.now,
  frequency: 1
)
response = ppr.request_payment
if response.errors.any?
  flash.keep[:error] = "Something went wrong please contact paypal or ask our development team: team.grapple1@gmail.com"
  return false
end

response = ppr.create_recurring_profile

paypal_recurring_profile_token = response.profile_id # response.profile_id = nil????
save!

1 个答案:

答案 0 :(得分:1)

所有PayPal沙盒帐户都有一个附有无限资金的虚拟银行帐户。因此,当PayPal账户有0美元时,它只是从那个“银行”中拉出来。如果发生资金不足错误,您需要以某种方式打开负面测试,但我认为这会产生基于触发器AMT变量的错误。对于经典API,我建议您只需让代码查找包含Success的ACK响应并将其余部分视为异常(可能会将RESPMSG打印为客户通知,但有时您会希望将其替换为您自己的错误消息)< / p>