【问题标题】:How to get Sale Id of executed PayPal payment via REST SDK如何通过 REST SDK 获取已执行 PayPal 付款的销售 ID
【发布时间】:2016-12-01 01:50:22
【问题描述】:

我正在使用 PayPal 的 REST SDK for java: https://github.com/paypal/PayPal-Java-SDK

通过SDK执行付款后,如果有人选择退款,我希望通过SDK执行退款。

首先,我使用Payment.get(APIContext, PaymentId) 方法获取付款的详细信息。

然后,要执行退款,我需要销售 ID。所以我从上一步中检索到的Payment 对象中检索到这个,调用如下:

String saleId = ppPayment.getTransactions().get(0).getRelatedResources().get(0).getSale().getId();

上述调用假定列表中有一个Transaction 对象,PaymentTransaction 对象中分别有一个RelatedResources 对象。

我的问题是:假设相关事务和相关资源对象将始终是列表中的第一个元素是否安全?

对于Transaction 对象,我知道只有一个,因为我是创建付款的人。对于RelatedResource 对象,我不确定我应该如何知道列表中的哪个元素与我相关。

对于这两个列表,有没有办法确保列表中的元素与您相关?什么情况下返回的列表中有多个RelatedResource 元素?

谢谢

【问题讨论】:

    标签: paypal paypal-rest-sdk


    【解决方案1】:

    你可以这样做。

    String saleId = "";
             try{
                 Payment payment = Payment.get(apiContext, paymentId);
                 List<Transaction> transactions = payment.getTransactions();
    
                 for(Transaction transaction : transactions){
                     List<RelatedResources> resources = transaction.getRelatedResources();
    
                     for(RelatedResources resource : resources){
                         Sale sale = resource.getSale();
                         if(sale != null){
                             saleId = sale.getId();
                             break;
                         }
    
                     }
                 }
    
                 System.out.println(saleId);
    
             }catch(PayPalRESTException e){
                 System.err.println(e.getDetails());
             }
    

    我不确定 Transaction 对象,但如果您已完成的 Payment(即销售)已被退款,RelatedResources 对象将在返回列表中包含多个元素。在这种情况下,您的 Payment 对象的事务中的 RelatedResources 将具有多个元素,其中一个是销售,另一个是退款。

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 2016-10-14
      • 2016-12-14
      • 2018-08-25
      • 2014-04-13
      • 2017-05-13
      • 2016-07-16
      • 2018-12-12
      • 2015-11-20
      相关资源
      最近更新 更多