为了账号安全,请及时绑定邮箱和手机立即绑定

尝试使用 SMPP 和 PHP 发送 SMS 时命令 ID 无效

尝试使用 SMPP 和 PHP 发送 SMS 时命令 ID 无效

PHP
月关宝盒 2023-08-19 10:37:54
我从供应商处收到了 SMPP 服务器详细信息,因此我可以使用他们的 SMPP 服务器向我的客户发送 SMS 消息。然而,我似乎发现 PHP 对此几乎没有支持。我查看了以下 github 项目,但当我尝试发送时,我不断收到错误“无效命令 ID”。有人可以看一下我的代码并看看我是否遗漏了什么吗?我已使用 telnet 连接到 SMPP 服务器,并且连接已成功建立。我也尝试过单步执行代码,但无法找出问题所在。我检查了每次调用中传递的每个命令 ID,根据smpp 网站,它们似乎都是有效的,所以我不知所措。任何帮助将不胜感激。Github 项目:https://github.com/onlinecity/php-smpp我的代码(服务器IP、端口号、用户名和密码省略):<?phprequire_once 'smppclient.class.php';require_once 'gsmencoder.class.php';require_once 'sockettransport.class.php';// Construct transport and client$transport = new SocketTransport(array('SMPP_SERVER_IP'),PORT_NUMBER);$transport->setRecvTimeout(10000);$smpp = new SmppClient($transport);// Activate binary hex-output of server interaction$smpp->debug = true;$transport->debug = true;// Open the connection$transport->open();$smpp->bindTransmitter("USERNAME","PASSWORD");// Optional connection specific overridesSmppClient::$sms_null_terminate_octetstrings = false;SmppClient::$csms_method = SmppClient::CSMS_PAYLOAD;SmppClient::$sms_registered_delivery_flag = SMPP::REG_DELIVERY_SMSC_BOTH;// Prepare message$message = 'Hello World €$£';$encodedMessage = GsmEncoder::utf8_to_gsm0338($message);$from = new SmppAddress('MyAppName',SMPP::TON_ALPHANUMERIC);$to = new SmppAddress(27798817281,SMPP::TON_INTERNATIONAL,SMPP::NPI_E164);// Send$messageID = $smpp->sendSMS($from,$to,$encodedMessage,null);// Close connection$smpp->close();PHP 中的堆栈跟踪:致命错误:未捕获 SmppException:第 622 行 /Applications/XAMPP/xamppfiles/htdocs/projects/smpp_test/src/libs/smpp/smppclient.class.php 中的命令 ID 无效(!)SmppException:第 622 行 /Applications/XAMPP/xamppfiles/htdocs/projects/smpp_test/src/libs/smpp/smppclient.class.php 中的命令 ID 无效调用栈Time    Memory  Function    Location1 0.0015 412144 {main}( ) .../test.php:02 2.2379 687472 SmppClient->close() .../test.php:353 2.2381 687472 SmppClient->sendCommand() .../smppclient.class.php:150
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

尝试使用另一个库


composer require glushkovds/php-smpp

发送短信:


<?php

require_once 'vendor/autoload.php';


$service = new \PhpSmpp\Service\Sender(['SMPP_SERVER_IP:SMPP_SERVER_PORT'], 'login', 'pass');

$message = 'Hello World €$£';

$smsId = $service->send(27798817281, $message, 'MyAppName');


查看完整回答
反对 回复 2023-08-19
  • 1 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信