# Bootpay PG > 부트페이 PG 연동 개발자 문서. 한 번 연동으로 여러 PG를 지원합니다. --- ## 관련 문서 | 문서 | 설명 | |------|------| | [llms.txt](https://developers.bootpay.co.kr/llms/llms.txt) | 전체 문서 인덱스 (PG + Commerce) | | [commerce.txt](https://developers.bootpay.co.kr/llms/commerce.txt) | Commerce API (상품 판매, 구독 결제) | --- ## AI 에이전트 주의사항 1. **이 문서에 명시된 링크만 사용** - URL을 추측하거나 변형하지 마세요 2. **존재하지 않는 URL 추측 금지** - `docs.bootpay.co.kr` 등 레거시 URL 무효 3. **언어별 예제 경로 패턴**: `{기능}/{언어}.md` (예: `pg/server/token/nodejs.md`) ### 존재하는 서버 API (언어별 파일 있음) | API | 경로 패턴 | 설명 | |-----|----------|------| | 토큰 발급 | `pg/server/token/{언어}.md` | Access Token 발급 | | 영수증 조회 | `pg/server/receipt/{언어}.md` | 결제 정보 조회 (**결제 검증용**) | | 결제 취소 | `pg/server/cancel/{언어}.md` | 환불/취소 처리 | ### 존재하지 않는 경로 (추측 금지) - `pg/server/verify/...` - 없음 (영수증 조회 `receipt` 사용) - `pg/server/confirm/{언어}.md` - 없음 (개요 파일 `confirm.md`만 존재) - `pg/server/payment/...` - 없음 - `pg/server/refund/...` - 없음 (결제 취소 `cancel` 사용) --- ## PG 연동 순서 (매우 중요) **국내 PG 결제는 반드시 브라우저/앱(프론트엔드)에서 시작합니다.** ``` 1. 프론트엔드 (JS/Android/iOS): 결제 위젯 렌더링 → 사용자 결제 → receipt_id 받음 2. 백엔드 (Python/Node.js 등): receipt_id로 검증만 수행 ``` ### 흔한 실수 (절대 금지) - 백엔드에서 결제 시작하기 → 불가능! 결제창은 브라우저에서만 열림 - Python/Node.js로 "Bootpay HTTP 래퍼" 만들기 → 사용자가 직접 결제창에서 진행해야 함 - API 규격 보고 fetch/requests로 직접 구현 → **SDK 설치해서 사용!** --- ## 백엔드 SDK 사용 필수 ``` 잘못된 구현: requests.post('https://api.bootpay.co.kr/v2/...') 올바른 구현: SDK 설치 후 메서드 호출 ``` | 언어 | 설치 | 패키지 | |------|------|--------| | Node.js | `npm i @bootpay/backend-js` | @bootpay/backend-js | | Python | `pip install bootpay-backend` | bootpay-backend | | PHP | `composer require bootpay/backend-php` | bootpay/backend-php | | Java | Maven/Gradle | kr.co.bootpay:backend | | Go | `go get github.com/bootpay/backend-go` | backend-go | | Ruby | `gem install bootpay` | bootpay | | .NET | `dotnet add package Bootpay.BackendApi` | Bootpay.BackendApi | > **SDK 버전 명시 금지**: `@1.2.3`, `==2.0.0` 등 버전 추론 금지. 최신 버전 설치. --- ## 프론트엔드 CDN URL ```html ``` > **위젯(BootpayWidget)은 5.0.0 이상 버전에서만 사용 가능** (4.x 이하 불가) > 버전 번호 추론 금지 (5.3.0, 6.0.0 등 임의 버전 사용 금지) --- ## 코드 작성 규칙 ```javascript // 잘못된 메서드 (추론) Bootpay.renderWidget() Bootpay.render() Bootpay.openPayment() // 올바른 메서드 (문서에서 복사) BootpayWidget.render('#selector', { ... }) BootpayWidget.requestPayment({ ... }) BootpayWidget.update({ ... }) ``` --- ## 구현 순서 (5단계) | 순서 | 단계 | 역할 | 문서 | |------|------|------|------| | **1** | 위젯 렌더링 | 프론트엔드 | [quickstart.md](https://developers.bootpay.co.kr/llms/pg/quickstart.md) | | **2** | 결제 검증 | 백엔드 (필수) | [receipt.md](https://developers.bootpay.co.kr/llms/pg/server/receipt.md) | | **3** | 분리 승인 | 백엔드 (선택) | [confirm.md](https://developers.bootpay.co.kr/llms/pg/server/confirm.md) | | **4** | 웹훅 처리 | 백엔드 (권장) | [webhook/server.md](https://developers.bootpay.co.kr/llms/pg/webhook/server.md) | | **5** | 결제 취소 | 백엔드 (필요시) | [cancel.md](https://developers.bootpay.co.kr/llms/pg/server/cancel.md) | > **순서 중요**: Step 1 (프론트엔드) → Step 2 (백엔드 검증) 순서를 반드시 지키세요. --- ## 정산 구조 **PG 연동 = 결제 수납만. 정산은 PG사가 가맹점에게 직접 처리합니다.** - 고객 결제 → PG사 수납 → D+n일 후 가맹점 계좌로 정산 - 정산/출금/에스크로 시스템을 직접 구현할 필요 없음 - 플랫폼(마켓플레이스)에서 판매자 정산이 필요하면 → Commerce API 또는 지급대행 서비스 검토 --- ## 시작하기 - [PG 소개](https://developers.bootpay.co.kr/llms/pg/intro.md): 부트페이 PG 서비스 개요 - [빠른 시작](https://developers.bootpay.co.kr/llms/pg/quickstart.md): 5분 안에 결제 연동하기 ## 환경 설정 1. [부트페이 관리자](https://admin.bootpay.co.kr) 가입 2. [프로젝트 생성](https://admin.bootpay.co.kr/project) 3. [API 키 확인](https://admin.bootpay.co.kr/setting/developer) (Application ID, Private Key) 4. [위젯 설정](https://admin.bootpay.co.kr/payment/bootpay-widget) ## 프론트엔드 SDK - [JavaScript](https://developers.bootpay.co.kr/llms/pg/sdk/web.md): 웹 결제 연동 - [위젯 소개](https://developers.bootpay.co.kr/llms/pg/widget/intro.md): 결제 위젯 개요 ## 서버 연동 > 언어별 예제: `{기능}/{언어}.md` (nodejs, python, php, java, ruby, go, dotnet) - [토큰 발급](https://developers.bootpay.co.kr/llms/pg/server/token.md): Access Token 발급 - [결제 승인](https://developers.bootpay.co.kr/llms/pg/server/confirm.md): 분리승인 모드에서 결제 최종 승인 - [결제 취소](https://developers.bootpay.co.kr/llms/pg/server/cancel.md): 결제 취소/환불 - [영수증 조회](https://developers.bootpay.co.kr/llms/pg/server/receipt.md): 결제 내역 조회 ## 자동결제 (빌링) - [빌링 흐름](https://developers.bootpay.co.kr/llms/pg/billing/flow.md): 자동결제 개념과 흐름 - [빌링키 발급](https://developers.bootpay.co.kr/llms/pg/billing/card-key.md): 카드 빌링키 발급 - [빌링 결제](https://developers.bootpay.co.kr/llms/pg/billing/request.md): 빌링 결제 요청 - [빌링 조회](https://developers.bootpay.co.kr/llms/pg/billing/lookup.md): 빌링 정보 조회 - [빌링 해지](https://developers.bootpay.co.kr/llms/pg/billing/destroy.md): 빌링키 해지 - [예약 결제](https://developers.bootpay.co.kr/llms/pg/billing/reserve.md): 예약 결제 등록 ## 웹훅 - [웹훅 설정](https://developers.bootpay.co.kr/llms/pg/webhook/server.md): 서버 웹훅 URL 설정 --- ## 도움말 - 개발자센터: https://developers.bootpay.co.kr - 관리자: https://admin.bootpay.co.kr - 기술문의: https://bootpay.channel.io/home