Skip to content

Instantly share code, notes, and snippets.

@kas-cor
Last active August 18, 2016 12:03
Show Gist options
  • Save kas-cor/d41760321023d2812dd4c5742d635819 to your computer and use it in GitHub Desktop.
Save kas-cor/d41760321023d2812dd4c5742d635819 to your computer and use it in GitHub Desktop.
Sms.ru send SMS
<?php
/**
* @author kas-cor <[email protected]>
* @link http://github.com/kas-cor repositories
*/
namespace cls;
class Smsru {
/**
* Access id API
* @var string
*/
private $api_id;
/**
* @param string $api_id Access id API
*/
public function __construct($api_id) {
$this->api_id = $api_id;
}
/**
* Sending SMS message
* @param string $to
* @param string $message
* @return array
*/
public function send($to, $message) {
$data = array(
"to" => $to,
"text" => $this->convertToUtf8($message)
);
return $this->post("sms/send", $data);
}
/**
* Getting status SMS
* @param integer $id
* @return array
*/
public function status($id) {
$data = array(
"id" => $id
);
return $this->post("sms/status", $data);
}
/**
* Getting cost message
* @param string $to
* @param string $message
* @return array
*/
public function cost($to, $message) {
$data = array(
"to" => $to,
"text" => $this->convertToUtf8($message)
);
return $this->post("sms/cost", $data);
}
/**
* Getting accaunt balance
* @return array
*/
public function balance() {
return $this->post("my/balance");
}
/**
* Getting limits to sending
* @return array
*/
public function limit() {
return $this->post("my/limit");
}
/**
* Getting senders
* @return array
*/
public function senders() {
return $this->post("my/senders");
}
/**
* Post data
* @param string $method
* @return array
*/
private function post($method, $data = array()) {
$ch = curl_init("http://sms.ru/" . $method);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POSTFIELDS, array_merge(array("api_id" => $this->api_id), $data));
$res = curl_exec($ch);
curl_close($ch);
return explode("\n", $res);
}
/**
* Convert text to utf-8
* @param string $text
*/
private function convertToUtf8($text) {
if (!preg_match("//u", $text)) {
return iconv("windows-1251", "utf-8", $text);
} else {
return $text;
}
}
}
@kas-cor
Copy link
Author

kas-cor commented Aug 11, 2016

Useing

Init

$smsru = New Smsru("API id");

Send SMS

$to = "79031234567";
$message = "Test\nTest\nTest\nTest";
var_dump($smsru->send($to, $message));

Status SMS

$id = "123456-123456";
var_dump($smsru->status($id));

Cost SMS

$to = "79031234567";
$message = "Test\nTest\nTest\nTest";
var_dump($smsru->cost($to, $message));

Accaunt balance

var_dump($smsru->balance());

Accaunt limits

var_dump($smsru->limit());

Accaunt senders

var_dump($smsru->senders());

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment