Sandbox cổng thanh toán giả lập
Tìm hiểu cách API thanh toán phản hồi: mô phỏng chấp thuận, từ chối và 3-D Secure với thẻ thử nghiệm đã công bố — hoàn toàn ngoại tuyến.
🔒 Trình mô phỏng mang tính giáo dục: không liên hệ với bất kỳ ngân hàng, mạng lưới thẻ hay nhà cung cấp thanh toán nào. Chỉ chấp nhận số thẻ thử nghiệm đã công bố.
Số thẻ thử nghiệm đã công bố
| Số thẻ | Mạng lưới | Kết quả mô phỏng | |
|---|---|---|---|
| 4242 4242 4242 4242 | Visa | Thanh toán thành công | |
| 4000 0000 0000 0002 | Visa | Từ chối: generic_decline | |
| 4000 0000 0000 9995 | Visa | Từ chối: insufficient_funds | |
| 4000 0000 0000 0069 | Visa | Từ chối: expired_card | |
| 4000 0000 0000 0127 | Visa | Từ chối: incorrect_cvc | |
| 4000 0000 0000 0119 | Visa | Lỗi: processing_error | |
| 4000 0025 0000 3155 | Visa | Yêu cầu xác thực 3-D Secure | |
| 5555 5555 5555 4444 | Mastercard | Thanh toán thành công | |
| 3782 822463 10005 | American Express | Thanh toán thành công |
Luồng thanh toán hoạt động như thế nào
Máy chủ của bạn tạo và xác nhận một payment intent, cổng thanh toán trả về trạng thái, và sau đó webhook thông báo kết quả cuối cùng cho backend. Hãy xử lý đơn hàng dựa trên webhook, không dựa trên chuyển hướng của trình duyệt.
{
"method": "POST",
"path": "/v1/payment_intents",
"body": {
"amount": 2000,
"currency": "usd",
"confirm": true,
"payment_method_data": {
"type": "card",
"card": {
"number": "4242424242424242",
"exp_month": 12,
"exp_year": 2030,
"cvc": "123"
}
}
}
}{
"id": "pi_test_3kq9x2m7v1c8b5n4z6a0d2f1",
"object": "payment_intent",
"livemode": false,
"amount": 2000,
"currency": "usd",
"status": "succeeded",
"payment_method": {
"type": "card",
"card": {
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2030
}
},
"latest_charge": {
"id": "ch_test_8h2j4k6l1m3n5p7q9r0s2t4u",
"authorization_code": "T4K2Q9",
"outcome": {
"network_status": "approved_by_network",
"type": "authorized"
}
}
}{
"id": "evt_test_1a2b3c4d5e6f7g8h9i0j1k2l",
"object": "event",
"type": "payment_intent.succeeded",
"livemode": false,
"data": {
"object": {
"id": "pi_test_3kq9x2m7v1c8b5n4z6a0d2f1",
"status": "succeeded",
"amount": 2000,
"currency": "usd"
}
}
}{
"id": "evt_test_9z8y7x6w5v4u3t2s1r0q9p8o",
"object": "event",
"type": "payment_intent.payment_failed",
"livemode": false,
"data": {
"object": {
"id": "pi_test_7f6e5d4c3b2a1z0y9x8w7v6u",
"status": "requires_payment_method",
"last_payment_error": {
"type": "card_error",
"code": "card_declined",
"decline_code": "insufficient_funds",
"message": "Your card has insufficient funds."
}
}
}
}Giới thiệu về Sandbox cổng thanh toán giả lập
Sandbox cổng thanh toán giả lập này giúp nhà phát triển tìm hiểu cách API thanh toán thẻ phản hồi mà không động đến tiền thật. Chọn một số thẻ thử nghiệm đã công bố, nhập bất kỳ ngày hết hạn nào trong tương lai, một mã CVC và số tiền, rồi nhấn Mô phỏng thanh toán. Trang sẽ trả về một đối tượng JSON có cấu trúc như một payment intent điển hình: id, trạng thái, mạng lưới thẻ và bốn chữ số cuối, mã từ chối và thông báo khi thất bại, cùng mã ủy quyền giả khi được chấp thuận. Thẻ 3-D Secure hiển thị một bước xác thực mô phỏng để bạn thực hành xử lý trạng thái requires_action, và mọi kết quả đều kèm sự kiện webhook tương ứng. Trình mô phỏng chạy hoàn toàn trong trình duyệt của bạn: nó không liên hệ với bất kỳ ngân hàng, mạng lưới thẻ hay nhà cung cấp thanh toán nào, và chỉ chấp nhận các số thử nghiệm đã công bố được liệt kê trong bảng. Số thẻ thật bị từ chối ngay trên máy và không bao giờ được gửi đi đâu.
FAQ
Sandbox có trừ tiền thẻ hoặc liên hệ ngân hàng không?
Không. Mọi thứ đều được mô phỏng trong trình duyệt của bạn. Không có yêu cầu nào được gửi đến Visatk, ngân hàng, mạng lưới thẻ hay nhà cung cấp thanh toán, và không có tiền nào được chuyển.
Tại sao số thẻ của tôi bị từ chối?
Sandbox chỉ chấp nhận các số thử nghiệm đã công bố trong bảng. Mọi số khác, kể cả thẻ thật, đều bị từ chối ngay trên máy để không bao giờ được coi là đã chấp thuận.
Tôi có thể dùng các số này với nhà cung cấp thanh toán thật không?
Đây là các số thử nghiệm được công bố rộng rãi, dùng trong chế độ thử nghiệm của nhà cung cấp. Chúng chỉ hoạt động với khóa API thử nghiệm trong sandbox của nhà cung cấp; ở chế độ thật chúng luôn bị từ chối.