PayPal NVP API を使用して、トランザクションを検索およびダウンロードしています。この問題は、STARTDATE と ENDDATE の間の間隔が大きすぎる場合 (つまり 4 か月程度) に発生します。その後、1 回の呼び出しで 100 件のトランザクションが取得されますが、一部が欠落しています。間隔が短い場合、つまり 1 か月の場合、以前はスキップされたトランザクションがさらに表示されます。
これは何が原因ですか?
PayPal NVP API を使用して、トランザクションを検索およびダウンロードしています。この問題は、STARTDATE と ENDDATE の間の間隔が大きすぎる場合 (つまり 4 か月程度) に発生します。その後、1 回の呼び出しで 100 件のトランザクションが取得されますが、一部が欠落しています。間隔が短い場合、つまり 1 か月の場合、以前はスキップされたトランザクションがさらに表示されます。
これは何が原因ですか?
これは、PayPal がデータを逆の順序で送信し、呼び出しごとに返されるトランザクションが 100 に制限されているために発生します。
したがって、1 年前の開始日と今日の終了日を指定すると、開始日から始まる 100 の最も古いトランザクションではなく、今日からさかのぼって最新の 100 のトランザクションが取得されます。
私が認識しているこの問題を回避する唯一の方法は、大量のデータをダウンロードするときに、短い日付範囲を使用し、複数の API 呼び出しを行うことです。履歴データが蓄積されたら、ダウンロードされていないトランザクションの数が 100 を超える前に、定期的な API 呼び出しを行う必要があります。
編集: PayPal が実際のトランザクションとそのトランザクションの手数料控除を 2 つの別々の行で返すことに注意することも重要です。したがって、彼らは 1 回の呼び出しで最大 100 のトランザクションを返すと言っていますが、実際には 50 の実際のトランザクションと 50 の手数料「トランザクション」にすぎません。要求されたダウンロード時間枠に 50 を超える実際のトランザクションが含まれている場合、ほぼ確実にトランザクションが失われることになります。