Tổng Quan
Thanh toán inline cho phép bạn tạo ra những trải nghiệm thanh toán hoàn toàn tích hợp, hòa quyện một cách liền mạch với trang web hoặc ứng dụng của bạn. Khác với thanh toán overlay, mở dưới dạng modal trên trang của bạn, thanh toán inline nhúng biểu mẫu thanh toán trực tiếp vào bố cục trang của bạn. Sử dụng thanh toán inline, bạn có thể:- Tạo ra những trải nghiệm thanh toán hoàn toàn tích hợp với ứng dụng hoặc trang web của bạn
- Để Dodo Payments an toàn thu thập thông tin khách hàng và thông tin thanh toán trong một khung thanh toán tối ưu
- Hiển thị các mặt hàng, tổng số và thông tin khác từ Dodo Payments trên trang của bạn
- Sử dụng các phương thức và sự kiện SDK để xây dựng những trải nghiệm thanh toán nâng cao

Cách Hoạt Động
Thanh toán inline hoạt động bằng cách nhúng một khung Dodo Payments an toàn vào trang web hoặc ứng dụng của bạn. Khung thanh toán xử lý việc thu thập thông tin khách hàng và ghi lại chi tiết thanh toán. Trang của bạn hiển thị danh sách mặt hàng, tổng số và tùy chọn để thay đổi những gì có trên thanh toán. SDK cho phép trang của bạn và khung thanh toán tương tác với nhau. Dodo Payments tự động tạo một đăng ký khi một thanh toán hoàn tất, sẵn sàng để bạn cung cấp.Điều Gì Tạo Nên Một Thanh Toán Inline Tốt?
Điều quan trọng là khách hàng biết họ đang mua từ ai, họ đang mua gì và họ phải trả bao nhiêu. Để xây dựng một thanh toán inline tuân thủ và tối ưu hóa cho chuyển đổi, việc triển khai của bạn phải bao gồm:
Example inline checkout layout showing required elements
- Thông tin định kỳ: Nếu là định kỳ, tần suất và tổng số phải trả khi gia hạn. Nếu là dùng thử, thời gian dùng thử kéo dài bao lâu.
- Mô tả mặt hàng: Một mô tả về những gì đang được mua.
- Tổng giao dịch: Tổng giao dịch, bao gồm tổng phụ, thuế tổng và tổng cộng. Đảm bảo bao gồm cả loại tiền tệ.
- Chân trang Dodo Payments: Toàn bộ khung thanh toán inline, bao gồm chân trang thanh toán có thông tin về Dodo Payments, điều khoản bán hàng của chúng tôi và chính sách bảo mật của chúng tôi.
- Chính sách hoàn tiền: Một liên kết đến chính sách hoàn tiền của bạn, nếu nó khác với chính sách hoàn tiền tiêu chuẩn của Dodo Payments.
Hành Trình Khách Hàng
Luồng thanh toán được xác định bởi cấu hình phiên thanh toán của bạn. Tùy thuộc vào cách bạn cấu hình phiên thanh toán, khách hàng sẽ trải nghiệm một thanh toán có thể trình bày tất cả thông tin trên một trang duy nhất hoặc qua nhiều bước.Customer opens checkout

Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates subscription

