我正在尝试使用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的编写者已经停止使用他们在开头指定的约定,因为通过这个术语,发件人应该是退款时对其帐户有信用的人。
由于这种模糊性,我试图传递接收者并传递发件人的电子邮件。在这两种情况下,我都无法获得部分退款。
就像我说的那样,我认为问题是别的,所以请考虑整个代码。
提前感谢您的回复。
答案 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} )
评估差异,接收者列表应该是一个数组,而接收者不应该是。