Casso Developer
v1
v1
  • Tổng quan
  • Webhook
    • Thiết lập Webhook thủ công
    • Lập trình xử lý sự kiện Webhook
  • API KEY
    • Tạo API Key thủ công
  • OAuth 2
    • Tích hợp OAuth2
  • Thực hành
    • Tích hợp xác nhận thanh toán
  • Change log
    • Change log
  • Danh sách API
    • API lấy Acess-Token
    • API lấy thông tin user
    • API thiết lập webhook
    • API tải thông tin giao dịch
    • API check giao dịch mới
  • Tài nguyên khác
    • Tài khoản ngân hàng Demo
Powered by GitBook
On this page
  • Xử lý giao dịch được gửi từ Casso
  • Code
  • Test
  • Phát hành

Was this helpful?

  1. Webhook

Lập trình xử lý sự kiện Webhook

Hướng dẫn các bước lập trình một API xử lý sự kiện webhook. Có code mẫu bằng NodeJS

PreviousThiết lập Webhook thủ côngNextTạo API Key thủ công

Last updated 3 years ago

Was this helpful?

Tích hợp phương pháp webhook rất đơn giản, tất cả mọi thứ bạn cần làm là lập trình một API xử lý sự kiện Webhook. Sau khi bạn đã đăng kí URL của API này vào một trong Casso.

Mỗi khi Casso phát hiện tài khoản ngân hàng liên kết có một giao dịch mới, Casso sẽ gọi vào API này

Đặc tả của API này là :

Xử lý giao dịch được gửi từ Casso

POST https://websitecuaban.com/api/webhook-event-handler

Headers

Name
Type
Description

secure-token

string

Key bảo mật để xác thực Webhook được gọi từ Casso

Request Body

Name
Type
Description

error

string

Mã lỗi.

data

string

Mảng danh sách các giao dịch mới.





Code

Bạn có thể sử dụng bất kì ngôn ngữ nào hỗ trợ xây dựng restful API để Code.

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:

  • Tạo dự án Restful API mới (Nodejs Express / Java Spring Boot / PHP single file, ...)

  • Test in ra được helloword!

  • Tạo controller mới xử lý một Post tên là /webhook-event-handler

  • Test : Dùng Curl Post một giao dịch mô phỏng lên /webhook-event-handler và chỉnh code để in ra đúng được nội dung gửi lên (xem thêm phần Test bên dưới)

  • Rút trích nội dung giao dịch

  • Xử lý nội dung giao dịch

  • Phản hồi HTTP status code 200 OK

app.js
const express = require('express')
const app = express()
const port = 8080

app.use(express.json());
app.post('/api/webhook-event-handler', (req, res) => {
    let error = req.body.error;
    if (error != 0) {
        //Không làm gì cả.
        return;
    }
    
    //mảng chứa danh sách các giao dịch
    let transactions = req.body.data;
    
    console.log(`Received ${transactions.length} transactions`);
    
    //thêm code xử lý giao dịch ở đây.
    
    res.end("OK");
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

Test

Có 5 cách để giả lập giao dịch gửi vào API xử lý webhook bạn đang code như sau:

STT

Môi trường

Phương pháp

1

Local

Tự gọi API bằng Curl / Postman

2

Dev | Staging

Nút Gọi Thử Trong giao diện setup Webhook

3

Dev | Staging

Nút đồng bộ giao dịch ngay trong giao diện 1 Tài khoản ngân hàng Demo

4

Live

Tạo một lệnh chuyển tiền.

Tuy nhiên, chúng tôi khuyến cáo bạn hãy viết và test thật kĩ trên Local trước , và test nhanh bằng Postman hoặc Curl.

Copy nội dung bên dưới, sau khi đã fix lại đường dẫn API xử lý webhook

Mở terminal

curl --location --request POST 'http://localhost:8080/api/webhook-event-handler' \
--header 'secure-token: eogrBiWqaq' \
--header 'Content-Type: application/json' \
--data-raw '{
    "error": 0,
    "data": [
        {
            "id" : 1, 
            "when": "2020-11-02",
            "amount": 200500,
            "description": "DH35",
            "cusum_balance": 15900500,
            "tid": "TF80307914",
            "subAccId": "123456789",
            "order": "2020110200001"
        }
    ]
}'

Paste & Enter

Phát hành

  • Release dự án lên internet

  • Cập nhật lại Webhook URL trong cấu hình webhook

  • Link môt tài khoản ngân hàng thật

  • Chuyển tiền vào tài khoản ngân hàng (5,000 , 10,000 thôi)

  • Xác nhận rằng Casso đã gọi qua Webhook và xử lý thành công

Và ... Xin chúc mừng. Bạn đã hoàn tất!!!! Chúng tôi ở đây để làm cho thế giới đơn giản hơn. ^^

Ví dụ bên dưới viết bằng NodeJS, log ra số giao dịch Webhook Api nhận dc. Bằng cách chỉnh sửa vài dòng

Bạn có thể xem thêm cách code một

mục tích hợp webhook
Hello World Sample của Node JS Express
API xử lý sự kiện webhook cho tính năng Tích hợp xác nhận thanh toán