3

在过去的几年里,我为我的 SaaS 应用程序编写了多份审计报告。大多数逻辑使用 PayPal API 获取完整的交易列表(使用 TransactionSearch),然后为每笔交易获取详细信息(使用 GetTransactionDetails)。

目的是将我收到的定期付款的数据库记录与最新的 PayPal 数据对齐,以确保我没有错过 IPN 或任何东西。

直到大约一个月前,这一切都很好。

最近,大多数交易都缺少订阅 ID。

过去,订阅 ID 包含在“SUBSCRIPTIONID”NVP 字段中。所有交易都不再存在此信息,并且我没有看到返回的任何其他包含订阅 ID 的字段。所有其他领域似乎都在那里,所以我知道我的电话正在工作。只是 NVP 响应缺少订阅 ID。我还验证了订阅 ID 包含在为相同交易发送的 IPN 中。

我的代码使用的是较旧的 API 版本 (108.0)。现在理论上,PayPal 永远不会改变 API 的工作方式,所以我很困惑为什么结果不再是一个月前使用相同代码库时的结果。

我尝试了最新的 API 版本 (124.0),它为超过 108 笔交易提供订阅 ID,但也不是全部。

我完全被难住了。有没有人有任何线索?

我不想要求 PayPal 支持,因为需要 3 周才能得到任何帮助 :-)

4

3 回答 3

2

有同样的问题一个月也只是随机停止工作打算尝试最新版本,但如果你说它相同,那么认为最好的行动方案是向贝宝提交错误报告。

我发现唯一有效的解决方法是保存创建的 api 调用,它将返回电子邮件和订阅 ID。

然后使用 get transaction id (email) 中的信息从原始数据库 (created) 中搜索订阅 id。凌乱但现在可以工作,直到他们解决这个问题。

跟进

我正在使用这种方法来继续进行 api 调用,直到订阅 id 被创建,因为我们知道它每 5 次尝试就可以工作一次。

try {
    /* Original call */
    $transDetailsResponse = $paypalService->GetTransactionDetails($request);
} catch (Exception $ex) {
    include_once("../Error.php");
    exit;
}
// If its not got sub id we start a while loop
    if ($transDetailsResponse->PaymentTransactionDetails->PaymentItemInfo->Subscription->SubscriptionID == "")
        {
    // Run while loop until its found
        while ($transDetailsResponse->PaymentTransactionDetails->PaymentItemInfo->Subscription->SubscriptionID=="")
            {

            try {

            $transDetailsResponse = $paypalService->GetTransactionDetails($request);
            } catch (Exception $ex) {
            include_once("../Error.php");
            exit;
            }   

        }
于 2016-03-28T01:52:16.930 回答
0

PayPal 支持最终对此做出了回应:

产品团队报告说应该解决这个问题。如果您仍然看到此问题的实例,请告诉我们。

于 2016-05-23T15:54:18.460 回答
0

恐怕我没有答案,但我看不出有什么办法让我参与这个讨论,因为我没有足够的声誉来发表评论。

几个星期以来,我一直遇到同样的问题。(事实上​​,我可以说问题首先始于 2016-03-07 的更改)。 https://stackoverflow.com/questions/36647177/paypal-api-has-stopped-sending-profile-ids-any-way-to-match-payments-up-to-as

我今天注意到我们再次开始接收 SUBSCRIPTIONID。但是,TRANSACTIONTYPE 已更改为“recurring_payment”而不是“subscrpayment”。

还发现我们从其他卖家那里收到的交易详细信息完全与我们的交易详细信息混在一起——产品名称行与我们的业务完全无关。完全损坏并可能存在安全问题。

我已经在 paypal-techsupport.com 上开了几张票来描述这些问题,但我还没有收到他们的回复。

于 2016-04-21T11:28:18.023 回答