PHP - PayPal 통합
안녕하세요, 야심찬 개발자 여러분! 오늘 우리는 PHP를 사용한 PayPal 통합의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 이 과정을 단계별로 안내해드리겠습니다. 프로그래밍에 처음 도전하신다면 걱정하지 마세요 - 기본부터 차근차근 설명하겠습니다. 따뜻한 커피 한 잔을 손에 들고, 함께 들어보겠습니다!
PayPal 통합 이해
코딩을 시작하기 전에, PayPal 통합이 무엇을 의미하는지 이해해보겠습니다. 상상해보세요, 손수制作的 스웨터를 판매하는 온라인 상점을 운영하고 있다면, 고객들이 새로운 따뜻한 의류를 쉽게 지불할 수 있는 방법을 제공하고 싶을 것입니다. 그게 PayPal의 역할입니다! 디지털 지갑처럼 안전한 온라인 거래를 가능하게 해줍니다.
PayPal 사용 이유
- 널리 신뢰받고 있습니다.
- 쉽게 구현할 수 있습니다.
- 다양한 화폐를 지원합니다.
- 구매자와 판매자 보호를 제공합니다.
이제 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
이를 구체적으로 설명하겠습니다:
-
config/paypal.php
: 이 파일은 PayPal API 자격 증명을 저장합니다. -
includes/paypal.php
: 이 파일은 PayPal 통합 함수를 포함합니다. -
public/
: 이 디렉토리는 공개 가능한 파일을 호스팅합니다. -
vendor/
: 이곳은 의존성이 저장됩니다 (Composer를 사용합니다).
PayPal API 자격 증명 설정
코딩을 시작하기 전에 PayPal API 자격 증명을 얻어야 합니다. 새로운 PayPal 기능을 갖춘 차에 열쇠를 얻는 것과 같습니다!
- developer.paypal.com에 가서 계정을 생성하거나 (이미 계정이 있다면 로그인하세요).
- 대시보드로 이동하여 새로운 앱을 생성합니다.
- 생성 후, 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는 PHP 라이브러리의 개인 쇼퍼와 같습니다.
먼저 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);
}
}
여기서 일어나는 일을 구체적으로 설명하겠습니다:
- 필요한 PayPal SDK 클래스를 포함합니다.
-
getPayPalApiContext()
함수는 PayPal API 컨텍스트를 설정하고 반환합니다. -
createPayPalPayment()
함수는 지정된 금액으로 새로운 PayPal 결제를 생성합니다.
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>
이 form은 사용자가 금액을 입력하고 PayPal로 결제하는 버튼을 클릭할 수 있게 합니다. form이 제출되면, PayPal 결제를 생성하고 사용자를 PayPal로 리디렉션합니다.
결론
축하합니다! 여러분은 PHP로 첫 번째 PayPal 통합을 완료했습니다. 오늘 우리는 파일 구조 설정에서 PayPal 결제 생성까지 많은 내용을 다루었습니다. 연습이 완성을 가져온다는 것을 기억하세요, 실험하고 배운 것을 바탕으로 발전시켜보세요.
웹 개발의 세계에서 PayPal과 같은 결제 시스템을 통합하는 것은 중요한 기술입니다. PHP 로켓에 터보 부스터를 추가하는 것처럼, 여러분의 코딩 여정을 새로운 높이로 이끌어줄 것입니다!
계속 코딩하고, 계속 배우며, 가장 중요한 것은 즐겁게 코드 작성하시길 바랍니다! 다음 번에 다시 만납시다, 행복한 코딩 되세요!
메서드 | 설명 |
---|---|
getPayPalApiContext() | 설정 파일에서 자격 증명을 사용하여 PayPal API 컨텍스트를 설정하고 반환합니다 |
createPayPalPayment($amount) | 지정된 금액으로 새로운 PayPal 결제를 생성합니다 |
Credits: Image by storyset