オンライン取引の普及に伴い、支払い方法も徐々に多様化しており、その中でもPayPalは広く利用されている支払い方法として非常に人気があります。 PayPal を使用して Web サイトまたはアプリケーションでトランザクションを処理する場合は、PHP と PayPal API を使用して支払いプロセスを簡単に完了できます。
PayPal API は、PayPal と対話するためのプログラミング インターフェイスのセットです。 API を通じて、PayPal からの通知の受信、最新の取引情報のクエリ、支払いリクエストの開始などを行うことができます。この記事では、PHPとPayPal APIを使用して支払いを行う方法を説明します。はじめましょう!
ステップ 1: PayPal API 認証情報を取得する
PayPal API を使用する前に、API 認証情報を取得する必要があります。これにより、API 経由で PayPal と通信し、トランザクションを実行できるようになります。資格情報を取得するには、次の手順に従います:
1. PayPal 開発者 Web サイトにアクセスし、アカウントにログインし、[アカウント センター] をクリックします。
2.「プロフィール」をクリックします。
3. [アプリケーションと資格情報] をクリックします。
4.「資格情報の作成」をクリックします。
5. API 認証情報の種類 (など) を選択します:
- 「支払い」は、支払いを受け取るアプリケーションを表します。
- 「支払い」は、アプリケーションが実行するユーザーへの支払いを表します。
- 「サブスクリプションと契約」は、アプリケーションが実行する定期的な支払いを表します。
6. アプリケーション名とオプションの説明を入力し、[資格情報の作成] をクリックします。
7. API 認証情報が表示されます。コードで必要になるため、安全な場所に保管してください。
ステップ 2: PayPal に接続する
次に、コードで PayPal API に接続する必要があります。 PayPal に接続するには、次のコードを使用します。
$api_endpoint = 'https://api.sandbox.paypal.com'; // Sandbox endpoint // $api_endpoint = 'https://api.paypal.com'; // Live endpoint $client_id = 'YOUR_CLIENT_ID_HERE'; $client_secret = 'YOUR_CLIENT_SECRET_HERE'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_endpoint."/v1/oauth2/token"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERPWD, $client_id.":".$client_secret); curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); $result = curl_exec($ch); $response = json_decode($result); $access_token = $response->access_token;
これにより、テスト環境で PayPal API に接続されます。実稼働環境に接続するには、5 行目と 4 行目のコメントを解除します。
ステップ 3: 支払いリクエストを開始する
PayPal API に接続したので、支払いリクエストを開始できます。支払いリクエストを開始するには、次のコードを使用します。
$post_data = '{ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [{ "amount": { "total": "10.00", "currency": "USD" } }], "redirect_urls": { "return_url": "https://example.com/success", "cancel_url": "https://example.com/cancel" } }'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_endpoint."/v1/payments/payment"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $headers = array( "Content-Type: application/json", "Authorization: Bearer ".$access_token ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); $response = json_decode($result);
これにより、$10 の支払いリクエストが開始され、ユーザーは成功ページまたはキャンセル ページにリダイレクトされます。必要に応じて金額と通貨を変更できます。
ステップ 4: 支払い資格情報を取得する
支払いが成功したら、データベースに保存するか処理するために、PayPal 支払い資格情報を取得する必要があります。支払い資格情報を取得するには、次のコードを使用します。
$payment_id = $response->id; $payer_id = $_GET['PayerID'] // Payer ID from the URL parameter $execute_payment = '{ "payer_id": "'.$payer_id.'" }'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_endpoint."/v1/payments/payment/".$payment_id."/execute"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $execute_payment); $headers = array( "Content-Type: application/json", "Authorization: Bearer ".$access_token ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); $response = json_decode($result); $transaction_id = $response->transactions[0]->related_resources[0]->sale->id;
これにより、支払い ID とトランザクション ID が取得されます。これらをデータベースに保存したり、他の方法で処理したりできます。
ステップ 5: PayPal 通知を処理する
最後に、トランザクションが発生すると、PayPal はアプリケーションに通知を送信します。次のコードを使用して通知を処理できます。
$http_body = file_get_contents('php://input'); $notification = json_decode($http_body); if($notification->event_type == "PAYMENT.SALE.COMPLETED") { $payment_id = $notification->resource->parent_payment; $sale_id = $notification->resource->id; // Process the completed sale } elseif($notification->event_type == "PAYMENT.SALE.REFUNDED") { $payment_id = $notification->resource->parent_payment; $refund_id = $notification->resource->id; // Process the refunded sale } else { // Handle other event types }
必要に応じて、支払い完了および返金の通知を処理できます。
概要
PHP と PayPal API を使用すると、支払いリクエストの処理、支払い伝票の取得、通知の処理が簡単に行えます。これらのコード スニペットを使用すると、PayPal を通じて支払いを受け入れ、独自のアプリケーションで支払い情報を簡単に処理できます。
以上がPHP と PayPal API を使用して支払うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。