63

ウェブサイトに PayPal を実装しようとしています。

私はこのクラスを使用します: http://www.micahcarrick.com/php-paypal-ipn-integration-class.html

現在、PayPal サンドボックスを使用してテストしています。

問題は次のとおりです。

  1. ユーザーが支払いを行う - OK
  2. ユーザーが正常に私の Web サイトに戻ってきました - OK
  3. 数秒後、PayPal は IPN を使用して私のウェブサイトを呼び出します - OK
  4. 私のクラスは、着信 IPN データの検証に成功しました。
  5. PayPal が「payment_status: Pending」を返す

PayPal IPN が「保留中」の支払いステータスでコールバックする理由がわかりません。

私が間違っていることを誰かが知っていますか?

4

14 に答える 14

51

テスト ビジネス アカウントにログインしたら、手動で次の場所に移動します。

https://www.sandbox.paypal.com/businessmanage/preferences/payments

通常は「My Business Setup」からアクセスできますが、現在は PayPal live にリダイレクトされます (サンドボックスにあるにもかかわらず)。

そのページに移動したら、[自分が保持していない通貨での支払いをブロックする] を [いいえ、受け入れて ... に換算します] に変更します。

また、PayPal サンドボックス フロントエンドと API の「メールのテスト」セクションを使用して、ビジネス アカウントを確認することを忘れないでください。

于 2012-04-02T20:47:24.657 に答える
15

私の問題は、私のサンドボックス マーチャント アカウントが英国のユーザーとして作成されたこと (および通貨として GBP) でした。デンマーク クローネ (DKK) で注文しようとすると、マーチャント ビューで購入が「請求されていない」と表示されます。DKK で 1 つの注文が受け入れられ、DKK で新しい通貨を作成することを選択するとすぐに、IPN からすべての「payment_status = completed」メッセージが送信されました。

于 2011-09-02T10:39:58.150 に答える
9

次の手順で解決できます。

  1. DeveloperCentralにログインします。

  2. 左側の[アカウントのテスト]タブをクリックします。サンドボックスでテストするために、これらのテストアカウントを作成しておく必要があります。

  3. 「支払いレビュー」列を見つけます。

  4. 使用しているサンドボックスアカウントを見つけて、[支払いレビュー]列の[有効]をクリックします。

  5. これは「無効」に変更され、残高とクレジットカードからの支払いが即座に完了します。

于 2010-12-14T15:02:26.497 に答える
7

2つの考えられる理由:

1.販売者アカウントには、支払いを受け入れるか拒否するかを選択できます

この場合、売り手としてログインして支払いを受け入れる必要があり、payment_status=Completedで別のIPNを取得します

手順:

  1. 開発者セントラルにログインします
  2. 左側の「テストアカウント」を押します
  3. 販売者アカウントを選択し、下部にある[サンドボックステストサイトに入る]を押します
  4. 支払いを受け入れるか拒否するかを選択できる販売者ダッシュボードが表示されます(販売者テストアカウントのクレデンシャルを使用して、このステップで再ログインする必要がある場合があります)

2.支払いレビューが有効になっている

解決:

  1. DeveloperCentralにログインします。
  2. 左側の[アカウントのテスト]タブをクリックします。サンドボックスでテストするために、これらのテストアカウントを作成しておく必要があります。
  3. 「支払いレビュー」列を見つけます。
  4. 使用しているサンドボックスアカウントを見つけて、[支払いレビュー]列の[有効]をクリックします。

これは「無効」に変更され、残高とクレジットカードからの支払いが即座に完了します。

于 2012-10-02T19:29:30.043 に答える
6

私は同じ問題を抱えていましたが、ここでの提案はどれもうまくいきませんでした。その後、サンドボックス アカウントから実際のアカウントに支払いを行おうとしていることが問題であることに気付きました。たとえば、登録済みのビジネス アカウントが次email@example.comの場合: すべてのサンドボックス支払いは に対して行われる必要がありemail-facilitator@example.comます。そうでない場合、支払いは保留モードになります。

于 2016-04-14T20:30:54.070 に答える
2

ここでも同様の問題 - 私の (サンドボックス) マーチャント アカウントは米国と同じように作成され、ユーロの支払いを行おうとしていました。

私にとっては、どの設定を変更しても問題ありませんでした。ドイツを拠点とする新しいマーチャント アカウントを作成した後に初めて機能しました。

于 2013-08-29T11:56:01.557 に答える
1

デフォルトでは、PayPal ビジネス アカウントは、地域設定に基づいて選択されたいくつかの受け入れ可能な通貨に制限されています。承認されていない通貨で行われた支払いは、保留中または未処理のステータスのままになります。これらの通貨をサポート/受け入れるには、PayPal の「受け入れられる通貨」のリストに追加する必要があります。これを行うには、次の手順に従います。

  1. Paypal ビジネス アカウントで PayPal にログインします。
  2. [プロフィール] > [プロフィールと設定] > [マイ マネー] > [通貨] に移動します</li>
  3. サポートする通貨を追加します。

注: テスト時にサンドボックス アカウントを使用する場合、次の URL を使用してこのアカウントにログインした後、ファシリテーター サンドボックス アカウントに対してもこれを実行する必要があります: https://www.sandbox.paypal.com/

于 2018-04-06T11:35:21.980 に答える
0

もう 1 つ確認する必要があることがあります。

PayPal アカウントの言語エンコードが UTF-8 に設定されていることを確認してください。状況によっては、これはデフォルトで「windows-1256」などに設定されています。UTF-8 に変更するには、次の手順を実行する必要があります。

  • あなたのプロフィールに行き、「私の販売ツール」
  • 下部にある [PayPal ボタンの言語エンコード] をクリックします</li>
  • 次のページで、「その他のオプション」をクリックして、最終的にエンコードを設定する必要があります

私がドイツでセットアップしたすべての Paypal アカウントは、デフォルトで言語エンコード「windows...」に設定されていました。そうすると、IPN は、Woocommerce、EDD、またはイベント espresso であっても、UTF-8 でエンコードされた Web サイトでは機能しません。

于 2015-05-12T05:30:24.540 に答える