Bắt đầu nhanh
Bắt đầu với Dodo Payments Inline Checkout chỉ với vài dòng mã:Hướng dẫn tích hợp từng bước
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline'. Bạn cũng nên lắng nghe sự kiện checkout.breakdown để cập nhật giao diện người dùng với các tính toán thuế và tổng tiền theo thời gian thực.Create a Container Element
Open the Checkout
DodoPayments.Checkout.open() với checkoutUrl và elementId của phần tử chứa của bạn:Test Your Integration
- Khởi động máy chủ phát triển của bạn:
- Kiểm tra quy trình thanh toán:
- Nhập email và địa chỉ của bạn trong khung inline.
- Xác minh rằng tóm tắt đơn hàng tùy chỉnh của bạn cập nhật theo thời gian thực.
- Kiểm tra quy trình thanh toán bằng cách sử dụng thông tin xác thực thử nghiệm.
- Xác nhận rằng các chuyển hướng hoạt động chính xác.
checkout.breakdown được ghi lại trong bảng điều khiển trình duyệt nếu bạn thêm một console log trong callback onEvent.Go Live
- Thay đổi chế độ thành
'live':
- Cập nhật các URL thanh toán của bạn để sử dụng các phiên thanh toán trực tiếp từ backend của bạn.
- Kiểm tra quy trình hoàn chỉnh trong sản xuất.
Ví dụ hoàn chỉnh về React
Ví dụ này minh họa cách triển khai một tóm tắt đơn hàng tùy chỉnh bên cạnh thanh toán nội tuyến, giữ chúng đồng bộ bằng cách sử dụng sự kiệncheckout.breakdown.
Tài liệu API
Cấu hình
Tùy chọn khởi tạo
Tùy chọn thanh toán
Phương thức
Mở thanh toán
Mở khung thanh toán trong phần tử được chỉ định.Đóng Thanh toán
Xóa khung thanh toán bằng mã và làm sạch các trình lắng nghe sự kiện.Kiểm tra Trạng thái
Trả về liệu khung thanh toán hiện có được tiêm hay không.Sự kiện
SDK cung cấp sự kiện thời gian thực thông qua hàm gọi lạionEvent. Đối với thanh toán nhúng, checkout.breakdown đặc biệt hữu ích để đồng bộ giao diện người dùng của bạn.
Dữ liệu Phân tích Thanh toán
Sự kiệncheckout.breakdown cung cấp dữ liệu sau:
Hiểu về Sự kiện Phân tích
Sự kiệncheckout.breakdown là cách chính để giữ giao diện của ứng dụng bạn đồng bộ với trạng thái thanh toán Dodo Payments.
Khi nó được kích hoạt:
- Khi khởi tạo: Ngay sau khi khung thanh toán được tải và sẵn sàng.
- Khi thay đổi địa chỉ: Bất cứ khi nào khách hàng chọn một quốc gia hoặc nhập mã bưu điện dẫn đến việc tính toán lại thuế.
- Định dạng Tiền tệ: Giá luôn được trả về dưới dạng số nguyên trong đơn vị tiền tệ nhỏ nhất (ví dụ: cent cho USD, yen cho JPY). Để hiển thị, chia cho 100 (hoặc số mũ đúng) hoặc sử dụng một thư viện định dạng như
Intl.NumberFormat. - Xử lý Trạng thái Khởi đầu: Khi thanh toán lần đầu tiên tải,
taxvàdiscountcó thể là0hoặcnullcho đến khi người dùng cung cấp thông tin thanh toán hoặc áp dụng mã. Giao diện người dùng của bạn nên xử lý các trạng thái này một cách trơn tru (ví dụ: hiển thị một dấu gạch—hoặc ẩn hàng). - “Tổng cuối” so với “Tổng”: Mặc dù
totalcung cấp cho bạn tính toán giá chuẩn,finalTotallà nguồn chân thực cho giao dịch. NếufinalTotalcó mặt, nó phản ánh chính xác những gì sẽ được tính trên thẻ của khách hàng, bao gồm bất kỳ điều chỉnh động nào. - Phản hồi Thời gian thực: Sử dụng trường
taxđể hiển thị cho người dùng rằng thuế đang được tính toán thời gian thực. Điều này tạo ra một cảm giác “sống” cho trang thanh toán của bạn và giảm rào cản trong bước nhập địa chỉ.
Tùy chọn Thực hiện
Cài đặt Trình quản lý Gói
Cài đặt qua npm, yarn, hoặc pnpm như trình bày trong Hướng dẫn Tích hợp Từng bước.Thực hiện CDN
Để tích hợp nhanh mà không cần bước xây dựng, bạn có thể sử dụng CDN của chúng tôi:Cập nhật Phương thức Thanh toán
Thanh toán nhúng hỗ trợ cập nhật phương thức thanh toán cho đăng ký. Khi một khách hàng cần cập nhật phương thức thanh toán — cho đăng ký đang hoạt động hoặc để kích hoạt lại một đăng ký đang tạm dừng — bạn có thể hiển thị luồng cập nhật trực tiếp trong bố cục trang của bạn.Cách Hoạt động
- Gọi API Cập nhật Phương thức Thanh toán để lấy
payment_link:
- Chuyển
payment_linkđược trả về làmcheckoutUrlđể mở thanh toán nhúng:
Đối với Đăng ký Tạm dừng
Khi cập nhật phương thức thanh toán cho một đăng ký trong trạng tháion_hold, Dodo Payments tự động tạo một khoản thu cho bất kỳ khoản nợ còn lại. Theo dõi payment.succeeded và subscription.active webhook để xác nhận kích hoạt lại.
Xử lý Lỗi
SDK cung cấp thông tin chi tiết về lỗi qua hệ thống sự kiện. Luôn thực hiện xử lý lỗi đúng cách trong hàm gọi lạionEvent của bạn:
Làm thế nào để Tốt nhất
- Thiết kế Đáp ứng: Đảm bảo phần tử container của bạn có đủ chiều rộng và chiều cao. Iframe sẽ thường mở rộng để điền vào container của nó.
- Đồng bộ hóa: Sử dụng sự kiện
checkout.breakdownđể giữ bản tóm tắt đơn hàng tùy chỉnh của bạn hoặc bảng giá đồng bộ với những gì người dùng thấy trong khung thanh toán. - Trạng thái Khung xương: Hiển thị một chỉ báo tải trong container của bạn cho đến khi sự kiện
checkout.openedkích hoạt. - Dọn dẹp: Gọi
DodoPayments.Checkout.close()khi phần tử của bạn hủy để dọn dẹp iframe và các trình lắng nghe sự kiện.
#0d0d0d làm màu nền để tích hợp thị giác tối ưu với khung thanh toán nhúng.Xác thực Trạng thái Thanh toán
Tại sao Xác thực Phía Máy chủ là Cần thiết
Mặc dù các sự kiện thanh toán nhúng cung cấp phản hồi thời gian thực, chúng không nên là nguồn chân thực duy nhất của bạn cho trạng thái thanh toán. Các sự cố mạng, trình duyệt sập, hoặc người dùng đóng trang có thể khiến các sự kiện bị bỏ qua. Để đảm bảo xác thực thanh toán đáng tin cậy:- Máy chủ của bạn nên lắng nghe sự kiện webhook - Dodo Payments gửi webhooks cho các thay đổi trạng thái thanh toán
- Thực hiện một cơ chế polling - Frontend của bạn nên polling máy chủ của bạn để cập nhật trạng thái
- Kết hợp cả hai cách - Sử dụng webhooks làm nguồn chính và polling làm sụt dự phòng
Kiến trúc Khuyến cáo
Các Bước Thực hiện
1. Lắng nghe sự kiện thanh toán - Khi người dùng nhấp vào thanh toán, bắt đầu chuẩn bị xác minh trạng thái:payment.succeeded hoặc payment.failed webhooks. Xem tài liệu Webhooks của chúng tôi để biết chi tiết.
Xử lý sự cố
Checkout frame is not appearing
Checkout frame is not appearing
- Xác minh rằng
elementIdkhớp vớiidcủa mộtdivthực sự tồn tại trong DOM. - Đảm bảo
displayType: 'inline'đã được truyền đếnInitialize. - Kiểm tra rằng
checkoutUrllà hợp lệ.
Taxes are not updating in my UI
Taxes are not updating in my UI
- Đảm bảo bạn đang lắng nghe sự kiện
checkout.breakdown. - Thuế chỉ được tính toán sau khi người dùng nhập một quốc gia và mã bưu điện hợp lệ trong khung thanh toán.
Kích hoạt Ví điện tử
Để biết thông tin chi tiết về việc thiết lập Apple Pay, Google Pay và các ví điện tử khác, hãy xem trang Ví điện tử.Thiết lập Nhanh cho 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), sau đó nhấp Tiếp tục.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream hoặc text/plain.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Mở thanh toán trên thiết bị Apple
- Xác minh nút Apple Pay xuất hiện
- Hoàn thành giao dịch kiểm tra
Hỗ trợ Trình duyệt
SDK Dodo Payments Checkout hỗ trợ các trình duyệt sau:- Chrome (mới nhất)
- Firefox (mới nhất)
- Safari (mới nhất)
- Edge (mới nhất)
- IE11+