10

Paypal を統合しようとしていますが、その過程でサンドボックスを使用しています。以下の質問で受け入れられた回答の手順に従います。PayPalのリターンURLを設定して自動リターンにする?

しかし、URL を入力しようとすると、Paypal から次のエラーが返されます。

We were unable to validate the URL you have entered. Please check your entry and try again.

設定しようとしている URL はhttp://localhost:8888/paypal/success.php.

また、以下のフォームでリターンURLを送信してみました。

<input type="hidden" name="return" value="http://localhost:8888/paypal/success.php">

どちらの方法も私にはうまくいきません。

完全形

<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<!-- Identify your business so that you can collect the payments. -->
<input type="hidden" value="dasun_1358759028_biz@archmage.lk" name="business">
<!-- Specify a Buy Now button. -->
<input type="hidden" value="_xclick" name="cmd">
<!-- Specify details about the item that buyers will purchase. -->
<input type="hidden" value="AM Test Item" name="item_name">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" value="item_number" name="item_number">
<input type="hidden" name="return" value="http://localhost:8888/paypal/success.php">
<!-- Display the payment button. -->
<input type="image" name="submit" border="0" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif" alt="PayPal - The safer, easier way to pay online">
<img alt="" border="0" width="1" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" >
</form> 

開発用 PC でこれをテストするにはどうすればよいですか?

4

4 に答える 4

19

localhost の代わりに IP アドレスを指定しようとするとどうなりますか?

ローカル ホストは、離れたマシンでは解決できません。localhost ステートメントを認識していて、127.0.0.1 であるのは、ローカル DNS だけです。

http://your-IP-address:8888/paypal/success.php
于 2013-01-21T10:24:16.690 に答える
1

Facebook 認証 API (およびすべてではないにしても、おそらく他の API) を使用する場合、リダイレクト URL として https://localhost:xxxx/my-redirect を入力すると機能することに注意してください。

したがって、ここで基本的に「お使いの PC でペイパルが localhost に到達できない」という回答は、少し厳しいものであり、根拠がありません。

リモート API は、localhost が最終的にどのように解決されるかを知る必要はありませんが、クライアント側のリダイレクトのコンテキストでは、クライアントが localhost を開発者が意図する場所に解決することを気にせず、想定します。

そうは言っても、正直に言うと.... Facebook API を初めて使用したとき、localhost がどのように機能するかについて少し戸惑いました。しかし、その過程で、これらのタイプのリダイレクトがどのように発生するか、およびそれらがクライアント側であるということをより完全に理解することができました.

ほとんどの場合、認証 (この場合は支払い) を提供する API は、ID と支払いを証明する何らかのトークンを使用してクライアントを URL にリダイレクトするため、これは非常に理にかなっています。

はい、ペイパルにもウェブフックがありますが、それは別の獣です. Webhook は、使用しているサードパーティ サービスのバックエンドがバックエンドに POST を送信し、何らかのトランザクションの公式結果を提供する場合です。

この性質のものを開発するときは、これらのサーバー間通信に重点を置きます。なぜなら、paypal のバックエンドが何かが起こったことを私に伝えている場合、それは実際に起こったことであり、クライアント側ではない可能性があると確信できるからです。ハック。

Webhook を使用する人は誰も、'localhost' を Webhook URL として入れようとはしません。これは明らかに意味がなく、サーバー間通信では機能しないためです。

しかし、トランザクションに続いてサービスが Web ブラウザー クライアントをリダイレクトする場合、一部の開発者は、localhost はクライアント側のリダイレクトである必要があり、Webhook ではないため、機能すると想定します。

特定の API を初めて使用する開発者が、クライアント側のリダイレクトと思われるもので「localhost」を使用して、ユーザーをマーチャントのサイトに戻す場合、それはまったく「ばかげた」質問ではありません。

于 2021-08-20T22:12:43.443 に答える
0

有効な URL ではない localhost は使用できません。PayPal はローカル環境にアクセスできません。

最良の方法は、フォームとリターン スクリプトを Web にアップロードすることです。お持ちでない場合は、無料の PHP Web ホストが多数あります。

于 2013-01-21T10:23:40.637 に答える