- курьер получает путевой лист с специальным уникальным кодом заказа;
- после доставки отправляет смс на специальный номер с префиксом и кодом заказа через пробел;
- кб по крону дергает данные по входящим смс, ищет код в базе заказов и меняет автоматически статус на требуемый вам.
Цитата
Рады сообщить вам о запуске бесплатного сервиса - Прием входящих СМС! Отныне всем клиентам доступен функционал обратной связи при помощи простого и понятного для каждого способа - СМС сообщения. Каким образом это работает? В разделе настройки приема входящих СМС https://new.sms16.ru...oming/settings/ вам выделен специальный префикс, используя который ваши клиенты могут написать вам СМС, и это сообщение будет отображено в личном кабинете! Пример СМС: 1235 Спасибо, мне очень понравилось в вашем ресторане! Абонентская плата за использование сервиса отсутствует, все входящие СМС сообщения на номер через ваш префикс - бесплатны! По желанию вы можете настроить различные правила обработки входящих СМС сообщений, например, настроить автоответчик или переслать смс на номер телефона или email, а также добавить номер абонента в стоп-лист или базу.
Итак зарегистрировались, заходите в личный кабинет - прием входящих. Видим
Цитата
Обратите внимание, что получение входящих СМС на фиксированный номер 79037672672 абсолютно бесплатно, и все полученные в ваш адрес СМС сообщения будут отображаться в личном кабинете!
Начните работать со входящими СМС прямо сейчас!
Начните работать со входящими СМС прямо сейчас!
А теперь нужен код для получения этих входящих смс. Из личного кабинета получаем логин и апи ключ. В кроне добавляем:
$sms = new IntisSms("testlogin", "865f2f8c9561a4fdf794a2c2f34638d98ecb8176c");
//Получаем смс
$income_sms = $sms->getSms("2015-02-23");
//Код который что-то делает в кб
$income_sms имеет следующую структуру
Array ( [498504] => Array ( [sms_id] => 498504 [date] => 2015-02-23 02:43:22 [sender] => 79622075063 [prefix] => 23998 [text] => 23998 ТЕСТ [code] => ТЕСТ ) [498508] => Array ( [sms_id] => 498508 [date] => 2015-02-23 05:09:03 [sender] => 79217378164 [prefix] => 23998 [text] => 23998 RNXGN [code] => RNXGN ) )
	class IntisSms
	{
		private $api_key;
		private $login;
		private $url = "https://new.sms16.ru/get/incoming.php";
		private $snoopy;
		private $sms;
		public function __construct($login, $api_key)
		{
			$this->api_key = $api_key;
			$this->login = $login;
			$this->snoopy = new \Snoopy();
		}
		/**
		 * Получаем список смс за указанную дату
		 * @param $date
		 * @return array
		 */
		public function getSms($date)
		{
			$this->snoopy->fetch($this->getUrl($date));
			$sms = json_decode($this->snoopy->results);
			if(isset($sms->error)) {
				print_r($sms);
				$this->sms = array();
			} else {
				$this->sms = array();
				foreach ($sms as $id => $val) {
					preg_match("/([0-9]+)([\s]+)([A-Za-z0-9]+)/", trim($val->text), $part);
					$this->sms[$id] = array('sms_id' => $id,'date' => $val->date, 'sender' => $val->sender, 'prefix' => $val->prefix, 'text' => $val->text, 'code' => $part[3]);
				}
			}
			return $this->sms;
		}
		/**
		 * Генерация ссылки для получения входящих смс
		 * @param $date
		 * @return string
		 */
		private function getUrl($date)
		{
			$params = $this->createParam($date);
			$signature = $this->signature($params);
			$get = "";
			foreach ($params as $key => $value) {
				$get .= $key . "=" . $value . "&";
			}
			$get = substr($get, 0, strlen($get) - 1);
//			echo $signature;
			return $this->url . "?signature=" . $signature . "&" . $get;
		}
		/**
		 * Создание пакета параметров
		 * @param $date
		 * @return array
		 */
		private function createParam($date)
		{
			$param = array();
			$param['login'] = $this->login;
			$param['timestamp'] = $this->getTimeStamp();
			$param['date'] = $date;
			$param['return'] = "json";
			return $param;
		}
		/**
		 * Получение тайместемпа для подписи
		 * @return string
		 */
		private function getTimeStamp()
		{
			$snoopy = new \Snoopy();
			$snoopy->fetch("https://new.sms16.ru/get/timestamp.php");
			return $snoopy->results;
		}
		/**
		 * Генерация подписи
		 * @param $params
		 * @return string
		 */
		private function signature($params)
		{
			ksort($params);
			reset($params);
			return md5(implode($params) . $this->api_key);
		}
	}
Вообще сервис предоставляет и другие функции, а также подробную документацию. Лаконичную и понятную. Советую ознакомится.


 2
 2 

 
				
				 
				
				











