如何链接TransactionSearch和GetTransactionDetails获取的相关事务?

时间:2015-07-31 18:47:21

标签: paypal paypal-nvp

TL; DR-我怎么知道我是否真的通过PayPal NVP API获得报酬?

更长的版本

我编写代码以自动处理和分类来自PP业务帐户的交易。我有调用NVP方法TransactionSearch和GetTransactionDetails的代码,并使用返回的结果填充一些数据库表。在过去的24小时内每天都会发生这种情况。值得交易。到目前为止,非常好。

我开始假设可以通过API通过手动CSV导出通过PayPal网络界面获得相同的信息,但我现在发现这不是这种情况,或者还有其他API我应该致电以获取我需要的其他信息。

特别是,GetTransactionDetails似乎没有返回相应的CSV字段"参考Txn ID"而且,在少数情况下,我无法看到如何连接相关交易。

所以,我的问题是如何获取引用事务ID,或者如何连接这些关联事务?

示例1

这可能是(可能)需要引用事务ID的最常见情况。

根据买方的资金来源,您可能会立即看到购买完成,或者如果必须清算交易,则可以在三个单独的交易中完成:

  • 原始付款,其详细信息包括买方的姓名,电子邮件,地址,发票编号,项目ID,总额,费用和净额等。
  • 紧接着扣除净额
  • 在几天后,以净额的信用额度。

至关重要的是要匹配这三笔交易,因为您不知道付款会成功还是被拒绝(因此您是否真的得到了这笔钱),除非您这样做。

在我目前可用的数据中,这种情况只有一个这样的例子,并且对结算交易的GetTransactionDetails调用完全失败("交易无法加载&# 34; ) - 可能是因为,在那个例子中,我知道付款是由没有PayPal帐户的人用信用卡支付的。

这可能是一种异常现象,或者可能是常见情况。我在其他PayPal账户中经常看到这种三重交易,但不是这个,所以我无法确定。

示例2

外币付款通常会产生三笔交易,就像例1:

  • 原始付款(例如以欧元表示),其详细信息包含发件人的姓名和电子邮件地址等;
  • 然后立即扣除(可能是净额)€
  • 的金额
  • 然后立即以美元结算。

从NVP API的角度来看,GetTransactionDetails 通常会为原始付款返回标记为SETTLEAMT和SETTLEAMTCURRENCYCODE的值。无需进一步处理。

然而,最近这样的交易(由于即使PayPal无法充分解释的原因)也没有自动转换,即使手动执行转换,GetTransactionDetails调用也缺少结算值。

交易都在那里 - 但我看不到任何编程方式来关联它们,因为尝试在货币转换事务上调用GetTransactionDetails会返回错误"您无法获取此类交易的详细信息& #34;

-

有关自动处理PayPal交易的任何建议或经验?有没有办法以编程方式复制CSV导出中包含的相同数据?

如果有必要,我很乐意处理CSV导出,如果有某种方式以编程方式生成它,但我甚至不知道如何做到这一点(缺少Selenium驱动充满陷阱的解决方案)。

1 个答案:

答案 0 :(得分:0)

如果存在关联事务,

GetTransactionDetails将包含PARENTTRANSACTIONID。例如,退款交易将具有父交易ID。