ホームページ  >  記事  >  バックエンド開発  >  PHP 言語で開発された Paypal 決済デモの具体的な実装_PHP チュートリアル

PHP 言語で開発された Paypal 決済デモの具体的な実装_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:07:461349ブラウズ

PHP言語で開発されたPaypal支払いデモの具体的な実装

1.開発前の準備

https://developer.paypal.com/ Paypalの公式開発者Webサイトにアクセスして、開発者アカウントを登録します。

アカウントでログインした後、ナビゲーションで「ダッシュボード」をクリックしてダッシュボードに入ります。以下のスクリーンショットに示すように、後続の操作はこのパネルで実行されます。

上のスクリーンショットのメニューの「サンドボックス」の下にある「アカウント」で、サンドボックステストの購入者アカウントと販売者アカウントを確認できます。どちらのテスト アカウントにも、仮想アカウントのパスワードを設定するためのchangepasswordを含むプロファイル オプションがあります。

上のスクリーンショットのメニュー「サンドボックス」の下にあるトランザクションがトランザクション記録です。

スクリーンショットページの右上隅にある「アプリの作成」ボタンをクリックします。アプリケーションを作成します。作成後、クライアント ID とシークレットが提供されます。これら 2 つは PHP 定数として構成でき、後の開発で使用されます。

2. 決済デモの開発に入る

開発コードのルート ディレクトリをローカルに作成します。まず、index.html を作成し、製品名と製品価格の 2 つの簡単な入力項目を配置します。 コードとスクリーンショットは次のとおりです。 リーリー

商品名と価格を入力してください。 「支払う」をクリックすると、PayPal の支払いページに移動します。サンドボックス テスト購入者アカウントを使用して支払います。支払いが成功したことがわかります。次に、テスト販売者アカウントにログインします。販売者のアカウントに支払いが入金されたことがわかります。もちろん、Paypalの手数料はここで差し引かれます。手数料は出品者が負担します。

PHP がどのように実装されているかを詳しく見てみましょう。まず、paypal から提供された php-sdk をコード ディレクトリに取得する必要があります。ここでは、PHP のパッケージマネージャー Composer を使用して最新の SDK を入手する方法を紹介します。 もちろん、github などの他のチャネルからも最新の Paypal PHP-SDK を入手できます。

Composer はデフォルトでコンピューターにすでにインストールされています。お持ちでない場合は、Du Niang または Google にアクセスして、composer とともにインストールしてください。

次に、コードルートディレクトリにcomposer.jsonファイルを書き込み、パッケージコンテンツを取得します。 json ファイルのコードは次のとおりです:

{
"require" :
{ "paypal/rest-api-sdk-php" : "1.5.1" }
}

Linux/UNIX システムの場合は、ルート ディレクトリで直接 Composer install を実行して、パッケージのコンテンツを取得します。

インストール後。ルートディレクトリの下にベンダーディレクトリが生成されます。サブディレクトリには、composer と paypal の 2 つがあります。 Composer は自動読み込みを実装しており、Paypal は SDK コンテンツです。

次に、パブリック ファイルを作成しましょう (app/start.php がデフォルトで使用されますが、プロジェクト内でカスタマイズできます)。実際には、クライアント ID とシークレットを自動的にロードして作成するために SDK の autoload.php を実装するだけです。前述のように、生成された PayPal 支払いオブジェクトのインスタンス。 start.php コードは次のとおりです:

php


require "vendor/autoload.php"; // SDKの自動ロードファイルをロード define('SITE_URL', 'http://www.paydemo.com');ウェブサイト URL 自己定義 // 支払いオブジェクト インスタンスを作成します $paypal = new PayPalRestApiContext( new PayPalAuthOAuthTokenCredential( 'あなたのクライアント ID' 'あなたのシークレット') ) );

次のステップは、フォームで送信された checkout.php 処理ファイルを実装することです。コードの内容は次のとおりです:
php

