17

私は数日間、ジャングル(本当に、PayPal、それを取り除いてみませんか...)を通り抜けて、私の非常に単純な問題の解決策を見つけようとしました。

メンバーシップサブスクリプションのあるWebサイトがあります。顧客は私のサイトで自分の電子メールとパスワードを使用してサインアップします。次に、PayPalにアクセスしてサブスクリプションを支払います。

私の問題は、支払いの対象者がわかるように、トランザクション全体でキー(電子メール)をどのように渡すかです。

これは、ある電子メールでサインアップして別の電子メールで支払うことがあるためです。そして、(安全な)暗号化されたボタンですべてを行う方法。

私が考えたのは、PayPalの「PayPal支払いボタンの作成」ページで暗号化されたボタンを作成できるということです。

ステップ3で、高度な変数を追加(実際のURLをx-ed out)します。

notify_url=http://xxxxxxxxxx.com/xxxxx.php
test_ipn=1

コードを取得します。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

与えられたコードを私のphpページに貼り付けますが、「 custom 」という名前の非表示フィールドを追加し、手元にメールを送信して、フォームアクションを変更してサンドボックスに移動します。

このようなもの:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">

<input type="hidden" name="custom" value="<?=$signUpEmail ?>">

<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="N6UMVCMXSWMYG">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

このカスタム変数は、後でipnページで取得できるため、メンバーシップの対象者がわかります。

私は正しいと思いますか?または、「手書き」コードでボタンを実行する必要がありますか?それとももっと良い方法がありますか?

4

2 に答える 2

19

Paypalフォームであなたが望むものを置くために使うことができるフィールドがあります。提出された名前は「カスタム」です。したがって、次のように書くことができます。

<input name="custom" value="blablabla" type="hidden">

カスタム値の値をエンコードすることをお勧めします。たとえば、ある種のbase64_encodeは、好奇心旺盛な人々を思いとどまらせるのに役立つ可能性があります。ただし、マニュアルにはPaypalで何ができるかについての良い説明もあります。このリンクとこれ は抜粋です

さらに、コメントで示唆されているように、サイトとペイパル間のバックオフ通信でフロントエンドに関連するセッション変数を使用することはできません。

于 2012-11-05T07:59:28.947 に答える
2

上記の方法は機能しますが、PayPalサンドボックスが「通常のPayPal」 hosted_button_idを受け入れないという問題がありました。これはサンドボックスでhosted_button_idを再作成することで対処されました。

<input type="hidden" name="hosted_button_id" value="RECREATENEWINPAYPALSANDBOX">
于 2012-07-01T19:18:03.667 に答える