Skip to content

Luồng thanh toán ​

Bahn SDK xác nhận thanh toán theo một trong hai cách: xác nhận trực tiếp, khi trình duyệt xác nhận một intent mà backend của bạn đã tạo sẵn, và dựa trên token, khi trình duyệt token hóa thẻ còn backend của bạn thực hiện xác nhận. Việc lưu thẻ dùng một luồng thứ ba là luồng setup intent.

Bạn muốn…LuồngTrình duyệt gọiVí dụ
Thu một số tiền đã biết trướcXác nhận thanh toánconfirmPayment()HTML · React
Chốt số tiền trên server sau khi biết thẻLuồng dựa trên tokencreateConfirmationToken(), rồi handleNextAction()Trình duyệt + server
Lưu thẻ mà không trừ tiềnLưu thẻconfirmCardSetup()Trình duyệt + server

Mỗi luồng đều có thể kích hoạt thử thách 3D Secure — xem Xác thực 3DS.

Apple Pay và Google Pay hỗ trợ cả hai luồng thanh toán: truyền clientSecret vào bahn.mountApplePay()/bahn.mountGooglePay() để xác nhận trực tiếp, hoặc bỏ qua nó để dùng luồng dựa trên token.

So sánh ​

Xác nhận thanh toánLuồng dựa trên token
Ai tạo payment intentBackend của bạn, trước khi thanh toánBackend của bạn, sau khi nhận token
Ai xác nhậnTrình duyệt (confirmPayment())Backend của bạn
Có thể đổi số tiền sau khi nhập thẻKhôngCó
Xử lý 3DSmount3DS() + pollPaymentIntentStatus()handleNextAction() xử lý cả hai

Kiểu đầy đủ của tham số và kết quả cho mọi luồng có tại Định nghĩa kiểu.

Developers