Tích hợp xác nhận thanh toán
Thực hành lập trình xử lý sự kiện webhook để xác nhận thanh toán
Giới thiệu
Hiện tại Casso đã hỗ trợ nhiều hình thức tích hợp xác nhận thanh toán thông qua các API Casso đã public. Để phần tích hợp thanh toán của bạn xịn hơn thì có thể dùng VietQR để tạo QR-Code cho phần thanh toán. VietQR là tiêu chuẩn quốc gia về mã QR ngân hàng. Mã này được chấp nhận bởi 50 ngân hàng Việt Nam. Có thể xem chi tiết tại đây
Trước khi bắt đầu
Hướng dẫn tích hợp
Để có thể sử dụng và hiểu được các API này thì dưới đây Casso demo một server basic được viết bằng NodeJS + Express basic về tích hợp thanh toán. Chi tiết source tại Github.
Dưới đây là demo các bước về việc tạo webhook để lắng nghe có các giao dịch mới của Casso gửi qua và yêu cầu đồng bộ giao dịch tức thì từ phía app. Quá trình code có thể chỉ mất vài giờ nếu bạn đã quen với việc viết API. Bạn có thể làm theo kịch bản sau:
Cấu trúc file sever

Bước 1: Tạo file index.js
Đầu tiên chúng ta sẽ tạo file index.js để xây dựng server lắng nghe các request. Server mình sẽ thiết lập với cổng 4300
Bước 2: Tạo file app.js, config và xử lý lỗi
Các thứ cần thiết cho server như: cors, json, urlencodedvà Express error handling
Bước 3: Tạo các routes và test hello world
Ở đây mình sẽ tạo 3 route chính:
/webhook/handler-bank-transferWebhook để nhận thông tin giao dịch từ Casso/register-webhookThực hiện đăng kí webhook và lấy token từ Casso/users-paidThực hiện tính năng đồng bộ giao dịch tức thì qua Casso
Kiểm tra với postman

Bước 4: Xây dựng các hàm hỗ trợ
Để có thể giao tiếp với server Casso sẽ dùng 1 HTTP Client để gọi qua. Ở Demo này sẽ sử dụng Axios và Query-string.
Mẹo: Bạn có thể thay thế giá trị của Authorization với Bearer + access token nhận được từ xác thực Oauth 2.0 của Casso.
Sau khi code HTTP Client thì tiến hành dựng từng hàm tương ứng với từng API.
Get
userInfobao gồm thông tin về business và banks. Mô tả cụ thể về API tại đây
Đồng bộ dữ liệu mới nhất. Mô tả cụ thể về API tại đây
Các hàm thêm, xóa, sửa và xóa
webhookMô tả chi tiết tại đây
Parser
orderIdtừ nội dung giao dịch và tiền tố giao dịch (DH1231=> 1231) và đồng thời cũng kiểm tra có phân biệt chữ hoa với thường trong nội dung giao dịch hay không?
Bước 5: Xây dựng các Route
Mình cần định nghĩa một vài biến cần trong quá trình dựng
Route tạo webhook bằng API_KEY và lấy thông tin user bao gồm Business và banks
2. Route này sẽ thực hiện tính năng đồng bộ giao dịch qua Casso.
Ví dụ: Khi người dùng chuyển khoản cho bạn và họ ấn nút tôi đã thanh toán thì nên xử lí gọi qua Casso để đồng bộ giao dịch vừa được chuyển khoản. Có thể sử dụng cho tính năng Tôi đã thanh toán để xác nhận thanh toán ngay.
3. Tạo một webhook để Casso có thể gửi giao dịch qua khi có giao dịch mới (quan trọng):
Cảm ơn đã theo dõi
Last updated
Was this helpful?