Ví dụ thanh toán crypto bằng JavaScript: luồng chạy được hôm nay
Ví dụ thanh toán crypto bằng JavaScript: luồng chạy được với API v1 thực tế, lệnh gọi máy chủ và webhook, cùng lệnh gọi SDK đánh dấu roadmap.
Ví dụ thanh toán crypto bằng JavaScript này cho thấy một luồng chạy được hôm nay: máy chủ tạo thanh toán bằng API v1 thực tế, trình duyệt được chuyển tới trang hosted và webhook xác nhận đơn hàng. Lệnh gọi Low-Code SDK ở cuối chỉ là bản xem trước của lộ trình.
Luồng bốn bước
Khách hàng nhấn thanh toán, máy chủ tạo thanh toán, trình duyệt đi tới redirectUrl và webhook xác nhận trạng thái cuối. Mỗi bước là một lệnh HTTP thông thường hoặc một chuyển hướng, nên ví dụ không cần thư viện đặc biệt.
Lệnh gọi máy chủ bằng JavaScript
Một bộ xử lý Node.js gửi POST /api/v1/payment với header x-api-key, mã đơn hàng và giá tính bằng USD, rồi trả về redirectUrl cho trình duyệt. Khóa không bao giờ rời máy chủ.
x-api-key: sk_live_…
{
"id": "order_1024",
"price": 149.99,
"paymentSystemId": 12
}
// 201 Created
{
"data": {
"id": "8f3k2a1c",
"redirectUrl": "https://my.qvard.com/pay/8f3k2a1c"
},
"code": 201,
"message": "success",
"status": true
}Phía trình duyệt
Trang chỉ cần một nút gọi bộ xử lý của bạn rồi đi theo redirectUrl được trả về. Trong trình duyệt không có khóa cũng không có logic số tiền.
Bộ xử lý webhook
Endpoint webhook đọc id và status, kiểm tra header x-api-key và đánh dấu đơn hàng đã thanh toán khi status là paid. Hãy làm cho bộ xử lý an toàn khi lặp lại, vì cùng một thông điệp có thể đến hai lần.
x-api-key: sk_live_…
{ "id": "order_1024", "status": "paid" }Lệnh gọi SDK đã lên kế hoạch
Low-Code SDK trong lộ trình được dự kiến sẽ mở cùng luồng từ trang bằng một lệnh gọi. Đây là bản xem trước của API chưa phát hành, chỉ để định hướng, và không được dùng trên môi trường thật.
Kiểm thử trước khi chạy thật
Tạo hóa đơn demo, thanh toán trên trang hosted và xác nhận webhook nhận được trạng thái cuối và đánh dấu đơn hàng.
// ROADMAP preview: the SDK is not released yet.
QvardCheckout.open({ amount: 149.99, currency: "USD", orderId: "order_1024" });FAQ
Ví dụ này có dùng SDK không?
Không. Luồng chạy được dùng lệnh HTTP thông thường và chuyển hướng. Lệnh gọi SDK chỉ là bản xem trước của lộ trình.
Tôi có thể dùng QvardCheckout.open() trên môi trường thật không?
Không. SDK chưa được phát hành. Hãy dùng API, redirectUrl và webhook.
Khóa API nên đặt ở đâu?
Chỉ trên máy chủ. Trình duyệt chỉ nhận redirectUrl.
Làm sao biết thanh toán đã hoàn tất?
Chỉ khi webhook gửi id và trạng thái paid.

