如何通过REST SDK获取已执行PayPal付款的销售ID

3
我正在使用PayPal的Java REST SDK:https://github.com/paypal/PayPal-Java-SDK。在通过SDK执行付款后,如果有人选择退款,我希望通过SDK执行退款。
首先,我使用Payment.get(APIContext, PaymentId)方法获取付款的详细信息。
然后,为了执行退款,我需要销售ID。因此,我使用以下调用从前一步骤中检索到的Payment对象中检索销售ID: String saleId = ppPayment.getTransactions().get(0).getRelatedResources().get(0).getSale().getId(); 上述调用假定列表中有一个Transaction对象和一个RelatedResources对象,分别在PaymentTransaction对象中。
我的问题是:可以安全地假设相关的交易和相关资源对象始终是列表中的第一个元素吗?
对于Transaction对象的情况,我知道只有一个,因为我是创建付款的人。对于RelatedResource对象的情况,我不确定如何知道列表中哪个元素与我相关。
对于两个列表,是否有一种方法可以确保列表中的元素是与您相关的元素?在什么情况下会在返回的列表中有多个RelatedResource元素?
谢谢。
1个回答

0

你可以像这样做。

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 Object,但如果你的已完成付款(即销售)已经退款,RelatedResources Object将在返回的列表中有多个元素。在这种情况下,你的Payment Object的Transaction中的RelatedResources将有多个元素,其中一个是销售,另一个是退款。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接