Tích hợp thanh toán crypto vào backend, từng bước
Tích hợp thanh toán crypto vào backend từng bước: tạo thanh toán từ máy chủ, chuyển hướng khách hàng, kiểm tra webhook và đối soát đơn hàng.
Tích hợp thanh toán crypto vào backend cần ba phần: một lệnh gọi từ máy chủ để tạo thanh toán, một chuyển hướng cho khách hàng và một webhook để đóng đơn hàng. Hướng dẫn này đi qua từng bước với API v1 của Qvard.
Bước 1: lưu đơn hàng trước
Lưu đơn hàng vào cơ sở dữ liệu với trạng thái như pending trước khi gọi API. Dùng mã đơn hàng làm trường id để thanh toán và đơn hàng được liên kết ngay từ đầu.
Bước 2: tạo thanh toán
Từ backend, gửi POST tới /api/v1/payment với header x-api-key, mã đơn hàng trong id và tổng tiền trong price. Giữ khóa API trong cấu hình máy chủ, không bao giờ đặt trong mã front-end.
Bước 3: chuyển hướng khách hàng
Lưu redirectUrl nhận được cùng đơn hàng và gửi khách hàng tới đó. Trên trang hosted, khách hàng chọn tài sản và mạng rồi thanh toán đúng số tiền.
x-api-key: sk_live_…
{
"id": "order_1024",
"price": 12499.00,
"currency": "INR",
"paymentSystemId": 12
}
// 201 Created
{
"data": {
"id": "8f3k2a1c",
"redirectUrl": "https://my.qvard.com/pay/8f3k2a1c"
},
"code": 201,
"message": "success",
"status": true
}Bước 4: đóng đơn hàng từ webhook
Endpoint webhook của bạn kiểm tra x-api-key, tìm đơn hàng theo id và đặt trạng thái đã thanh toán khi status là paid. Đây là nơi duy nhất thanh toán được xác nhận.
Bước 5: đối soát và giám sát
Chạy kiểm tra hằng ngày với các đơn hàng chờ quá lâu và so sánh với bản ghi thanh toán của bạn. Ghi lại mọi phản hồi API và mọi webhook để hỗ trợ.
x-api-key: sk_live_…
{ "id": "order_1024", "status": "paid" }Gợi ý kiến trúc
Giữ mã thanh toán trong một dịch vụ nhỏ, tách khỏi các màn hình checkout. Như vậy bạn có thể đổi bộ xử lý webhook hoặc thêm kênh thứ hai mà không ảnh hưởng phần còn lại của cửa hàng.
FAQ
Tôi có thể dùng ngôn ngữ backend nào?
Bất kỳ ngôn ngữ nào gửi được HTTPS POST với nội dung JSON và nhận được webhook. API là HTTP thuần nên không bắt buộc SDK.
Tôi nên đặt URL webhook ở đâu?
Dùng một endpoint HTTPS công khai trên backend. Endpoint phải nhận POST và kiểm tra header x-api-key trước khi cập nhật đơn hàng.
Tôi có cần tích hợp riêng cho từng loại tiền điện tử không?
Không. Khách hàng chọn tài sản và mạng trên trang checkout hosted, nên backend của bạn tạo một thanh toán bằng USD và đọc một trạng thái.
Tôi có thể thử toàn bộ tích hợp trước không?
Có. Dùng luồng hóa đơn demo để thanh toán một hóa đơn thử và xác nhận bộ xử lý webhook chạy trước khi nhận thanh toán thật.
