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

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

phparrayshandledataCollectionsefficiativeStructure; heidearecreatedwitharray () 또는 [], ac

RETARTYOURROUTERANDOCPUTERESOLVETEMPORARYGLITCES.2.RUNTHENTERWORKTROUBLESHOTERVIATHESTEMTRAYTOAUAUTOMALICALLYFIXCOMMONISS.3.RENEWTHEIPADDRESSUSINGCOMMANDPROMPROMPTASADMINSTRATORBYRUNNINGIPCONFIG/RELEART, IPCONFIG/RENEET, NETSHWINSOCKRETSHONT, 및 rENTOKRETSHONTONT, and NETSHWINSOCKREST

$ _cookieisapppsuperglobalforaccessingcookiessentBythebrowser; cookiesAresetUsingSetCookie () preveroutput, readVia $ _cookie [ 'name'], values, anddeletedBySettanExpiredTimestamp, withSecurityBestFORTETTRATS, withSecurityBestPonly

TheObserverdesignpatternenablesautomaticnotificationofdependentobjectswhenasubject'sstatechanges.1)Itdefinesaone-to-manydependencybetweenobjects;2)Thesubjectmaintainsalistofobserversandnotifiesthemviaacommoninterface;3)Observersimplementanupdatemetho

phpmyadmin을 효과적으로 보호하려면 여러 계층의 보안 조치를 취해야합니다. 1. IP를 통한 액세스 제한, 신뢰할 수있는 IP 연결 만 허용됩니다. 2. 기본 URL 경로를 추측하기 쉽지 않은 이름으로 수정하십시오. 3. 강력한 비밀번호를 사용하고 최소화 된 권한을 가진 전용 MySQL 사용자를 만듭니다. 2 단계 인증을 활성화하는 것이 좋습니다. 4. Phpmyadmin 버전을 유지하여 알려진 취약점을 수정하십시오. 5. 웹 서버 및 PHP 구성을 강화하고 위험한 기능을 비활성화하며 파일 실행을 제한합니다. 6. 자격 증명 누출을 방지하기 위해 HTTPS가 통신을 암호화하도록 강제; 7. 사용하지 않을 때 phpmyadmin을 비활성화하거나 HTTP 기본 인증을 증가시킵니다. 8. 정기적으로 로그를 모니터링하고 FAIL2BAN을 구성하여 무차별 힘 균열을 방어합니다. 9. 설정 삭제 및

XSLT 매개 변수는 외부 통과 값을 통한 동적 변환을위한 핵심 메커니즘입니다. 1. 선언 된 매개 변수를 사용하고 기본값을 설정하십시오. 2. xsltargumentList와 같은 인터페이스를 통해 응용 프로그램 코드 (예 : C#)에서 실제 값을 전달합니다. 3. 템플릿에서 $ paramname 참조 매개 변수를 통한 조건부 처리, 현지화, 데이터 필터링 또는 출력 형식 제어; 4. 모범 사례에는 의미있는 이름 사용, 기본값 제공, 관련 매개 변수 그룹화 및 값 확인이 포함됩니다. 매개 변수를 합리적으로 사용하면 XSLT 스타일 시트를 재사용 가능하고 유지 관리 가능하게 만들 수 있으며 동일한 스타일의 시트는 다양한 입력에 따라 다양한 출력 결과를 생성 할 수 있습니다.
![현재 NVIDIA GPU에 첨부 된 디스플레이를 사용하고 있지 않습니다 [고정].](https://img.php.cn/upload/article/001/431/639/175553352135306.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
ifyousee "YourEnotusingAdisplayAttachedToannvidiagpu,"YourMonitorIsConnectedTothenVidiagpupport, configuredisplaysettingsinnvidiacontrolpanel, updatedRiversUsingDduandcleanInstall, 및 setTheprestOdcreteinbios/uefi

ApiversioningInphpcanbeefefectically ImplementedUrl, 헤더, orqueryparameter 접근법, withurlanderversioningmostrecomported.1. forurl 기반 Versioning, includeversionintheroute (예 :/v1/users) andorganizecontrollerSinversioneddiriversies, ro
