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.Khung thanh toán inline xử lý an toàn tất cả thông tin thanh toán nhạy cảm, đảm bảo tuân thủ PCI mà không cần chứng nhận bổ sung từ phía bạn.
Đ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:
Ví dụ về bố cục thanh toán inline hiển thị các yếu tố cần thiết
- 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.1
Khách hàng mở thanh toán
Bạn có thể mở thanh toán inline bằng cách truyền các mặt hàng hoặc một giao dịch hiện có. Sử dụng SDK để hiển thị và cập nhật thông tin trên trang, và các phương thức SDK để cập nhật các mặt hàng dựa trên tương tác của khách hàng.

2
Khách hàng nhập thông tin của họ
Thanh toán inline trước tiên yêu cầu khách hàng nhập địa chỉ email của họ, chọn quốc gia của họ và (nếu cần) nhập mã ZIP hoặc mã bưu chính của họ. Bước này thu thập tất cả thông tin cần thiết để xác định thuế và các tùy chọn thanh toán có sẵn.Bạn có thể tự động điền thông tin khách hàng và trình bày các địa chỉ đã lưu để đơn giản hóa trải nghiệm.
3
Khách hàng chọn phương thức thanh toán
Sau khi nhập thông tin của họ, khách hàng sẽ được trình bày các phương thức thanh toán có sẵn và biểu mẫu thanh toán. Các tùy chọn có thể bao gồm thẻ tín dụng hoặc thẻ ghi nợ, PayPal, Apple Pay, Google Pay và các phương thức thanh toán địa phương khác dựa trên vị trí của họ.Hiển thị các phương thức thanh toán đã lưu nếu có để tăng tốc độ thanh toán.

4
Thanh toán hoàn tất
Dodo Payments định tuyến mọi thanh toán đến nhà cung cấp tốt nhất cho giao dịch đó để có cơ hội thành công tốt nhất. Khách hàng sẽ vào một quy trình thành công mà bạn có thể xây dựng.

