0

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

更长的版本

我正在编写代码来自动处理和分类来自我们 PP 业务帐户的交易。我有调用 NVP 方法 TransactionSearch 和 GetTransactionDetails 的代码,并用返回的结果填充几个数据库表。对于前 24 小时的交易,每天都会发生这种情况。到现在为止还挺好。

我从假设通过 PayPal Web 界面通过手动 CSV 导出获得的相同信息可以通过 API 获得,但我现在发现不是这种情况,或者我应该进行另一个 API 调用获取我需要的其余信息。

特别是,GetTransactionDetails 似乎没有返回相当于 CSV 字段“Reference Txn ID”的内容,并且在某些情况下,我看不到如何连接相关事务。

所以,我的问题是如何获得参考交易 ID,或者我如何连接这些关联交易?

示例 1

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

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

  • 原始付款,详细信息包括买家姓名、电子邮件、地址、发票号码、商品 ID、毛额、费用和净额等。
  • 随后立即扣除净额
  • 几天后,净额贷记。

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

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

这可能是异常情况,也可能是常见情况。我在其他 PayPal 账户中经常看到这三笔交易,但不是这个,所以我不能确定。

示例 2

外币支付通常会产生三笔交易,就像示例 1 中一样:

  • 原始付款(例如欧元),其详细信息提供了发件人的姓名和电子邮件地址等;
  • 然后立即借记(可能是净)金额(欧元)</li>
  • 然后立即以美元计入贷方。

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

但是,最近的此类交易(甚至 PayPal 都无法充分解释的原因)没有自动转换,即使在手动执行转换后,GetTransactionDetails 调用也缺少结算值。

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

——</p>

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

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

4

1 回答 1

0

如果存在相关事务,GetTransactionDetails 将包含一个 PARENTTRANSACTIONID。例如,退款交易将具有父交易 ID。

于 2015-07-31T23:40:30.400 回答