ruby-on-rails - Rails PayPal 链式支付费用

标签 ruby-on-rails ruby paypal paypal-adaptive-payments chained-payments

我有一个 Ruby on Rails 应用程序;我希望一个用户能够向另一位用户支付少于 10% 的应用程序“佣金”;我的客户希望费用从应用程序保留的 10% 中扣除,原因有两个:1) 不向客户收取费用 2) 在一定数量的交易(每月)之后,百分比显然会降低

例如,如果用户 1 向用户 2 支付 100 美元,我希望它显示为:

用户 1 向应用发送 100 美元 -> 应用收到 97.09 美元(减去费用 100 美元) -> 应用程序向用户 2 发送 90.00 (90%) -> 用户 2 收到全额 90 美元(他这边不收取任何费用)

但是,尽管将该应用设置为主要接收者,但它却将费用发布到辅助接收者上,导致用户 2 支付费用。我还尝试将用户 2 设置为主要接收者,然后仅将 10% 转发到应用程序,但随后它将费用转移到主要接收者。我在代码中唯一更改的是收费百分比以及主要/辅助电子邮件。我的代码如下所示:

<!-- app/lib/pay_pal_api.rb -->
require "pp-adaptive"

class PayPalAPI

def self.payment_url(submission)
  amount = submission.amount_in_cents.to_f / 100.0
  recipient_cut = amount * 0.9
  recipient_email = submission.submitter.paypal_email

  client.execute(:Pay,
    :action_type     => "PAY",
    :currency_code   => "USD",
    :cancel_url      => "http://localhost:3000/my-studio",
    :return_url      => "http://localhost:3000/submissions/#{submission.id}",
    :receivers       => [
      { :email => recipient_email, :amount => recipient_cut, :primary => false },
      { :email => "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7420110700350404341319151d185a171b19" rel="noreferrer noopener nofollow">[email protected]</a>", :amount => amount, :primary => true }
    ]
  ) do |response|

    if response.success?
      puts "Pay key: #{response.pay_key}"

      # send the user to PayPal to make the payment
      # e.g. https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=abc
      return client.payment_url(response)
    else
      puts "#{response.ack_code}: #{response.error_message}"
    end

  end
  return nil
end

最佳答案

我发现在 pp 自适应 gem 中,它需要以下语法:

:fees_payer       => "PRIMARYRECEIVER",

现在一切正常。

关于ruby-on-rails - Rails PayPal 链式支付费用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663324/

相关文章:

ruby-on-rails - 美国以外的 Ruby on Rails 和 Paypal

Javascript 仅在刷新后加载(Ruby on rails - Materialize CSS)

php - Paypal RestAPI 没有触发 Webhooks

php - Paypal 与 PHP 集成

ruby - 用指向 ruby​​1.9 的链接替换 ​​ruby​​,安全吗?

paypal - PayPal 中的定期付款

ruby-on-rails - Rspec:运行外部 Rails 服务器

ruby-on-rails - Rails3 - check_box_tag - 如何禁用条件

ruby-on-rails - Railscast 143(Paypal 安全)导致 "We were unable to decrypt the certificate id."

ruby - 我应该用什么来记录我的 Sinatra 路由?