ruby-on-rails-3 - 资金不足时无法获取 PayPal 结帐错误

标签 ruby-on-rails-3 paypal

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

你能告诉我为什么如果沙盒用户资金不足,交易对付款请求有肯定(有效)响应吗?

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

如何得知用户没有足够的资金进行交易?

 gem: paypal-recurring
 rails: 3.2.14
 location: Australia

====== 重定向到结帐 url 的 Controller 操作

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    

==== 确认后的 Controller Action

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!

最佳答案

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

关于ruby-on-rails-3 - 资金不足时无法获取 PayPal 结帐错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533322/

相关文章:

ruby-on-rails - 有没有办法为 Rails 3.0 自动生成 HTML 电子邮件的文本版本?

ruby - 如何在我的 Rspec 请求规范中跳过中间件?

ruby-on-rails-3 - Actionmailer BCC 不工作

ruby-on-rails - 我应该将 "global"共享部分模板放在哪个文件夹中?

php - PayPal 加密付款不起作用 PHP APACHE XAMPP

php - Paypal 自适应支付服务 550001 错误

ruby - Rails 测试显示 0% 全部通过时通过

java - 在基于 Java/Spring 的应用程序中实现 PayPal

php - PayPal Checkout - 默认打开信用卡选项卡

paypal - 使用 PayPal Refund API 进行自适应支付的部分退款返回内部错误 (520002)