/**
* @作者xxxxxxxx
* @brief 简介:
* @日付 15/9/2
* @time 午後5時00分
*/
使用 PayPalApiPayer;
使用 PayPalApiItem;
使用 PayPalApiItemList;
使用 PayPalApiの詳細;
使用 PayPalApiAmount;
使用 PayPalApiTransaction;
使用 PayPalApiRedirectUrls;
使用 PayPalApiPayment;
使用 PayPalExceptionPayPalConnectionException;

必須 "app/start.php"; if (!isset($_POST['product'], $_POST['price'])) { die("パラメータを失う"); }$product = $_POST['product']; $price = $_POST['価格']; 送料 = 2.00; //运费 $total = $価格 + $送料; $payer = new Payer(); $payer->setPaymentMethod('paypal'); $item = 新しいアイテム(); $item->setName($product) ->setCurrency('USD') ->set数量(1) ->setPrice($price); $itemList = new itemList(); $itemList->setItems([$item]); $details = new 詳細(); $詳細->set Shipping($送料) ->setSubtotal($価格); $amount = new Amount(); $金額->setCurrency('USD') ->setTotal($合計) ->setDetails($詳細); $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($itemList) ->setDescription("支付説明内容") ->setInvoiceNumber(uniqid) ()); $redirectUrls= new RedirectUrls(); $redirectUrls->setReturnUrl(SITE_URL . '/pay.php?success=true') ->setCancelUrl(SITE_URL . '/pay.php?success=false) '); $payment = new Payment(); $payment->setIntent('sale') ->setPayer($payer) ->setRedirectUrls ($redirectUrls) ->setTransactions([$transaction]); try { $payment) } キャッチ (PayPalConnectionException $e) { echo $e->getData(); $approvalUrl = $payment- &g t;getApprovalLink ( ); ヘッダー("場所: {$approvalUrl}"); checkout.php は、フォームを通じて送信されたパラメーターを通じて、特定の支払いの詳細とパラメーターを初期化し、設定します。ここでは一般的に使用される部品のみをリストします。 PayPal には多くのパラメータ設定が用意されています。詳細については、Paypal の公式開発者ドキュメントを参照してください。 checkout.phpでパラメータを設定した後。支払いリンクが生成されます。ヘッダーを使用して支払いリンク (Paypal の支払いページ) に移動すると、サンドボックスによって提供される購入者アカウントを使用して支払いを行うことができます。スクリーンショットは次のとおりです:

購入者アカウントでの支払い完了後。サンドボックスの販売アカウント残高を確認してください。手数料を差し引いた金額を受け取ったことがわかります。

支払いの成功または失敗後にコールバック処理があります。コールバック処理用のphpファイルは上記checkout.phpのsetReturnUrlに設定されています。ここで設定しているのは /pay.php?success=true です

次に、pay.php がコールバックを簡単に処理する方法を見てみましょう。まず pay.php コードを貼り付けます:

php

必須 'app/start.php';

使用 PayPalApiPayment;
使用 PayPalApiPaymentExecution;

if(!isset($_GET['success'], $_GET['paymentId'], $_GET['PayerID'])){
   
死ね();
}

if((bool)$_GET['success']=== 'false'){

   
エコー「取引はキャンセルされました!」;
   
死ね();
}

$paymentID = $_GET['paymentId'];
$payerId = $_GET['PayerID'];

$payment = 支払い::get($paymentID, $paypal);

$execute = new PaymentExecution();
$execute->setPayerId($payerId);

試してみる{
   
$result = $payment->execute($execute, $paypal);
}
キャッチ(例外 $e){
   
死ね($e);
}
echo「支付成功!感谢応援!」;

サポートの原理を確認した後、再び自分自身のサイトでより充実した展開が行われ、Paypal の公式テキストがより具体的に公開されました。ここでは特に言及しない。



www.bkjia.com本当http://www.bkjia.com/PHPjc/1059213.html技術記事 PHP言語で開発したPaypal決済デモの具体的な実装 1. 開発前の準備 https://developer.paypal.com/ Paypalの公式開発者サイトに開発者アカウントを登録します。 アカウントでログインした後、ガイドをクリックしてください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。