我從供應商處收到了 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 無效(?。㏒mppException:第 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');
- 1 回答
- 0 關注
- 204 瀏覽
添加回答
舉報
0/150
提交
取消