Sending unicode SMS issue

55 views Asked by At

I have used this package: https://packagist.org/packages/glushkovds/php-smpp Normal SMS is working fine, How can I send Unicode now.

Here is my code I have used:

<?php
require_once 'vendor/autoload.php';

$service = new \PhpSmpp\Service\Sender(['XXX.XXX.XXX.XXX'], 'XXX', 'XXX', true);

$messageText = 'test from vari';

$smsId = $service->send(Receiver Number, $messageText, 'Sender');
var_dump($smsId); 
1

There are 1 answers

1
Debasish Das On

Issue solved by replacing the following code:

Original Code:

$encodedMessage = $message;
$dataCoding = SMPP::DATA_CODING_DEFAULT;
   if (Helper::hasUTFChars($message)) {
         $encodedMessage = iconv('UTF-8', 'UCS-2BE', $message);
         $dataCoding = SMPP::DATA_CODING_UCS2;
    }

Updated Code:

if (mb_detect_encoding($message) !== "ASCII") {
       $encodedMessage = iconv('UTF-8', 'UCS-2BE', $message);
       $dataCoding = SMPP::DATA_CODING_UCS2;
} else {
      $encodedMessage = $message;
      $dataCoding = SMPP::DATA_CODING_DEFAULT;
}