1. Stripe Payment Intent Là Gì?
Payment Intent API là một đối tượng đại diện cho ý định thực hiện một giao dịch thanh toán. Nó giúp quản lý toàn bộ quy trình thanh toán từ khi khách hàng bắt đầu thanh toán cho đến khi thanh toán được hoàn thành, cho phép Stripe xử lý các tình huống khác nhau như xác thực thanh toán, xác minh thẻ và xử lý lỗi.
Payment Intent được giới thiệu để tuân thủ yêu cầu của các quy định bảo mật thanh toán mới như PSD2 (Châu Âu), yêu cầu việc xác thực mạnh mẽ khách hàng (SCA – Strong Customer Authentication).
Payment Intent giúp đảm bảo rằng mọi thanh toán được xử lý một cách an toàn, linh hoạt và tuân thủ các quy định pháp luật. đặc biệt là với những tình huống yêu cầu xác thực nhiều bước.
2. Mục đích và chức năng của Payment Intent
- Xử lý toàn bộ quá trình thanh toán: Khi tạo một Payment Intent, Stripe sẽ theo dõi trạng thái của thanh toán cho đến khi hoàn thành, từ khi khách hàng bắt đầu quá trình thanh toán đến khi kết thúc thành công hay gặp lỗi.
- Xác thực thẻ và khách hàng: Stripe sử dụng Payment Intent để quản lý các bước xác thực thanh toán bao gồm cả việc xác minh 3D Secure hoặc các yêu cầu bảo mật bổ sung theo quy định của SCA.
- Tương tác với nhiều phương thức thanh toán: Payment Intent có thể được sử dụng để xử lý nhiều loại phương thức thanh toán khác nhau bao gồm thẻ tín dụng, ví điện tử (Apple Pay, Google Pay) hoặc chuyển khoản ngân hàng.
3. Các bước xử lý của Payment Intent
- Tạo Payment Intent: Khi khách hàng bắt đầu một giao dịch, hệ thống tạo một đối tượng Payment Intent với số tiền và loại tiền tệ. Tại đây, chúng ta có thể xác định phương thức thanh toán dự kiến, chẳng hạn như thẻ tín dụng.
{ "amount": 2000, "currency": "usd", "payment_method_types": ["card"] }
- Xác thực và thu thập thông tin thanh toán: Stripe sẽ yêu cầu khách hàng nhập thông tin thẻ hoặc phương thức thanh toán. Nếu có yêu cầu xác thực, Stripe sẽ tự động điều hướng khách hàng qua quá trình 3D Secure (SCA).
- Xử lý thanh toán: Khi thanh toán đã được xác thực, Stripe xử lý giao dịch. Payment Intent sẽ chuyển qua các trạng thái như
requires_payment_method
,requires_confirmation
,processing
và cuối cùng làsucceeded
khi giao dịch hoàn thành. - Hoàn tất hoặc xử lý lỗi: Nếu thanh toán thành công, Payment Intent chuyển sang trạng thái
succeeded
. Nếu có lỗi (ví dụ: xác thực thất bại hoặc không đủ số dư), Payment Intent sẽ có trạng tháirequires_action
hoặcrequires_payment_method
để yêu cầu nhập lại thông tin thanh toán.
4. Trạng thái của Payment Intent
requires_payment_method
: Cần có thêm thông tin thanh toán.requires_confirmation
: Cần xác nhận thanh toán từ phía doanh nghiệp trước khi Stripe thực hiện thanh toán.processing
: Thanh toán đang được xử lý.requires_action
: Cần có thêm hành động từ phía khách hàng, thường là yêu cầu xác thực.succeeded
: Thanh toán đã được hoàn tất thành công.canceled
: Payment Intent đã bị hủy.
5. Lợi ích của Payment Intent
- Tuân thủ quy định SCA: Payment Intent đảm bảo quy trình thanh toán tuân thủ các quy định như PSD2 và SCA bằng cách xử lý mọi yêu cầu xác thực khách hàng mạnh.
- Giảm thiểu lỗi thanh toán: Payment Intent theo dõi toàn bộ quy trình và giúp xử lý các vấn đề phát sinh, từ xác minh thanh toán đến giải quyết lỗi.
- Dễ dàng xử lý nhiều phương thức thanh toán: Với Payment Intent, các phương thức thanh toán đa dạng có thể được quản lý một cách nhất quán.