|
|
카드번호
유효기간
CVC
비밀번호 앞 두 자리
등을 입력합니다.
4. 승인 완료
결제가 성공하면 PHP의 결과 처리 페이지로 이동합니다.
예를 들면
success.php
또는
result.php
5. PHP에서 승인 검증
가장 중요한 부분입니다.
사용자가 URL을 조작할 수도 있기 때문에
절대로
if($success) { 주문완료; }
처럼 처리하면 안 됩니다.
반드시 PG 서버에
승인번호
결제금액
주문번호
를 다시 확인해야 합니다.
6. DB 저장
승인이 확인되면
INSERT INTO orders ( order_no, userid, amount, pay_status ) VALUES ( '$order_no', '$userid', '$amount', '결제완료' );
처럼 저장합니다.
PHP 쇼핑몰의 구조index.php product.php cart.php order.php pay.php success.php cancel.php fail.php
보통 이런 구조를 많이 사용합니다.
실제로 사용하는 기술
대부분의 PHP 쇼핑몰은 다음과 같은 기술을 사용합니다.
PHP
MySQL 또는 MariaDB
HTML
CSS
JavaScript
PG사의 JavaScript SDK
PG사의 REST API
국내 PHP 쇼핑몰에서 많이 사용하는 PG
대표적으로 다음과 같은 PG들이 PHP 예제와 개발 문서를 제공합니다.
토스페이먼츠
KG이니시스
NHN KCP
나이스페이먼츠
이들 PG사는 PHP 샘플 코드와 테스트 환경(Sandbox)을 제공하므로, 이를 기반으로 결제 연동을 구현할 수 있습니다.
개발 시 중요한 보안 원칙
카드번호를 쇼핑몰 서버에 직접 저장하거나 처리하지 않습니다. 카드 정보 입력은 PG사가 제공하는 결제창이나 보안 입력창에서 이루어집니다.
결제 성공 여부는 반드시 서버에서 PG API를 통해 최종 검증한 후 주문을 완료 처리합니다.
결제 금액과 주문 번호는 서버에서 생성하고 검증하여 클라이언트에서 임의로 변경할 수 없도록 합니다.
이러한 구조를 따르면 PHP로 직접 개발한 쇼핑몰에서도 안전하게 카드결제를 연동할 수 있습니다.