2

私はペイパルを統合しています、そして私はそれを正しくしました。リターンURLを設定したので、以下のURLの結果セットが表示され$_GETます。

Array ( [tx] => 7XV08083GT683520Y [st] => Completed [amt] => 22.16 [cc] => USD [cm] => [item_number] => item_number )

私の懸念は、Paypalから返されたデータを検証する方法がないことです。私は他の支払いゲートウェイで経験しました。他の支払いゲートウェイhashMatchでは、フォームによって送信されたデータが編集されていないことを確認できます。

私のフォームは以下の通りです。

<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">
<!-- 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> 

私のphpコード出力

 <input type="hidden" value="50.16" name="amount">

しかし、私はfirebugを使用し、それを以下に編集して支払いを行いました。

<input type="hidden" value="22.16" name="amount">

それでもCompleted支払いであるため結果は得られますが、手動で変更を加えたため、結果は得られないはずです。知識があれば誰でも編集できます。これが有効な支払いであることを確認するにはどうすればよいですか?フォームデータが編集されていないことを確認するにはどうすればよいですか?

4

4 に答える 4

1

重要でDBとのやり取りが必要なものはすべて、検証する必要のあるデータにPaypalsIPNを使用する必要があります。基本的に、Paypalはデータを含むURLをWebサイトに投稿し、スクリプトは正確なデータに加えて、データが実際に正しいことを確認するコマンドを投稿する必要があります。Paypalが「確認済み」の応答を返したら、データを更新します。

もう1つの方法は、Paypalのエクスプレスチェックアウトを使用することです。基本的には、顧客に「x」の金額を請求するための「OK」を取得します。顧客が金額の支払いに同意したら、顧客の「同意」とともにデータをPaypalに投稿します。トランザクションが完了したかどうかにかかわらず、応答を受け取ります。

https://www.paypal.com/ipn

https://www.x.com/developers/paypal/documentation-tools/express-checkout/integration-guide/ECGettingStarted

于 2013-01-22T18:28:39.620 に答える
0

「今すぐ購入」ボタンの代わりにPaypalAPIを使用する必要があるよりも、Paypalから戻ってきたかどうかを通知する場合は、APIを使用すると、支払いプロセスをより柔軟に制御できます。

于 2013-01-23T06:45:58.867 に答える
0

ペイパルに再入金する前に、データをデータベースに保存します(product_id、amount、quantityなど)

payaplから戻った後、データベースで戻り値を確認してください。

これが適切な方法です。

于 2013-01-22T05:13:35.293 に答える
0

これらのいくつかを試すことができます:

1)PayPalWebサイトで暗号化されたボタンを作成する

2)暗号化されたWebサイト支払い(EWP)を使用してボタンを動的に暗号化する

http://www.paypalobjects.com/en_US/ebook/PP_WebsitePaymentsStandard_IntegrationGuide/encryptedwebpayments.htmlで入手可能

また、このSOリンクにはいくつかの詳細があり ます。動的なPayPalボタンの生成-非常に安全ではありませんか?

于 2013-01-25T00:25:55.137 に答える