0

TL;DR- PayPal NVP API を介して、本当に支払いを受けたかどうかを確認するにはどうすればよいですか?

ロングバージョン

PP ビジネス アカウントからのトランザクションを自動的に処理および分類するコードを書いています。NVP メソッドの TransactionSearch および GetTransactionDetails を呼び出し、返された結果をいくつかのデータベース テーブルに格納するコードがあります。これは、過去 24 時間分のトランザクションに対して毎日発生します。ここまでは順調ですね。

私は、PayPal Web インターフェイスを介して手動で CSV エクスポートを介して入手できる同じ情報が API を介して入手できるという仮定から始めましたが、そうではないか、別の API 呼び出しを行う必要があることがわかりました。必要な残りの情報を取得します。

特に、GetTransactionDetails は CSV フィールドの "Reference Txn ID" に相当するものを返さないようで、いくつかのケースでは、関連するトランザクションを接続する方法がわかりません。

それで、私の質問は、参照トランザクション ID を取得する方法、またはこれらの関連付けられたトランザクションを接続する方法です。

例 1

これは、(おそらく) 参照トランザクション ID が必要となる最も一般的な状況です。

購入者の資金源に応じて、購入が即座に完了するか、トランザクションをクリアする必要がある場合は、3 つの別々のトランザクションにまたがって完了するかを確認できます。

  • 購入者の名前、電子メール、住所、請求書番号、アイテム ID、総額、手数料、正味額などを含む元の支払いの詳細。
  • その後すぐに正味額の借方記入
  • その後、数日で正味額のクレジットが表示されます。

3 つのトランザクションを一致させることが重要です。一致させないと、支払いが成功するか拒否されるか (したがって、実際にお金を受け取ったかどうか) がわからないからです。

現時点で私が入手できるデータでは、このような状況の例は 1 つしかなく、決済トランザクションの GetTransactionDetails への呼び出しは完全に失敗します ( 「トランザクションを読み込めませんでした」 )。 、PayPalアカウントを持っていない人がクレジットカードで支払いを行ったことを知っています。

これは異常かもしれませんし、よくあるケースかもしれません。この 3 つの取引は、他の PayPal アカウントではかなり頻繁に見られますが、このアカウントでは見られないため、確信が持てません。

例 2

通常、外貨での支払いでは、例 1 のように 3 つのトランザクションが生成されます。

  • 元の支払い (例: €)。その詳細には、送信者の名前と電子メール アドレスなどが含まれます。
  • これに続いて、(おそらく正味の) 金額が € で即時に引き落とされます</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 に答える