PayPal:从付款中退款

Posted

技术标签:

【中文标题】PayPal:从付款中退款【英文标题】:PayPal: Refund money from Payment 【发布时间】:2015-12-23 07:37:04 【问题描述】:

我正在使用适用于 .NET 的 paypal API,并且正在通过以下方法创建付款:POST /v1/payments/payment。

我的付款创建请求:

Payment = 
  intent: 'sale',
  payer = 
    payment_method = 'paypal'
  ,
  transactions = [
    transaction= = 
      amount = 
        currency = 'GBP',
        total = '10.00'
      ,
      item_list = 
        items = [
          item = 
            quantity = '1',
            name = 'name',
            price = '10.00',
            currency = 'GBP',
            sku = 'description'
          
        ],
        shipping_address = 
          recipient_name = 'name',
          line1 = 'address',
          city = 'city',
          country_code = 'GB',
          postal_code = 'G69 7LS'
        
      
    
  ],
  redirect_urls = 
    return_url = 'http://localhost/',
    cancel_url = 'http://localhost/'
  

如您所见,我没有创建“销售”类型的相关交易。

在创建并执行付款后,在某些情况下我们需要退还客户的钱,但要退款,我们需要一个 saleId。我尝试通过创建付款来生成 saleId,但仍然失败,因为 API 似乎忽略了 sale 对象。

【问题讨论】:

不熟悉 API(如果我遗漏了一个细节,请原谅),但根据docs,您应该收到一个[response].transactions.related_resources.sale.id,它会被传回refund。当您说忽略时,响应中是否缺少[response].transactions.related_resources.sale 付款作为答案给出,它带有一个空的payment_resources数组。 【参考方案1】:

在您拨打此电话后,PayPal 会返回一个链接,将客户引导至 PayPal。之后,它会返回到您指定的返回 URL。然后执行执行付款调用:

https://api.sandbox.paypal.com/v1/payments/payment/<Payment-Id>/execute/

该响应中将包含您正在寻找的信息。

Response=>transactions=>related_resources=>sale=>id 是带有 id 的变量。

另外,Response=>transactions=>related_resources=>links 会有退款交易的链接。

【讨论】:

API页面给出的解释我不是很理解,但是他的解释对我帮助很大。谢谢。

以上是关于PayPal:从付款中退款的主要内容,如果未能解决你的问题,请参考以下文章

PayPal 自适应付款退款问题

Paypal 自适应付款退款错误(代码:589061)

Paypal - 付款退还的营业税

Paypal 退款服务抛出 TRANSACTION_REFUSED 错误

将付款退还到 Paypal 中的信用卡。可能的 ?

RoR - PayPal ActiveMerchant - 退款