PHP プロジェクトを編成するだけで PayPal 支払い機能を統合できます。
1. フォームの構築:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2.IPN検証部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
クラスペイパル{ var $ipn_data = array(); // 配列にはIPNのPOST値が含まれます var $fields = array(); // Paypal に送信されるフォームパラメータ、例: item_name=iPhone 6、quantity=1、amount=499、currency_code=USD およびすべてのフォーム情報、 //検証IPNを呼び出す前に初期化する必要があります var $paypal_url = 'https://www.paypal.com/cgi-bin/webscr';//サンドボックス: https://www.sandbox.paypal.com/cgi-bin/webscr
function validate_ipn() {//IPN を検証する // PayPal URLを解析します $url_par=parse_url($this->paypal_url); // _POST 変数から投稿文字列を生成し、 をロードします// _POST vars を配列に入れて、呼び出し側から変数を操作できるようにします // script. $post_str = ''; foreach ($_POST as $field=>$value) { $this->ipn_data["$field"] = $value; $post_str .= $field.'='.urlencode(stripslashes($value)).'&'; } $post_str.="cmd=_notify-validate"; // ipnコマンドを追加します // paypalへの接続を開きます $fp = fsockopen($url_par[host],"80",$errnum,$errstr,30); if(!$fp) { // 接続を開けませんでした。 return false; } else { // データを paypal にポストバックします fputs($fp, "POST ".$url_par[path]." HTTP/1.1rn"); fputs($fp, "Host: ".$url_par[host]."rn"); fputs($fp, "Content-type: application/x-www-form-urlencodedrn"); fputs($fp, "Content-length: ".strlen($post_str)."rn"); fputs($fp, "接続: closenrn"); fputs($fp, $post_str . "rnrn"); // サーバーからの応答をループし、変数に追加します while(!feof($fp)) { $this->validate_ipn_response .= fgets($fp, 1024); } fclose($fp); // 接続を閉じる } if (eregi("VERIFIED",$this->validate_ipn_response)) { trueを返す; } else { return false; } } } ?> |
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。