меню
Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

Метод changeTariff

Переключить тариф пользователю (для партнёрских сайтов)

Метод для смены тарифного плана у пользователя.

Для начала нужно получить список всех доступных тарифов для смены, а затем совершить само переключение.

Данный метод возможен только для аккаунтов, у которых имеется статус реселлера.

Принцип использования

changeTariff (string login, int tariff_id)
https://api.unisender.com/ru/api/changeTariff?format=json&api_key=KEY&login=LOGIN&tariff_id=TARIFF_ID
Аргументы
api_key * Ключ доступа к API
login * Логин пользователя, для которого будет меняться тарифный план.
tariff_id * Идентификатор тарифа на который идёт переключение, ранее полученный в getAvailableTariffs
Возвращаемое значение
JSON-объект со следующими полями:
tariff_id Идентификатор тарифа, на который произошла смена
charged_sum Сумма которая списалась с баланса пользователя за смену тарифного плана
charged_bonus Бонусная сумма которая списалась с баланса пользователя за смену тарифного плана
start_time Дата и время в формате «ГГГГ-ММ-ДД чч:мм:сс», начиная с которой будет действовать новый тарифный план
end_time Дата и время в формате «ГГГГ-ММ-ДД чч:мм:сс», до которой будет действовать новый тарифный план
Примеры возвращаемых значений:

{
  "result":{
		"tariff_id":1234,
		"charged_sum":300,
		"charged_bonus":0,
		"start_time":"2012-05-21 13:51:12",
		"end_time":"2012-06-21 13:51:12"
	}
}

{
  "error":"Не удалось сменить тариф. И причина.",
  "result":false
}

Примеры на PHP

Мы настоятельно рекомендуем использовать POST-запросы, так как это более безопасный метод передачи данных, нежели GET. Используйте SSL-соединение с UniSender. Подробнее о методах соединения здесь.

Пример с использованием POST-запроса

// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxxxx";

// Параметры перевода денег
$login = "user_to_change";

// Создаём POST-запрос
$POST = array (
  'api_key' => $api_key,
  'login' => $login,
);

// Устанавливаем соединение
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL,
	'https://api.unisender.com/ru/api/getAvailableTariffs');
$result = curl_exec($ch);

if ($result) {
	// Раскодируем ответ API-сервера
	$jsonObj = json_decode($result);

	if(null===$jsonObj) {
		// Ошибка в полученном ответе
		echo "Invalid JSON";
	}
	elseif(!empty($jsonObj->error)) {
		// Ошибка
		echo "An error occured: " . $jsonObj->error
			. "(code: " . $jsonObj->code . ")";
	} else {
		// Получаем список доступных тарифов, выбираем нужный и меняем
		// в данном примере мы выбираем второй возвращаемый нам тариф
		$new_tariff_id = 1111;

		// формируем снова новый POST-запрос
		$POST = array (
			'api_key' => $api_key,
			'login' => $login,
			'tariff_id' => $new_tariff_id,
		);

		// Устанавливаем соединение
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
		curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		curl_setopt($ch, CURLOPT_URL,
			'https://api.unisender.com/ru/api/changeTariff');
		$result = curl_exec($ch);

		$jsonChangeObj = json_decode($result);

		//разбираем полученный ответ
		if(null===$jsonChangeObj) {
			// Ошибка в полученном ответе
			echo "Invalid JSON";
		}
		elseif(!empty($jsonChangeObj->error)) {
			// Ошибка
			echo "An error occured: " . $jsonChangeObj->error 
				. "(code: " . $jsonChangeObj->code . ")";

		} else {
			echo "Тариф успешно сменён на: "
			.$jsonChangeObj->result->tariff_id;
		}

	}
} else {
	// Ошибка соединения с API-сервером
	echo "API access error";
}