usb - 是否有任何用于 USB 调制解调器的 USSD 请求的 API
问题描述
我在我的国家开始了一个小型充值业务,出于不同的原因,我不得不使用 USB 调制解调器来发出我的业务所依赖的 USSD 请求
我找到的最好的调制解调器是Huwaui e3531
USB 调制解调器
我正在考虑构建我的网站的方式是创建一个小守护程序,它不断检查网站是否有新订单并使用执行 USSD 请求mmcli
(这是我能找到的最好的实用程序,但我愿意接受建议)
此解决方案的问题是我必须编辑mmcli
源代码以仅输出 USSD 响应(正常响应中有很多额外的单词)而且 mmcli cancel USSD 请求不起作用(不知道为什么)更不用说不同的事情了这可能会出错并停止影响业务的守护进程
我的第二个选择是使用Hilink
固件,它给了我一个 API 来直接从我的网站发出 USSD 请求(正是我正在寻找的),但这也有 2 个小问题,第一个是它没有给我取消 USSD 请求的选项,第二个是发出请求有点慢
所以我正在寻找中间的东西,拥有 API 的能力,这样我就可以从我的网站运行 USSD 命令,它既快速又可靠
我能找到的最好的是这个项目,但我在阅读源代码后发现它正在使用Hilink
固件 API 工作。
解决方案
我们必须在我们公司为此做一个“黑客”解决方案。由于我们没有足够的时间来学习 mmcli 库,我们的解决方案是使用 C++ 中的“popen”来管道 linux 终端命令并对其进行解析以生成并充分响应我们传递的 USSD 命令;IE。我们通过“popen”发送 USSD 命令并解析响应并发送所需的响应。我们在默认安装了 mmcli lib 的 Ubuntu 上运行我们的服务器,这是我们使用的。所以我们不必查看源代码,只需使用简单的管道将我们的命令通过管道传输到终端。我应该注意到它只产生了我们期望的完美输出并且没有额外的信息,并且您可以设置重试计数以防出错。
以下是我们设置架构的方式,以防万一:
网络服务器
- 有一个在专用端口上运行的开放式 websocket,它侦听来自服务器的传入请求并推送到与其连接的所有客户端(本地服务器)。
本地linux终端
- 有一个 websocket 客户端等待来自服务器的消息
- 当它收到一条消息时,它会解析并执行 USSD 代码,然后向我们的回调 api url 发送一条关于执行状态的消息。
我们已经运行了几个月了,我们唯一担心的是电源和稳定的互联网连接;我们的本地服务器必须始终开机并在线。
我很乐意分享我们用于 linux 命令的代码,它在 github 上。
推荐阅读
- javascript - 绘制函数未按预期循环
- javascript - 在未连接的 React 组件之间进行通信的最佳方式
- c# - 线索广告测试工具 - 服务器故障 (102)
- python - 根据比较条件将值插入数据帧
- javascript - 带有 Webpack 的 VanillaJs,构建后无法在 index.html 中加载 bundle.js
- c# - 如何更改通过字符串从哪个类调用变量?C#
- javascript - 使用更改对话框的 JQuery 更改流程
- reactjs - 默认的material-ui间距在哪里定义?
- python - Python:Pandas 数据框对象无法转换为字符串
- c# - Docker:“成功” docker run 后无法在浏览器上启动 .Net Core 3 Api