ホームページ  >  記事  >  バックエンド開発  >  phpショッピングサイトのPaypal決済方法について

phpショッピングサイトのPaypal決済方法について

不言
不言オリジナル
2018-06-19 17:28:002595ブラウズ

この記事では主に、PayPal を使って PHP ショッピング サイトの支払いを行う方法を紹介します。必要な方は参考にしてください。

#PayPal は高速で安全です。便利な、国境を越えた取引に推奨されるオンライン支払い方法です。現在、PayPal をほとんどの国内クレジット カードに関連付けることができるため、中国人は国境を越えた取引を行うことができます。

定数paypalurlを定義

const PAYPAL_URL = 'https://www.sandbox.paypal.com/';

送信するデータを配列として記録

$paypalData = array(
                   'add'                => 1,
                    'cmd'               => '_ext-enter', 
                    'redirect_cmd'    => '_xclick', 
                    'business'            => $paypalAccount, --------liangliangfeng211@gmail.com这个是收款人的paypal账号
                    'item_name'       => '51customimprint shopping cart',
                    'item_number'   => $order->id,
                    'first_name'        => $address->first_name,
                    'last_name'         => $address->last_name,
                    'address1'           => $address->address1, 
                    'city'                     => $address->city,
                    'state'                  => $address->state_or_province,
                    'zip'                      => $address->zip_code, 
                    'amount'            => $order->subtotal,
                    'shipping'          => $order->shipping_fee,
                    'no_note'            => 1,
                    'currency_code'    => 'USD', 
                    'lc'                      => 'US'
                );

この配列をURLアドレスに変換

$paypalArguments = array();
                foreach($paypalData as $k => $v){
                    array_push($paypalArguments, $k . '=' . urlencode($v));
                }
                $paypalUrl = self::PAYPAL_URL . '?' . implode('&', $paypalArguments);
                $this->_redirect($paypalUrl);

次に、テストするときに、Paypal インターフェイスのアドレスを次のように設定する必要があります:

https://www.sandbox.paypal.com/cgi-bin/ webscr

基本プロセス顧客が支払いを行うと、PayPal は指定された URL (type=”hidden” name=”notify_url” value=”) に支払いを送信します。 「 ) サーバーが通知を送信します。この通知には、顧客のすべての支払い情報 (顧客名、金額など) と暗号化されたコードが含まれます。サーバーは通知を受けると、暗号化コードを含むその情報を安全な PayPal URL に送り返します。 PayPal は、暗号化された文字列をチェックしてトランザクションを認証します。この IPN データの PayPal への返送により「なりすまし」が防止されるため、IPN が PayPal からのものであることを確認できます。検証する際、PayPal は正当性の確認をサーバーに送り返します。

ヒント: 即時支払い通知を有効にするには、ユーザー情報からの通知を受け取るための URL を入力する必要があります。

即時支払い通知を有効にすると、支払いを受け取るたびにサーバーが通知を受信するようになり、この通知は非表示の「FORM POST」メソッドで指定された URL に送信され、すべての支払い情報が含まれます。通知の FORM 変数は、このページの下部にリストされています。

PayPal から IPN を受け取るたびに、注文を実行する前に、以下で説明する通知確認プロセスを完了する必要があります。記載された情報を確認することで、取引が正当であることが保証されます。

通知確認 IPN 支払いが PayPal アカウントに入金されたことを確認するには、「receiver_email」として使用される電子メール アドレスが PayPal に登録されていることを確認する必要があります。アカウントを作成し、確認を取得します。

サーバーが即時支払い通知を受信したら、PayPal への HTTP POST を作成して通知を確認する必要があります。 POST は https://www.paypal.com/cgi-bin/webscr

に送信する必要があります。受信したフォーム変数はすべて、受信したとおりに送信する必要があります。また、値「_notify-validate」を持つ「cmd」という名前の変数 (たとえば、cmd=_notify-validate) を POST 文字列に追加する必要があります。

PayPal はこの POST に返信し、返信の本文に「VERIFIED」または「INVALID」という単語を含めます。 VERIFIED の応答を受け取ったら、注文を実行する前にいくつかのチェックを実行する必要があります。

システムは他の結果 (「保留中」や「失敗」など) も提供するため、「payment_status」が「完了」であることを確認します。 ") IPN を送信します。

詐欺師が古い完了したトランザクションを再利用するのを防ぐために、「txn_id」が重複していないことを確認してください。
詐欺師のアカウントに支払いが送られるのを防ぐために、「receiver_email」が PayPal アカウントに登録されているメール アドレスであることを確認してください。
他の取引詳細 (商品番号や価格など) をチェックして、価格が変更されていないことを確認したら、IPN データでデータベースを更新し、購入を処理できます。
「無効な」通知を受信した場合は、不審な通知とみなされ、調査される必要があります。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

#PHP 2 でショッピング カートを実装するコードについて


#PHP を使用して Alipay 支払いを実装するモバイルアプリの機能


以上がphpショッピングサイトのPaypal決済方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。