>  기사  >  백엔드 개발  >  PHP 및 PayPal API를 사용하여 결제

PHP 및 PayPal API를 사용하여 결제

王林
王林원래의
2023-06-19 16:13:192878검색

온라인 거래의 인기가 높아짐에 따라 결제수단도 점차 다양해지고 있으며, 그 중 페이팔(PayPal)이 널리 사용되는 결제수단으로 큰 인기를 얻고 있습니다. PayPal을 사용하여 웹사이트나 앱에서 거래를 처리하려는 경우 PHP 및 PayPal API를 사용하여 결제 프로세스를 쉽게 완료할 수 있습니다.

PayPal API는 PayPal과 상호작용하기 위한 프로그래밍 인터페이스 세트입니다. API를 통해 PayPal로부터 알림을 받고, 최신 거래 정보를 쿼리하고, 결제 요청을 시작하는 등의 작업을 수행할 수 있습니다. 이번 글에서는 PHP와 PayPal API를 사용하여 결제하는 방법을 설명하겠습니다. 시작하자!

1단계: PayPal API 자격 증명 받기

PayPal API를 사용하기 전에 API 자격 증명을 얻어야 합니다. 이를 통해 귀하는 API를 통해 PayPal과 통신하고 거래를 수행할 수 있습니다. 자격 증명을 얻으려면 다음 단계를 따르세요.

1. PayPal 개발자 웹사이트를 방문하여 계정에 로그인한 후 계정 센터를 클릭하세요.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.