問題タブ [paypal-nvp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PayPal サンドボックス クラシック API エクスプレス チェックアウト NVP 内部サーバー エラー (500)
クイック サマリー:
PHPを使ってECサイトを開発しています。PayPalを使用して支払いを行います。昨年末から今まで、クラシック API エクスプレス チェックアウト (NVP) を使用した PayPal のサンドボックス モード (SetExpressCheckout を介して DoExpressCheckoutPayment から GetExpressCheckoutDetails への要求文字列の送信から、MySQL データベースへの支払いの詳細の保存まで) をうまく使用してきました。昨夜までは問題なく機能しており、サイトの PayPal セクションに大きな変更は加えられていません。これで、支払い要求ごとにhttps://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=[TOKEN]で「内部サーバー エラー」が発生します。
チュートリアル:
- 支払い要求の解析: "...&PAYMENTREQUEST_0_PAYMENTACTION=...",
- 「SetExpressCheckout」を呼び出し、
- [ACK] を取得 => 成功 (エラーなし = LONGMESSAGE なし)、
- 提供されたトークンhttps://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=[TOKEN]にリダイレクトします。
- 上記のリンクで毎回「Internal Server Error」を取得します。
私が見るもの:
Paypal SetExpressCheckout の返品:
上記のリンクの PayPal サンドボックス エラー メッセージ:
答えが見つからない理由:
- 一般的な「Internal Server Error」メッセージは、問題が自分にあるのか (これが私の既定の想定です)、PayPal にあるのかわからないため、どこから調べたらよいかわからないことを意味します。
- ほとんどのソリューションは、本番環境とサンドボックスの URL/API 資格情報の不一致を指摘しています。これは問題ではありません。しばらくの間、Sandbox リンクで Sandbox 資格情報を正常に使用しています。
- 私が発見したすべての PayPal 内部サーバー エラーの問題は、REST API (または IPN) を使用しているユーザー向けです。クラシック API 駆動のエクスプレス チェックアウトを使用していますが、debug_id が返されたり、取得方法がわかりません。
- 過去の問題はすべて、返されたエラー メッセージ (ACK=Failure&L_ERRORCODE0=['some error code']&L_SHORTMESSAGE0=['short error message']&L_LONGMESSAGE0=['detailed error message']) を見ることで解決できます。成功として登録されるため、ここにはエラー メッセージはありません。
- API資格情報を変更しようとしましたが、標準のセキュリティヘッダーエラーが発生しました(その後、元に戻すとエラーが消え、リダイレクト時に内部サーバーエラーに戻ります)。
- リクエスト文字列をいじってみましたが、意図的にそれを台無しにすると、そのための標準エラーメッセージが表示されるため、それが問題ではないとかなり確信しています。
asp.net - Paypal サイトから戻った後、Paypal を使用した支払いが機能しない
Paypal での支払い方法が機能しません。ユーザーが購入した商品の説明が記載された Paypal ページにアクセスした後、支払いが成功したことを示す私のサイトに誘導されます。
しかし、PayPal アカウントにアクセスすると、余分なお金が表示されません。
paypal - TransactionSearch と GetTransactionDetails で取得した関連トランザクションをリンクするにはどうすればよいですか?
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 駆動のソリューションを除けば)。
paypal - PayPal アダプティブ ペイメント エラー: 資格情報が正しくありません
iOS アプリケーションで PayPal 支払いを実装しています。顧客からマーチャント アカウントに送金する必要があるため、アダプティブ ペイメントで古い MPL SDK を使用しています。すべての作品。次に、サーバー側で支払いを確認する必要があります。このために、私はPaymentDetails
API メソッド ( API リファレンス) を使用しています。ただし、常にエラーが返されます。
http://www.paypal-apps.comでアプリケーションを作成し、PayPal プロファイルで API 資格情報を要求しました。プレミアアカウントとビジネスアカウントで試しました。しかし、まだ結果はありません。
paypal - 新しいエクスプレス チェックアウト レイアウトでは、「販売者へのメモ」(および PAYMENTREQUEST_n_NOTETEXT) のサポートが削除されましたか?
プロジェクトの 1 つで PayPal Express Checkout をテストしておりPAYMENTREQUEST_n_NOTETEXT
、NVP リクエストにパラメーターを入力すると、PayPal サンドボックスでうまく機能し、数か月前のライブ PayPal サイトでも問題なく動作していました。
ただし、最新のテストでは、サンドボックスは引き続き正常に動作しますが、ライブ サイトでは動作しないようです。
サンドボックスとライブの次のスクリーンショットを比較してください。
サンドボックス
ライブ
ご覧のとおり、サンドボックス サイトの「売り手へのメモ」には、支払いが完了すると売り手に渡される「テスト メモ」というテキストが入力されます。
ただし、実際のサイトでは「売り手へのメモ」はどこにも表示されず、支払いが完了しても売り手に渡されるメモはありません。
ALLOWNOTE=1
リクエストにパラメータを追加しようとしました。最新の API バージョン (執筆時点で 124.0) を使用してみました。API のバージョン履歴を確認しましたが、関連する変更は見当たりません。
UI がサンドボックス サイトとライブ サイトで完全に異なっていることを考えると、文書化されていない変更が原因である可能性があるのではないかと考えています。
売り手へのメモはもう可能ですか?
paypal - paypal-apps.com が機能していませんか?
多分誰かがエラーの原因を知っていますか? NVP / SOAP API アプリのアクティベーションを続行しようとしていますが、サーバーがエラーで応答します。誰かが何が起こっているのか知っていますか?ここに画像の説明を入力
paypal-nvp - GetTransactionDetails の PayPal API NVP 応答にサブスクリプション ID がありません
過去数年間、SaaS アプリの複数の監査レポートを作成してきました。ほとんどのロジックでは、PayPal API を使用して完全なトランザクション リストを取得し (TransactionSearch を使用)、各トランザクションの詳細を取得します (GetTransactionDetails を使用)。
その意図は、受け取った定期支払いのデータベース レコードを最新の PayPal データと並べて、IPN などを見逃していないことを確認することです。
これは、約1か月前までは正常に機能していました。
最近、ほとんどのトランザクションでサブスクリプション ID が欠落しています。
以前は、サブスクリプション ID は "SUBSCRIPTIONID" NVP フィールドに含まれていました。これはすべてのトランザクションに存在しなくなりました。また、サブスクリプション ID を含む他のフィールドが返されていません。ただし、他のすべてのフィールドはそこにあるように見えるので、呼び出しが機能していることがわかります。NVP 応答にサブスクリプション ID がないだけです。また、同じトランザクションで送信された IPN にサブスクリプション ID が含まれていることも確認しました。
私のコードは古い API バージョン (108.0) を使用しています。理論的には、PayPal が API の動作を変更することは決してないので、1 か月前の同じコードベースでの結果がもはや同じではない理由について、私は困惑しています。
最新の API バージョン (124.0) を試してみたところ、108 を超えるトランザクションのサブスクリプション ID が提供されましたが、すべてではありませんでした。
私はここで完全に困惑しています。誰にも手がかりはありますか?
PayPal のサポートに問い合わせたくないのは、まったく助けが得られないのに 3 週間かかるからです :-)
php - PayPal NVP の払い戻しは、払い戻しメールに払い戻し済みの項目を表示できますか?
電話で払い戻しを行っていますが、送信されるPayPal NVP's RefundTransaction
払い戻し確認メールに、払い戻しされた項目を表示してほしいです。PayPal
現在、払い戻し確認メールには、次の短縮メールのように、元の注文品目のみが表示されます。
テスト ファシリテーターのテスト ストアから払い戻しが行われました
2016 年 4 月 5 日 20:49:50 PDT | 取引ID:
テスト購入者各位
test facilitator's Test Store は、購入に対して $0.50 AUD の一部払い戻しを送信しました。...
元のトランザクションの詳細
支払詳細
ペイパル
ただし、 RefundTransaction のドキュメントは、 のような追加のパラメーターを渡すことができることを示しているようですL_INVOICEITEMNAMEn and L_PRICEn
が、効果がないようです。
PayPal NVP
払い戻しは、払い戻しメールに払い戻し済みの項目を表示できますか? もしそうなら、どのように行うことができますか?