온라인 거래의 인기가 높아짐에 따라 결제수단도 점차 다양해지고 있으며, 그 중 페이팔(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!