0

Here is my code

$to="[\"<mobile number>\"]";
$text = "غثس هفس خن";
$arr = unpack('H*hex', iconv('UTF-8', 'UCS-2BE', $text));
$message = strtoupper($arr['hex']);
$authToken="3fUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,            "https://api.clickatell.com/rest/message");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST,           1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS,     "{\"text\":\"$message\",\"to\":$to}");
curl_setopt($ch, CURLOPT_HTTPHEADER,     array(
                        "X-Version: 1",
                        "Content-Type: application/json",
                        "Accept: application/json",
                        "Authorization: Bearer $authToken"
                ));

$response = curl_exec($ch);
$err = curl_error($ch);

curl_close($ch);

When I am sending using this, I am getting some numbers as SMS

From Clickatell document, I got one solution that add a parameter named 'unicode' as '1'.

Then I changed the parameter line like this

curl_setopt($ch, CURLOPT_POSTFIELDS,     "{\"text\":\"$message\",\"to\":$to\",\"unicode\":1}");

Now I am getting {"error":{"code":"100","description":"Data malformed","documentation":"http://www.clickatell.com/help/apidocs/error/100.htm"}}

0 Answers0