Sử dụng PHP để gửi tin nhắn sms bằng Dcom 3G

Sử dụng PHP để gửi tin nhắn sms bằng Dcom 3G

Lướt qua trên mạng chủ yếu thấy toàn solution gửi SMS bằng Dcom 3G bằng code C# và VB. Vì một số lý do khách quan mình cần sử dụng PHP điều khiển Dcom 3G.

Nghe thật vô lý phải không, trước giờ mọi người đều chỉ sử dụng PHP để lập trình web, chẳng ai dùng để làm việc với thiết bị phần cứng.

Sau một hồi tìm kiếm trên Google theo hướng vô lý ấy, mình phát hiện ra không chỉ riêng mình có suy nghĩ như vậy.

Giải pháp là sư dụng fopen để kêt nối đến cổng COM của thiết bị USB 3G đển gửi lệnh gửi được tin nhắn.

Tất nhiện là USB 3G không có API Soap hay Resful để bạn có thể call API và send SMS như những dịch vụ SMS Brandname nó chỉ làm việc AT Command

Link tham khảo AT Command https://doc.qt.io/archives/qtextended4.4/atcommands.html

Qua trở lại vấn đề nghe kết nối COM nọ COM kia phực tạp vãi, mình kiếm được một thư vện thần thánh của PHP làm việc với serial port của Windows

Link thư viên https://gist.github.com/gravataLonga/6c89821b845d15e939a0

Ok giờ cắm Dcom 3G và vào Device Manager để xem COM của USB 3G là bao nhiêu

Vây là COM của mình là COM3, rồi giờ thì viết code test xem nào

require "php_serial.class.php";
$serial = new phpSerial;
//Thiết lập COM
$serial->deviceSet("COM3");
$serial->confBaudRate(115200);

//Mở kết nối
$serial->deviceOpen();

//Gửi AT Command đến thiết bị
$serial->sendMessage("AT+CMGF=1\n\r"); 
$serial->sendMessage("AT+cmgs=\"84973683037\"\n\r");
$serial->sendMessage("Test tin nhan 19\n\r");
$serial->sendMessage(chr(26));

//Đợi thiết bị gửi
sleep(5);
$read=$serial->readPort();
//Đóng kết nối
$serial->deviceClose();

Đây là kết quả