Метод 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";
}