ruby-on-rails - 使用 Rails 和 'paypal-sdk-merchant' gem 将多个接收者添加到 Paypal Mass Pay

标签 ruby-on-rails ruby ruby-on-rails-3 paypal masspay

我正在创建一个必须使用 Paypal MassPayment API 的 Rails 应用程序(在我们的案例中,自适应支付不是一个选项)。

我正在使用“paypal-sdk-merchant”https://github.com/paypal/merchant-sdk-ruby

按照中建议的示例 https://paypal-sdk-samples.herokuapp.com/merchant/mass_pay 我可以使用一个接收方创建“批量支付”:

@api = PayPal::SDK::Merchant::API.new

# Build request object
@mass_pay = @api.build_mass_pay({
  :ReceiverType => "EmailAddress",
  :MassPayItem => [{
    :ReceiverEmail => "enduser_biz@gmail.com",
    :Amount => {
      :currencyID => "EUR",
      :value => "3.00" } }] })

# Make API call & get response
@mass_pay_response = @api.mass_pay(@mass_pay)

# Access Response
if @mass_pay_response.success?
else
  @mass_pay_response.Errors
end

问题是:如何构建具有多个接收方的批量支付对象?

根据文档,我尝试了以下代码并进行了多种变体,但 Paypal 似乎只考虑了最后一项:

        @api = PayPal::SDK::Merchant::API.new

# Build request object
        @mass_pay = @api.build_mass_pay({


        :ReceiverType0 => "EmailAddress",
        :MassPayItem0 => [{
        :ReceiverEmail => "enduser_biz@gmail.com",
        :Amount => {
        :currencyID => "EUR",
        :value => "3.00" } }],

        :ReceiverType1 => "EmailAddress",
        :MassPayItem1 => [{
        :ReceiverEmail => "enduser_biz1@gmail.com",
        :Amount => {
        :currencyID => "EUR",
        :value => "5.00" } }]
  }

)

(...)

另外,我有一系列的电子邮件和值,所以我需要将它们全部集中支付,这怎么办?

理想情况下,我想要一些东西:

@mass_pay = build_mass_pay_with_array_of_email_and_values([ARRAY_OF_EMAILS_AND_VALUES_HERE])

最佳答案

语法有点像 JSON。 [] 是一个数组,您可以向该 MassPayItem 数组添加更多成员:

    :MassPayItem => [{
        :ReceiverEmail => "enduser_biz@gmail.com",
        :Amount => {
            :currencyID => "EUR",
            :value => "3.00"
        }
    },
    {
        :ReceiverEmail => "enduser_biz2@gmail.com",
        :Amount => {
            :currencyID => "EUR",
            :value => "1.00" 
        }
    }]

结束于:

require 'paypal-sdk-merchant'

@api = PayPal::SDK::Merchant::API.new

# Build request object
@mass_pay = @api.build_mass_pay({
    :ReceiverType => "EmailAddress",
    :MassPayItem => [{
        :ReceiverEmail => "enduser_biz@gmail.com",
        :Amount => {
            :currencyID => "EUR",
            :value => "3.00"
        }
    },
    {
        :ReceiverEmail => "enduser_biz2@gmail.com",
        :Amount => {
            :currencyID => "EUR",
            :value => "1.00" 
        }
    }]
})

# Make API call & get response
@mass_pay_response = @api.mass_pay(@mass_pay)

# Access Response
if @mass_pay_response.success?
else
  @mass_pay_response.Errors
end

关于ruby-on-rails - 使用 Rails 和 'paypal-sdk-merchant' gem 将多个接收者添加到 Paypal Mass Pay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620911/

相关文章:

ruby-on-rails - sunspot-solr:如何排除包含任何给定单词的搜索结果?

ruby-on-rails - 是否可以将 joomla/wordpress 与 ruby​​ on Rails 集成?

ruby-on-rails - 为什么 WEBrick 服务器在生产模式下比在开发模式下更快? + rails

javascript - Ruby Rails - 可选表单输入以复选框为条件显示

mysql - gem mysql2 未安装在 ruby​​ on rails 上

ruby:如何将散列转换为数组

ruby-on-rails - Rails 3/Ruby 1.9.2 Date.tomorrow 不正确

ruby-on-rails-3 - Railslongate_to不会使用自定义类名设置外键ID

ruby-on-rails - 我怎么知道我的数据是否真的在 Heroku 上使用 SSL 传输?

ruby-on-rails - 如何在 Rails 3 link_to 语句中包含完整路径?