개요
인라인 체크아웃을 사용하면 웹사이트나 애플리케이션과 원활하게 통합된 체크아웃 경험을 생성할 수 있습니다. 페이지 위에 모달로 열리는 오버레이 체크아웃과 달리, 인라인 체크아웃은 결제 양식을 페이지 레이아웃에 직접 임베드합니다. 인라인 체크아웃을 사용하면 다음을 수행할 수 있습니다:- 앱이나 웹사이트와 완전히 통합된 체크아웃 경험 생성
- Dodo Payments가 고객 및 결제 정보를 안전하게 캡처하도록 최적화된 체크아웃 프레임 사용
- 페이지에 Dodo Payments의 항목, 총액 및 기타 정보 표시
- SDK 메서드 및 이벤트를 사용하여 고급 체크아웃 경험 구축

작동 방식
인라인 체크아웃은 웹사이트나 앱에 안전한 Dodo Payments 프레임을 임베드하여 작동합니다. 체크아웃 프레임은 고객 정보를 수집하고 결제 세부 정보를 캡처하는 역할을 합니다. 페이지는 항목 목록, 총액 및 체크아웃에서 변경할 수 있는 옵션을 표시합니다. SDK를 사용하면 페이지와 체크아웃 프레임이 상호작용할 수 있습니다. Dodo Payments는 체크아웃이 완료되면 자동으로 구독을 생성하여 프로비저닝할 준비를 합니다.좋은 인라인 체크아웃의 조건
고객이 누구에게서 구매하고 있는지, 무엇을 구매하고 있는지, 얼마를 지불하고 있는지 아는 것이 중요합니다. 준수 및 전환 최적화를 위한 인라인 체크아웃을 구축하려면 구현에 다음이 포함되어야 합니다:
Example inline checkout layout showing required elements
- 정기 정보: 정기적인 경우, 얼마나 자주 반복되는지 및 갱신 시 지불할 총액. 체험판인 경우, 체험판 기간.
- 항목 설명: 구매하는 항목에 대한 설명.
- 거래 총액: 거래 총액, 포함된 소계, 총 세금 및 총합. 통화도 포함해야 합니다.
- Dodo Payments 바닥글: Dodo Payments에 대한 정보, 판매 조건 및 개인정보 보호정책이 포함된 전체 인라인 체크아웃 프레임.
- 환불 정책: Dodo Payments의 표준 환불 정책과 다를 경우 환불 정책에 대한 링크.
고객 여정
체크아웃 흐름은 체크아웃 세션 구성에 따라 결정됩니다. 체크아웃 세션을 구성하는 방식에 따라 고객은 모든 정보를 단일 페이지에서 또는 여러 단계에 걸쳐 제공받는 체크아웃을 경험하게 됩니다.Customer opens checkout

Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates subscription