5
Dodo Payments tạo đăng ký
Dodo Payments tự động tạo một đăng ký cho khách hàng, sẵn sàng để bạn cung cấp. Phương thức thanh toán mà khách hàng đã sử dụng sẽ được lưu giữ để gia hạn hoặc thay đổi đăng ký.

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
1
Cài đặt SDK
Cài đặt Dodo Payments Checkout SDK:
2
Khởi tạo SDK cho Hiển thị Inline
Khởi tạo SDK và chỉ định
displayType: 'inline'. Bạn cũng nên lắng nghe sự kiện checkout.breakdown để cập nhật UI của bạn với các tính toán thuế và tổng thời gian thực.3
Tạo một phần tử chứa
Thêm một phần tử vào HTML của bạn nơi khung thanh toán sẽ được chèn vào:
4
Mở thanh toán
Gọi
DodoPayments.Checkout.open() với checkoutUrl và elementId của phần tử chứa của bạn:5
Kiểm tra tích hợp của bạn
- 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.
Bạn nên thấy các sự kiện
checkout.breakdown được ghi lại trong bảng điều khiển trình duyệt của bạn nếu bạn đã thêm một bản ghi console trong callback onEvent.6
Đi vào sản xuất
Khi bạn đã sẵn sàng cho sản xuất:
- 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 thực hiện một tóm tắt đơn hàng tùy chỉnh cùng với thanh toán inline, giữ cho 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 | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
mode | "test" | "live" | Có | Chế độ môi trường. |
displayType | "inline" | "overlay" | Có | Phải được đặt thành "inline" để nhúng thanh toán. |
onEvent | function | Có | Hàm callback để xử lý các sự kiện thanh toán. |
Tùy chọn thanh toán
| Tùy chọn | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
checkoutUrl | string | Có | URL phiên thanh toán. |
elementId | string | Có | id của phần tử DOM nơi thanh toán nên được hiển thị. |
Phương thức
Mở thanh toán
Mở khung thanh toán trong phần tử được chỉ định.Đóng thanh toán
Loại bỏ khung thanh toán theo cách lập trình và dọn dẹp 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 đang được chèn hay không.Sự kiện
SDK cung cấp các sự kiện thời gian thực thông qua hàm callbackonEvent. Đối với thanh toán inline, checkout.breakdown đặc biệt hữu ích để đồng bộ hóa UI của bạn.
| Loại sự kiện | Mô tả |
|---|---|
checkout.opened | Khung thanh toán đã được tải. |
checkout.breakdown | Bị kích hoạt khi giá, thuế hoặc giảm giá được cập nhật. |
checkout.customer_details_submitted | Chi tiết khách hàng đã được gửi. |
checkout.redirect | Thanh toán sẽ thực hiện một chuyển hướng (ví dụ: đến trang ngân hàng). |
checkout.error | Đã xảy ra lỗi trong quá trình thanh toán. |
Dữ liệu phân tích thanh toán
Sự kiệncheckout.breakdown cung cấp các dữ liệu sau:
Hiểu sự kiện phân tích
Sự kiệncheckout.breakdown là cách chính để giữ cho UI 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 chính dẫn đến việc tính toán thuế lại.
| Trường | Mô tả |
|---|---|
subTotal | Tổng số của tất cả các mặt hàng trong phiên trước khi bất kỳ giảm giá hoặc thuế nào được áp dụng. |
discount | Tổng giá trị của tất cả các giảm giá đã áp dụng. |
tax | Số thuế đã tính. Trong chế độ inline, điều này cập nhật động khi người dùng tương tác với các trường địa chỉ. |
total | Kết quả toán học của subTotal - discount + tax trong đơn vị tiền tệ cơ bản của phiên. |
currency | Mã tiền tệ ISO (ví dụ: "USD") cho các giá trị tổng phụ, giảm giá và thuế tiêu chuẩn. |
finalTotal | Số tiền thực tế mà khách hàng phải trả. Điều này có thể bao gồm các điều chỉnh tỷ giá hối đoái bổ sung hoặc phí phương thức thanh toán địa phương không nằm trong phân tích giá cơ bản. |
finalTotalCurrency | Tiền tệ mà khách hàng thực sự đang thanh toán. Điều này có thể khác với currency nếu sức mua tương đương hoặc chuyển đổi tiền tệ địa phương đang hoạt động. |
- Đị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ụ: xu cho USD, yên cho JPY). Để hiển thị chúng, chia cho 100 (hoặc lũy thừa thích hợp của 10) hoặc sử dụng thư viện định dạng như
Intl.NumberFormat. - Xử lý trạng thái ban đầu: Khi thanh toán lần đầu được tải,
taxvàdiscountcó thể là0hoặcnullcho đến khi người dùng cung cấp thông tin thanh toán của họ hoặc áp dụng mã. UI của bạn nên xử lý các trạng thái này một cách hợp lý (ví dụ: hiển thị một dấu gạch ngang—hoặc ẩn hàng). - “Tổng cuối cùng” so với “Tổng”: Trong khi
totalcung cấp cho bạn tính toán giá tiêu chuẩn,finalTotallà nguồn thông tin chính xác cho giao dịch. NếufinalTotalcó mặt, nó phản ánh chính xác những gì sẽ được tính phí vào 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để cho người dùng thấy rằng thuế đang được tính toán theo thời gian thực. Điều này cung cấp cảm giác “trực tiếp” cho trang thanh toán của bạn và giảm ma sát trong bước nhập địa chỉ.
Tùy chọn triển khai
Cài đặt qua Trình quản lý gói
Cài đặt qua npm, yarn hoặc pnpm như được hiển thị trong Hướng dẫn tích hợp từng bước.Triển khai 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:Hỗ trợ TypeScript
SDK được viết bằng TypeScript và bao gồm các định nghĩa kiểu toàn diện.Xử lý lỗi
SDK cung cấp thông tin lỗi chi tiết thông qua hệ thống sự kiện. Luôn thực hiện xử lý lỗi đúng cách trong callbackonEvent của bạn:
Các thực tiễn tốt nhất
- Thiết kế đáp ứng: Đảm bảo phần tử chứa của bạn có đủ chiều rộng và chiều cao. Khung iframe sẽ thường mở rộng để lấp đầy phần tử chứa của nó.
- Đồng bộ hóa: Sử dụng sự kiện
checkout.breakdownđể giữ cho tóm tắt đơn hàng tùy chỉnh hoặc bảng giá của bạn đồng bộ với những gì người dùng thấy trong khung thanh toán. - Trạng thái khung: Hiển thị một chỉ báo tải trong phần tử chứa của bạn cho đến khi sự kiện
checkout.openedđược kích hoạt. - Dọn dẹp: Gọi
DodoPayments.Checkout.close()khi thành phần của bạn bị gỡ bỏ để dọn dẹp iframe và các trình lắng nghe sự kiện.
Khắc phục sự cố
Khung thanh toán không xuất hiện
Khung thanh toán không xuất hiện
- Xác minh rằng
elementIdkhớp vớiidcủa mộtdivthực sự tồn tại trong DOM. - Đảm bảo rằng
displayType: 'inline'đã được truyền choInitialize. - Kiểm tra rằng
checkoutUrllà hợp lệ.
Thuế không cập nhật trong UI của tôi
Thuế không cập nhật trong UI của tôi
- Đả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 chính hợp lệ trong khung thanh toán.
Hỗ trợ trình duyệt
Dodo Payments Checkout SDK 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+
Apple Pay hiện không được hỗ trợ trong trải nghiệm thanh toán inline. Chúng tôi dự định thêm hỗ trợ cho Apple Pay trong một bản phát hành trong tương lai.
Thanh toán Inline so với Thanh toán Overlay
Chọn loại thanh toán phù hợp cho trường hợp sử dụng của bạn:| Tính năng | Thanh toán Inline | Thanh toán Overlay |
|---|---|---|
| Độ sâu tích hợp | Hoàn toàn nhúng trong trang | Modal trên trang |
| Kiểm soát bố cục | Kiểm soát đầy đủ | Hạn chế |
| Thương hiệu | Liền mạch | Tách biệt khỏi trang |
| Nỗ lực triển khai | Cao hơn | Thấp hơn |
| Tốt nhất cho | Các trang thanh toán tùy chỉnh, quy trình chuyển đổi cao | Tích hợp nhanh, các trang hiện có |
Tài nguyên liên quan
Thanh toán Overlay
Sử dụng thanh toán overlay cho tích hợp modal nhanh chóng.
API Phiên thanh toán
Tạo các phiên thanh toán để cung cấp trải nghiệm thanh toán của bạn.
Webhook
Xử lý các sự kiện thanh toán phía máy chủ với webhook.
Hướng dẫn tích hợp
Hướng dẫn hoàn chỉnh để tích hợp Dodo Payments.