본문 바로가기
코딩&AI프로젝트

네이버페이와 카카오페이를 이용한 결제가 가능한 웹사이트 만들기 (PHP와 JavaScript 버전)

by mywarmstory 2024. 11. 23.

안녕하세요! 😊
오늘은 PHP와 JavaScript를 사용하여 네이버페이카카오페이 결제가 가능한 웹사이트를 만드는 방법을 설명드릴게요.
초보자분들도 쉽게 따라 하실 수 있도록 단계별로 차근차근 알려드리겠습니다. 🚀


1. 네이버페이와 카카오페이란?

네이버페이와 카카오페이는 한국에서 많이 사용되는 간편결제 시스템입니다.

  • 네이버페이: 네이버 계정만 있으면 다양한 웹사이트에서 간단하게 결제할 수 있는 서비스입니다.
  • 카카오페이: 카카오톡과 연동되어 간편하게 결제할 수 있는 서비스입니다.

2. 준비물

  1. PHP 서버: 결제 요청을 처리할 웹 서버입니다.
  2. 네이버페이와 카카오페이 API 키: 각각의 개발자센터에서 발급받아야 합니다.
  3. HTML/CSS/JavaScript: 결제 버튼과 결과 페이지를 구성합니다.

3. 네이버페이와 카카오페이 연동 준비

1) 네이버페이

  1. **네이버페이 개발자 센터**에 가입합니다.
  2. 애플리케이션을 등록하고 API 키를 발급받습니다.
  3. 결제 API 문서를 읽고 요청 형식을 파악합니다.

2) 카카오페이

  1. **카카오 디벨로퍼스**에 가입합니다.
  2. 애플리케이션을 등록하고 REST API Key를 발급받습니다.
  3. 결제 API 문서를 읽고 요청 형식을 파악합니다.

4. PHP와 JavaScript로 결제 가능한 웹사이트 구현하기

1) 프로젝트 구조

project/
├── index.html       # 메인 HTML 파일
├── pay_naver.php    # 네이버페이 결제 처리
├── pay_kakao.php    # 카카오페이 결제 처리
└── success.php      # 결제 성공 페이지

2) HTML 파일 (index.html)

HTML로 기본적인 결제 버튼을 구성합니다.

    
    
    

네이버페이 & 카카오페이 결제


        // 네이버페이 버튼 클릭 시 PHP 파일로 요청
        document.getElementById('naverPayButton').addEventListener('click', () => {
            window.location.href = "pay_naver.php";
        });

        // 카카오페이 버튼 클릭 시 PHP 파일로 요청
        document.getElementById('kakaoPayButton').addEventListener('click', () => {
            window.location.href = "pay_kakao.php";
        });
    

3) 네이버페이 결제 처리 (pay_naver.php)

PHP에서 네이버페이 API로 결제 요청을 처리합니다.

https://api.naver.com/pay";

// 결제 요청 데이터
$data = [
    "client_id" => $naverPayClientId,
    "amount" => 10000,
    "item_name" => "테스트 상품",
    "return_url" => "http://localhost/success.php"
];

// cURL로 네이버페이 API 호출
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $naverPayUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
curl_close($ch);

// 응답 처리
$responseData = json_decode($response, true);
if (isset($responseData["payment_url"])) {
    header("Location: " . $responseData["payment_url"]); // 결제 페이지로 리디렉션
    exit;
} else {
    echo "결제 요청 실패: " . $responseData["message"];
}
?>

4) 카카오페이 결제 처리 (pay_kakao.php)

PHP에서 카카오페이 API로 결제 요청을 처리합니다.

https://kapi.kakao.com/v1/payment/ready";

// 결제 요청 데이터
$data = [
    "cid" => "TC0ONETIME",
    "partner_order_id" => "123456789",
    "partner_user_id" => "user123",
    "item_name" => "테스트 상품",
    "quantity" => 1,
    "total_amount" => 10000,
    "vat_amount" => 1000,
    "tax_free_amount" => 0,
    "approval_url" => "http://localhost/success.php",
    "cancel_url" => "http://localhost/cancel.php",
    "fail_url" => "http://localhost/fail.php"
];

// cURL로 카카오페이 API 호출
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $kakaoPayUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: KakaoAK " . $kakaoApiKey
]);

$response = curl_exec($ch);
curl_close($ch);

// 응답 처리
$responseData = json_decode($response, true);
if (isset($responseData["next_redirect_pc_url"])) {
    header("Location: " . $responseData["next_redirect_pc_url"]); // 결제 페이지로 리디렉션
    exit;
} else {
    echo "결제 요청 실패: " . $responseData["msg"];
}
?>

5) 결제 성공 페이지 (success.php)

결제가 성공하면 사용자에게 결제 성공 메시지를 보여줍니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>결제 성공</title>
</head>
<body>
    <h1>결제가 성공적으로 완료되었습니다!</h1>
    <p>감사합니다.</p>
</body>
</html>

5. 실행 방법

  1. PHP 서버를 실행합니다(예: XAMPP, MAMP, 또는 로컬 PHP 서버).
    php -S localhost:8000
    
  2. 브라우저에서 http://localhost:8000/index.html로 접속합니다.
  3. 네이버페이 또는 카카오페이 버튼을 클릭해 결제 요청을 테스트합니다.

6. 결론

PHP와 JavaScript를 사용하면 네이버페이와 카카오페이를 쉽게 연동할 수 있습니다.

  • PHP는 결제 API와 통신을 처리하고,
  • JavaScript는 결제 버튼 클릭 이벤트를 처리해 사용자 경험을 제공합니다.

초보자도 충분히 구현할 수 있으니, 하나씩 따라 해보시고 멋진 웹사이트를 만들어보세요! 😊
궁금한 점은 언제든지 댓글로 물어보세요! 🚀

반응형