빠른 시작
몇 줄의 코드로 Dodo Payments 인라인 체크아웃을 시작하세요:단계별 통합 가이드
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline'을 지정하세요. checkout.breakdown 이벤트를 청취하여 실시간 세금 및 총계 계산으로 UI를 업데이트하는 것도 권장합니다.Create a Container Element
Open the Checkout
checkoutUrl와 컨테이너의 elementId를 사용하여 DodoPayments.Checkout.open()을 호출하세요:Test Your Integration
- 개발 서버를 시작하세요:
- 체크아웃 흐름을 테스트하세요:
- 인라인 프레임에 이메일 및 주소 세부 정보를 입력하세요.
- 사용자 정의 주문 요약이 실시간으로 업데이트되는지 확인하세요.
- 테스트 자격 증명을 사용하여 결제 흐름을 테스트하세요.
- 리디렉션이 올바르게 작동하는지 확인하세요.
onEvent 콜백에 콘솔 로그를 추가한 경우, 브라우저 콘솔에 checkout.breakdown 이벤트가 기록되는 것을 확인할 수 있습니다.Go Live
- 모드를
'live'로 변경하세요:
- 체크아웃 URL을 백엔드에서 라이브 체크아웃 세션을 사용하도록 업데이트하세요.
- 프로덕션에서 전체 흐름을 테스트하세요.
완전한 React 예제
이 예시는 인라인 결제와 함께 사용자 정의 주문 요약을 구현하는 방법을 보여주며,checkout.breakdown 이벤트를 사용하여 두 요소를 동기화합니다.
API 참조
구성
초기화 옵션
체크아웃 옵션
메서드
체크아웃 열기
지정된 컨테이너에서 체크아웃 프레임을 엽니다.결제 닫기
프로그래밍 방식으로 결제 프레임을 제거하고 이벤트 리스너를 정리합니다.상태 확인
결제 프레임이 현재 주입되었는지 여부를 반환합니다.이벤트
SDK는onEvent 콜백을 통해 실시간 이벤트를 제공합니다. 인라인 결제의 경우, UI 동기화를 위해 checkout.breakdown가 특히 유용합니다.
결제 분해 데이터
checkout.breakdown 이벤트는 다음 데이터를 제공합니다:
분해 이벤트 이해하기
checkout.breakdown 이벤트는 Dodo Payments 결제 상태와 애플리케이션 UI를 동기화하는 주요 방법입니다.
발생 시점:
- 초기화 시: 결제 프레임이 로드되고 준비된 직후.
- 주소 변경 시: 고객이 나라를 선택하거나 세금 재계산을 초래하는 우편번호를 입력할 때마다.
- 통화 포맷팅: 가격은 항상 가장 작은 통화 단위로 정수 형태로 반환됩니다(예: USD의 센트, JPY의 엔). 표시하려면 100 또는 적절한 10의 제곱으로 나누거나
Intl.NumberFormat와 같은 포맷팅 라이브러리를 사용하세요. - 초기 상태 처리: 결제가 처음 로드되면
tax및discount가0또는null일 수 있습니다. UI는 이러한 상태를 우아하게 처리해야 합니다(예: 대시—표시 또는 행 숨기기). - “최종 합계” 대 “총합”:
total는 표준 가격 계산을 제공하지만finalTotal는 거래의 진실의 근원입니다.finalTotal가 존재하면 모든 동적 조정을 포함하여 고객 카드에 청구될 정확한 금액을 반영합니다. - 실시간 피드백:
tax필드를 사용하여 사용자에게 세금이 실시간으로 계산되고 있음을 보여주세요. 이는 결제 페이지에 “라이브” 느낌을 주고 주소 입력 단계에서 마찰을 줄입니다.
구현 옵션
패키지 관리자 설치
단계별 통합 가이드에서 설명한 대로 npm, yarn 또는 pnpm을 통해 설치합니다.CDN 구현
빌드 단계 없이 빠르게 통합하려면 다음 CDN을 사용할 수 있습니다:결제 수단 업데이트
인라인 결제는 구독에 대한 결제 수단 업데이트를 지원합니다. 고객이 결제 수단을 업데이트해야 할 때 - 활성 구독이든 보류 중인 구독을 재활성화하든 - 페이지 레이아웃 내에서 업데이트 흐름을 렌더링할 수 있습니다.작동 방식
- 결제 수단 업데이트 API를 호출하여
payment_link를 가져옵니다:
- 반환된
payment_link를checkoutUrl로 전달하여 인라인 결제를 엽니다:
보류 중인 구독의 경우
on_hold 상태에 있는 구독의 경우 결제 수단을 업데이트할 때 Dodo Payments는 자동으로 남은 금액에 대한 청구를 생성합니다. payment.succeeded 및 subscription.active 웹훅을 모니터링하여 재활성화를 확인하세요.
오류 처리
SDK는 이벤트 시스템을 통해 자세한 오류 정보를 제공합니다. 항상onEvent 콜백에서 적절한 오류 처리를 구현하세요:
모범 사례
- 반응형 디자인: 컨테이너 요소에 충분한 너비와 높이가 있는지 확인하세요. iframe은 일반적으로 컨테이너를 채우도록 확장됩니다.
- 동기화:
checkout.breakdown이벤트를 사용하여 사용자 정의 주문 요약 또는 가격표를 결제 프레임에서 사용자에게 보이는 내용과 동기화하세요. - 스켈레톤 상태:
checkout.opened이벤트가 발생할 때까지 컨테이너에 로딩 표시기를 보여주세요. - 정리: 구성 요소 마운트 해제 시
DodoPayments.Checkout.close()를 호출하여 iframe 및 이벤트 리스너를 정리하세요.
#0d0d0d를 사용하는 것이 좋습니다.결제 상태 검증
서버 측 검증이 필수적인 이유
인라인 결제 이벤트는 실시간 피드백을 제공하지만, 결제 상태에 대한 유일한 진실의 근원이 되어서는 안됩니다. 네트워크 문제, 브라우저 충돌, 사용자가 페이지를 닫는 경우 이벤트가 누락될 수 있습니다. 신뢰할 수 있는 결제 검증을 보장하기 위해:- 귀하의 서버는 웹훅 이벤트를 수신해야 합니다 - Dodo Payments는 결제 상태 변경에 대한 웹훅을 전송합니다
- 폴링 메커니즘을 구현하세요 - 프론트엔드가 서버에 상태 업데이트를 폴링해야 합니다
- 두 가지 접근을 결합하세요 - 웹훅을 주요 소스로 사용하고 폴링을 보완 수단으로 사용하세요
권장 아키텍처
구현 단계
1. 결제 이벤트 수신 대기 - 사용자가 결제를 클릭하면 상태를 검증할 준비를 시작합니다:payment.succeeded 또는 payment.failed 웹훅을 보낼 때 데이터베이스를 업데이트하세요. 자세한 내용은 웹훅 문서를 참조하세요.
문제 해결
Checkout frame is not appearing
Checkout frame is not appearing
elementId이 실제로 DOM에 존재하는div와 일치하는지 확인하세요.displayType: 'inline'가Initialize에 전달되었는지 확인하세요.checkoutUrl이 유효한지 확인하세요.
Taxes are not updating in my UI
Taxes are not updating in my UI
checkout.breakdown이벤트를 수신하고 있는지 확인하세요.- 사용자가 결제 프레임에 유효한 국가 및 우편번호를 입력한 후에만 세금이 계산됩니다.
디지털 월렛 활성화
Apple Pay, Google Pay 및 기타 디지털 월렛 설정에 대한 자세한 정보는 디지털 월렛 페이지를 참조하세요.Apple Pay 빠른 설정
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com)을 입력한 다음 Continue를 클릭합니다.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream 또는 text/plain와 함께 제공되어야 합니다.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Apple 기기에서 checkout을 엽니다
- Apple Pay 버튼이 표시되는지 확인합니다
- 테스트 트랜잭션을 완료합니다
브라우저 지원
Dodo Payments Checkout SDK는 다음 브라우저를 지원합니다:- Chrome (최신 버전)
- Firefox (최신 버전)
- Safari (최신 버전)
- Edge (최신 버전)
- IE11+