ホームページ  >  記事  >  バックエンド開発  >  PHP と PayPal API を使用して支払う

PHP と PayPal API を使用して支払う

王林
王林オリジナル
2023-06-19 16:13:192878ブラウズ

オンライン取引の普及に伴い、支払い方法も徐々に多様化しており、その中でも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 サイトの他の関連記事を参照してください。

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