Sử dụng Webhook để push tin nhắn về server theo thời gian thực

Khi có 1 tin nhắn gửi đến điện thoại, SMS Gateway gửi POST tất cả dữ liệu của tin nhắn đó đến một liên kết mà bạn chỉ định.

Cài đặt Webhook

Sau khi đăng nhập smsgateway.socjsc.com, vào menu API, khai báo Link của Webhook và bấm Save để lưu lại:


Xem dữ liệu truyền đến Webhook

Dưới đây là nội dung của file read-sms.php:

Đoạn code đầu tiên kiểm tra nếu có $_POST['messages'] mà SMS Gateway gửi qua thì sẽ lưu tạm vào file messages.txt.

Đoạn code thứ hai thì đọc lại dữ liệu từ file messages.txt và in mảng kết quả ra màn hình. Mảng kết quả sẽ như sau:

Lưu ý thêm:

  • number: Trả về số hoặc tên người gửi. Giả sự bạn nhận được thông báo biến động số dư của ngân hàng ACB thì number sẽ hiện là "ACB".
  • message: Nội dung tin nhắn. Thường nếu là thông báo biến động số dư của ngân hàng sẽ có các thông tin quan trọng gồm: Số tài khoản (hoặc một phần số tài khoản), thời gian, số tiền giao dịch, số dư hiện tại và nội dung của giao dịch. Nếu như bạn đang triển khai chức năng nạp tiền tự động từ tin nhắn báo số dư của ngân hàng thì cần hiểu được cấu trúc tin nhắn của từng ngân hàng đó và lấy ra dữ liệu phù hợp.
  • deviceID: Là con số hiển thị trong dấu ngoặc vuông [] trong danh sách các thiết bị đã kết nối ở SMS Gateway. Bạn có thể sử dụng deviceID để định danh cụ thể ID nào là của website nào nếu như bạn kết nối SMS Gateway vào nhiều website.
  • simSlot: Nếu máy có nhiều hơn 1 sim sẽ cho bạn biết được tin nhắn đó gửi vào sim nào. Bạn cũng có thể sử dụng simSlot kết hợp với deviceID để định danh cụ thể simSlot + deviceID bao nhiêu là của website nào. Nhưng dĩ nhiên khi đã định danh rồi thì bạn sẽ giữ nguyên các sim ở đúng khe sim đã lắp.
  • ID: ID của tin nhắn. Nếu như bạn có cài đặt chế độ lưu lại tin nhắn vào database thì có thể sử dụng luôn ID này để lưu (và không lưu trùng khi ID đó đã tồn tại rồi).
24-08-2021