为什么pp-adaptive不接受我的退款金额?

时间:2014-07-20 05:57:49

标签: ruby-on-rails ruby paypal

我正在尝试使用pp-adaptive实施部分PayPal退款,但它会退还全部金额,而不是我指定的金额。

我的代码:

    receiver_list = {receiver: [{ email: @transaction.email, amount: @amount}]}
    attributes = {currency_code: "USD", pay_key: @transaction.paypal_token,
                  receiver_list: receiver_list}
    response = client.execute(:Refund, attributes )

我发现问题可能来自传递错误的电子邮件,但我认为它实际上存在于其他地方。我将用电子邮件解释这个问题:

API表示

  

条款发件人和收件人使用Pay API操作引用原始付款的发件人和收件人。

因此,接收方中的电子邮件字段应该是在原始交易中收到钱的paypal帐户的电子邮件字段。另一方面,当描述接收者字段的金额字段时,API说:

  

金额(必填) xs:十进制金额将记入收款人的帐户。

因为它说这个数量将被记入接收者,似乎API的编写者已经停止使用他们在开头指定的约定,因为通过这个术语,发件人应该是退款时对其帐户有信用的人。

由于这种模糊性,我试图传递接收者并传递发件人的电子邮件。在这两种情况下,我都无法获得部分退款。

就像我说的那样,我认为问题是别的,所以请考虑整个代码。

提前感谢您的回复。

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案。我没有正确地提出请求。以下代码和请求(将电子邮件替换为正确的电子邮件)可以获得部分退款。

    receiver = {amount: @amount, email: “someone@somewhere.com"}
      receiver_list = [receiver: receiver]
      response = client.execute(:Refund, { currency_code: "USD", pay_key: @transaction.paypal_token, receiver_list: receiver_list} )

评估差异,接收者列表应该是一个数组,而接收者不应该是。