PHP - PayPal統合

こんにちは、未来の開発者たち!今日は、PHPを使ったPayPal統合の世界に興味深く飛び込んでみましょう。近所の親切なコンピュータサイエンスの先生として、私はこのプロセスをステップバイステップでガイドします。プログラミングが初めてであれば心配しないでください。基本から始めて少しずつ進んでいきましょう。コーヒーを飲みながら、一緒に潜りましょう!

PHP - Paypal Integration

PayPal統合の理解

コードを書く前に、PayPal統合とは何かを理解しましょう。オンラインの店を運営して、手作りセータを売っているとします。顧客が新しい暖かい服を簡単に購入できる方法を提供したいですよね。ここでPayPalが登場します!デジタルウォレットのように、安全なオンライン取引を可能にします。

PayPalを使う理由

  1. 幅広く信頼されています
  2. 実装が簡単
  3. 複数の通貨をサポート
  4. 購入者と販売者保護を提供

PayPalが素晴らしい理由を知ったところで、次にPHPのウェブサイトにどのように統合するか見てみましょう。

PayPal統合のファイルシステム

PHPアプリケーションにPayPalを統合するためには、適切なファイル構造を設定する必要があります。これによりコードが整理され、メンテナンスがしやすくなります。きっと将来のあなたが現在のあなたに感謝することでしょう!

以下は私たちが使用するファイル構造です:

project_root/
│
├── config/
│   └── paypal.php
│
├── includes/
│   └── paypal.php
│
├── public/
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── script.js
│   └── index.php
│
└── vendor/
└── autoload.php

以下にそれぞれのファイルの説明します:

  1. config/paypal.php: このファイルにはPayPal APIの認証情報を保存します。
  2. includes/paypal.php: このファイルにはPayPal統合の関数を含めます。
  3. public/: このディレクトリには公開可能なファイルを格納します。
  4. vendor/: 依存関係を格納する場所です(Composerを使用します)。

PayPal API認証情報の設定

コードを書く前に、PayPal APIの認証情報を取得する必要があります。新しいPayPalパワードカーの鍵を取得するようなものです!

  1. developer.paypal.comにアクセスしてアカウントを作成します(すでにアカウントがある場合はログインします)。
  2. ダッシュボードに移動し、新しいアプリを作成します。
  3. 作成すると、Client IDとSecretが表示されます。これらは非常に重要ですので、安全に保管してください!

次に、これらの認証情報をconfig/paypal.phpファイルに追加します:

<?php
return [
'client_id' => 'YOUR_CLIENT_ID_HERE',
'client_secret' => 'YOUR_CLIENT_SECRET_HERE',
'mode' => 'sandbox' // 本番環境の場合は 'live' を使用
];

'YOUR_CLIENT_ID_HERE'と'YOUR_CLIENT_SECRET_HERE'を実際のPayPal API認証情報に置き換えてください。

PayPal SDKのインストール

認証情報を設定したら、PayPal SDKをインストールしましょう。Composerを使用して、まるで個人のショッピングアシスタントのようなものです。

まず、Composerがインストールされていることを確認し、プロジェクトのルートで以下のコマンドを実行します:

composer require paypal/rest-api-sdk-php

これにより、PayPal SDKがインストールされ、必要なファイルがvendorディレクトリに作成されます。

PayPal統合関数の作成

ここからが楽しい部分です。PayPal統合関数を書きます。これらをincludes/paypal.phpファイルに作成します。

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use PayPal\Api\Amount;
use PayPal\Api\Payer;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
use PayPal\Api\Transaction;
use PayPal\Auth\OAuthTokenCredential;
use PayPal\Rest\ApiContext;

function getPayPalApiContext() {
$paypalConfig = require __DIR__ . '/../config/paypal.php';

$apiContext = new ApiContext(
new OAuthTokenCredential(
$paypalConfig['client_id'],
$paypalConfig['client_secret']
)
);

$apiContext->setConfig([
'mode' => $paypalConfig['mode'],
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'DEBUG'
]);

return $apiContext;
}

function createPayPalPayment($amount) {
$apiContext = getPayPalApiContext();

$payer = new Payer();
$payer->setPaymentMethod("paypal");

$amount = new Amount();
$amount->setCurrency("USD")
->setTotal($amount);

$transaction = new Transaction();
$transaction->setAmount($amount)
->setDescription("Payment description");

$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("http://localhost/success.php")
->setCancelUrl("http://localhost/cancel.php");

$payment = new Payment();
$payment->setIntent("sale")
->setPayer($payer)
->setRedirectUrls($redirectUrls)
->setTransactions(array($transaction));

try {
$payment->create($apiContext);
return $payment;
} catch (Exception $ex) {
echo "Error: " . $ex->getMessage();
exit(1);
}
}

以下にここで何が起こっているかを説明します:

  1. 必要なPayPal SDKクラスをインクルードします。
  2. getPayPalApiContext()関数は、認証情報を使用してPayPal APIコンテキストを設定し返します。
  3. createPayPalPayment()関数は、指定された金額で新しいPayPal支付を生成します。支払い者、金額、取引の詳細、リダイレクトURLを設定します。

PayPal統合の使用

関数を設定したので、次にpublic/index.phpファイルでそれらを使用してみましょう:

<?php
require_once __DIR__ . '/../includes/paypal.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$amount = $_POST['amount'];
$payment = createPayPalPayment($amount);

foreach($payment->getLinks() as $link) {
if($link->getRel() == 'approval_url') {
header("Location: ".$link->getHref());
exit(1);
}
}
}
?>

<!DOCTYPE html>
<html>
<head>
<title>PayPal統合の例</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>PayPal支払いの例</h1>
<form method="post">
<label for="amount">金額 (USD):</label>
<input type="number" id="amount" name="amount" min="1" step="0.01" required>
<button type="submit">PayPalで支払い</button>
</form>
<script src="js/script.js"></script>
</body>
</html>

これにより、ユーザーが金額を入力し、PayPalで支払いを行うボタンをクリックするシンプルなフォームが作成されます。フォームが送信されると、PayPal支付が生成され、ユーザーはPayPalにリダイレクトして支払いを完了します。

結論

おめでとうございます!あなたは刚刚PHPで初めてのPayPal統合を作成しました。今日は多くのことをカバーしました。ファイル構造の設定からPayPal支付の生成まで、さまざまな部分を学びました。練習は完璧を生みますので、実験を恐れず、学んだことを発展させましょう。

ウェブ開発の世界では、PayPalなどの支払いシステムの統合は価値のあるスキルです。まるでPHPロケットにターボボostを追加したかのように、あなたのプログラミングの旅を新たな高みに引き上げます!

codingを続け、学び続け、何より楽しみましょう!次回まで、happy coding!



この翻訳は原文の内容、語調、細かい部分をできるだけ忠実に再現しています。

Credits: Image by storyset