Руководство

Введение

Боковая панель слева содержит ссылки на соответствующие разделы:

  • Имя пользователя - ссылки на личный профиль.
  • Панель управления - просмотр текущего статуса в виде диаграмм и графиков.
  • Приложения - управление приложением.
  • Коды разблокировки - автоматически сгенерированные или загруженные вами коды разблокировки.
  • Платежи - история входящих платежей пользователей.
  • Руководство - текущее руководство пользователя.

Панель управления

Вы можете установить общие фильтры для всех виджетов на панели управления:

  • Валюта - валюта, в которую будут конвертированы входящие и исходящие суммы на панели управления.
  • Период - период времени, за который данные отображаются в диаграммах и таблицах на панели управления. Определяет интервал, в течение которого анализируется и отображается информация и статистика о платежах, приложениях и других параметрах.

Баланс

Баланс включает следующие суммы:

  • Валовая сумма - общая сумма всех пользовательских платежей за выбранный период, за исключением комиссий платежных систем и PayToUse.
  • Чистая сумма - общая сумма всех платежей за выбранный период за вычетом комиссий платежных систем и PayToUse.
  • Ожидаемая сумма - общая сумма всех платежей за указанный период за вычетом комиссий платежных систем и PayToUse, ожидающая вывод на счет разработчика. Платеж становится доступным для вывода через 7 дней после его проведения.
  • Доступная сумма - общая сумма всех платежей за все время за вычетом комиссий платежных систем и PayToUse, доступная для вывода на счет разработчика.

Платежи

Виджет «Платежи» включает таблицу платежей, сгруппированных по приложениям за выбранный период.

Поля таблицы:

  • Приложение - приложение. В таблице отображаются только те приложения, для которых были совершены платежи за выбранный период.
  • Платежи - количество платежей.
  • Валовая сумма - общая сумма всех пользовательских платежей за выбранный период, за исключением комиссий платежных систем и PayToUse.
  • Чистая сумма - общая сумма всех платежей за выбранный период за вычетом комиссий платежных систем и PayToUse.

График показывает динамику значений Чистая сумма и Валовая сумма по дням.

Новые пользователи

График новых пользователей показывает два значения по дням в динамике:

  • Новые пользователи - количество новых вызовов API. Доступ к API записывается только в случае передачи параметра device - уникального идентификатора устройства - при отправке запроса к API. Этот параметр должен быть действительно уникальным для устройства. (см. Отправка запроса)
  • Платежи - количество платежей за тот же период за день.

Конверсия

Метрика Conversion относится к оценке эффективности ваших продаж для преобразования Новые пользователи в Платежи.

График показывает соотношение количества Платежи к количеству Новые пользователи в процентах.

Приложения

При переходе в этот раздел открывается список ваших приложений.

Список столбцов в таблице приложений:

  • # - уникальный идентификатор приложения. Используется при проверке кода приложения или отображении формы оплаты.
  • Название - название приложения. Название отображается только вам в отчетах и панели управления. Нажав на название приложения, вы откроете страницу редактирования приложения.
  • Статус - текущий статус приложения. Может быть:
    • Создано - Приложение было только что создано, еще не настроено.
    • Опубликовано - приложение работает.
  • Создано - дата создания приложения.
  • Дополнительные кнопки управления:
    • Удалить - удалить приложение из списка.

Создание или редактирование приложения

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

Кнопка создания нового приложения расположена в заголовке списка приложений.

Приложение

Доступные поля при создании приложения:

  • Название - название приложения, которое видите только вы в отчетах или на панели управления. Название будет отображаться в заголовке страницы сохраненного приложения. Пока приложение не сохранено, вместо названия отображается "Новое приложение". Поле обязательно к заполнению.
  • Контактный email - адрес электронной почты, на который будут отправляться копии сообщений, отправленных пользователям. Этот адрес также указан в поле "Ответить" и используется для ответа пользователю на полученное письмо с кодом. Это поле обязательно для заполнения. По умолчанию оно заполняется значением из профиля разработчика. Значение можно изменить на другое.
  • Тип приложения - тип приложения. Если выбран тип приложения “Группа”, будет отображен список приложений для группировки. В списке доступны только отдельные приложения, для которых генерируются коды разблокировки.
  • Разрешить обратную связь по оплате - добавляет поле в платежную форму для ввода свободного текста пользователем. Обратная связь добавляется в копию электронного письма разработчику. Обратную связь также можно увидеть в деталях платежа.

Начните вводить изменяемые значения, и появится кнопка Сохранить. Кнопка Сохранить позволяет сохранить ваши изменения, не переходя на следующую страницу. Кнопка Далее сохраняет изменения и переходит на следующую страницу. Вы всегда можете вернуться, чтобы внести изменения позже.

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

Описание

Выберите язык из списка и нажмите Добавить.

Появится вкладка с локализованными текстами приложения для выбранного языка.

Доступные языки:

  • Немецкий
  • Английский
  • Французский
  • Испанский
  • Русский
  • Китайский упрощенный

Поля в описании используются для отображения информации на форме оплаты и в ответном сообщении пользователю:

  • Название - название приложения для выбранного языка. Оно отображается на форме оплаты и в уведомлении об оплате. По умолчанию, при добавлении языка, вставляется название приложения. Вы можете установить разное название для каждого языка. Обязательное поле.
  • Описание - краткое описание приложения. Отображается на форме оплаты под названием приложения. Опциональное поле. Можно оставить пустым, если вы не хотите, чтобы отображалось какое-либо описание.
  • Ответ - дополнительная информация, которая будет отправлена пользователю в письме после успешной оплаты. Текст ответа добавляется в конце письма после стандартного ответа.

Должен быть добавлен хотя бы один язык для сохранения и перехода на следующую страницу.

Язык, отображаемый в платежной форме, определяется автоматически на основе предпочтений пользователя, указанных в настройках его браузера. Вы можете сохранить язык приложения для приложения.

Начните вводить или изменять значения, и кнопка “Сохранить” появится. Кнопка “Сохранить” позволяет сохранить ваши изменения без перехода на следующую страницу. Кнопка “Далее” сохраняет изменения и переходит на следующую страницу. Вы всегда можете вернуться, чтобы внести изменения позже.

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

Цена

На странице содержится список цен и поля, связанные с оплатой:

  • Испытательный период - длительность пробного периода.
  • Единица времени - единица времени пробного периода. Например, если вы указываете 7 дней, это означает, что через 7 дней после первого вызова API приложения придет ответ о том, что пробный период истек. Время первого вызова устройства сохраняется.
  • Метод расчета цены - метод расчета цены из списка:
    • Расчет цены в зависимости от срока - В форме оплаты пользователь указывает период активации кода, и цена автоматически рассчитывается согласно приведенной ниже таблице. Пользователь получает автоматически сгенерированный код разблокировки в ответном письме.
    • Расчет срока в зависимости от цены - В форме оплаты пользователь выбирает цену из списка или вводит собственное значение цены, и период автоматически рассчитывается согласно таблице ниже. Пользователь получает автоматически сгенерированный код в ответном сообщении.
    • Постоянный код - В форме оплаты пользователь выбирает цену из списка или вводит собственное значение цены. После оплаты он получает код из списка ниже, соответствующий выбранной цене, в ответном электронном письме.
    • Пожертвование - В форме оплаты пользователь выбирает цену из списка или вводит собственное значение цены. Для приложений типа Donation код разблокировки не генерируется.

Цена устанавливается в долларах США. Минимальная цена - 1 доллар США.

Начните вводить или изменять значения, и кнопка “Сохранить” появится. Кнопка “Сохранить” позволяет сохранить ваши изменения без перехода на следующую страницу. Кнопка “Далее” сохраняет изменения и переходит на следующую страницу. Вы всегда можете вернуться, чтобы внести изменения позже.

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

Предпросмотр

Эта страница устанавливает значения:

  • Длина кода - длина сгенерированного кода, если применимо.
  • Набор символов кода - набор символов, из которых генерируется код:
    • Числовой код - код генерируется с использованием только цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Начальные нули могут быть включены в код. Начальные нули значимы при проверке кода.
    • Буквенно-цифровой код - код генерируется с использованием символов 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, G, K, L, M, N, P, Q, R, S, T, U, V, X, Y, Z. Код генерируется и отправляется пользователю в верхнем регистре. Регистр символов не имеет значения при проверке кода.
  • Ссылка для проверки кода - пример ссылки для проверки кода.
  • Ссылка для оплаты - ссылка для оплаты. Вы можете скопировать ссылку и вставить её в описание приложения на веб-сайте, где опубликовано приложение. Параметры для передачи:
    • app - уникальный идентификатор приложения. Обязательный параметр.
    • amount - сумма, которая будет указана в поле цены при покупке. Цена по умолчанию игнорируется. Однако сумма не может быть меньше минимальной цены и не может быть ниже минимальной цены, установленной для приложения. Необязательный параметр.

Для начала приема платежей необходимо активировать приложение с помощью кнопки Запуск. Перед активацией приложения убедитесь, что все введенные данные верны. Сгенерированные приложением ключи не могут быть изменены.

Проверка кода

Проверка кода разблокировки приложения выполняется в 3 этапа:

  1. Написание и отправка запроса на проверку кода
  2. Проверки на стороне API
  3. Получение и обработка ответа API
Отправка запроса

Для проверки кода пользователь вашего приложения должен ввести его в поле в настройках приложения.

/resources/settings/properties.xml
<properties>
	<property id="UnlockCode" type="string"></property>
	<property id="UnlockResult" type="string">Checking...</property>
	...
<properties>
/resources/settings/settings.xml
<settings>
	<setting propertyKey="@Properties.UnlockCode" title="@Strings.UnlockCode">
		<settingConfig type="alphaNumeric" maxLength="12"/>
	</setting>
	<setting propertyKey="@Properties.UnlockResult" title="@Strings.UnlockResult">
		<settingConfig type="alphaNumeric" readonly="true"/>
	</setting>
	...
</settings>

Затем необходимо отправить запрос на сервер API Pay-to-use:

/source/background.mc
function onTemporalEvent() as Void {
	var ds = System.getDeviceSettings();
	return Toybox.Communications.makeWebRequest(
		"https://api.pay-to-use.com", // URL API
		{
			"device" => ds.uniqueIdentifier, // уникальный идентификатор устройства
			"app" => "6", // идентификатор вашего приложения
			"model" => ds.partNumber, // артикул устройства
			"code" => Application.Properties.getValue("UnlockCode") // значение кода разблокировки в вашем приложении
		},
		{
			:method => Communications.HTTP_REQUEST_METHOD_POST,
			:headers => { "Content-Type" => Communications.REQUEST_CONTENT_TYPE_JSON },
			:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
		},
		method(:onReceive)
	);
}

Параметры запроса API:

  • url - https://api.pay-to-use.com. Использование протокола HTTPS является обязательным.
  • Тело запроса (передаваемые значения). Словарь ключей и значений:
    • device - уникальный идентификатор устройства.
    • app - уникальный идентификатор вашего приложения.
    • model — идентификатор модели устройства. Необязательный параметр. Данные используются для отображения статистики по новым устройствам.
    • code - код разблокировки, введенный пользователем в настройках вашего приложения.
  • Параметры запроса:
    • :method - API поддерживает методы запроса GET и POST.
    • :headers - для метода POST параметры должны быть переданы в формате JSON.
    • :responseType - ответ возвращается в формате JSON.
  • responseCallback - ссылка на метод обратного вызова, который должен принимать два аргумента:
    • responseCode - код заголовка ответа сервера.
    • data - содержимое, если запрос выполнен успешно, или null.
Проверки на стороне API

Если параметры не передаются в API, то API возвращает заголовок HTTP/1.1 404 Not Found.

Если хотя бы один параметр передается в API, то API возвращает заголовок HTTP/1.1 200 OK.

Ответ сервера состоит из:

  • response - код ответа
  • msg - текстовое описание ответа
  • expires - временная метка UNIXTIME (если применимо)

Выполняется проверка для убеждения в том, что переданный идентификатор приложения является корректным. Приложение должно находиться в статусе Опубликовано в момент оплаты. В случае ошибки возвращается код ответа 301.

Если передается уникальный идентификатор устройства, то происходит поиск и хранение его. Если при проверке или сохранении возникают ошибки, возвращается код ошибки 402. Если такой код возврата найден, немедленно напишите в службу поддержки на [email protected]

Если код передан, следующие шаги выполняются для приложений с методами расчета Расчет цены в зависимости от срока и Расчет срока в зависимости от цены:

  • Если передается пустой код, он отсоединяется от уникального идентификатора устройства, определенного на предыдущих этапах.
  • Если передается непустой код и он не активирован, код активируется в зависимости от условий цены, указанной при покупке кода, независимо от даты активации.
  • Если код не был передан или переданный код не найден, возвращается код ошибки 201.
  • Активированный код проверяется на соответствие устройству, и если уникальный идентификатор устройства, отличный от сохраненного, был передан во время активации, возвращается код ошибки 202.
  • Если переданный код не имеет даты истечения срока действия и все предыдущие проверки пройдены, возвращается код 101.
  • Если код имеет ограничение по времени, проводится проверка. Если ключ не истек, возвращается код 101. Если код истек, возвращается код ошибки 203.
  • Для этого типа приложения требуется привязка кода к устройству. Если уникальный идентификатор устройства не был передан, возвращается код ошибки 304.

Для приложения с Постоянный код проверяется только доступность кода на момент покупки. Если код найден, возвращается код 101. Если код не найден, возвращается код ошибки 201.

Для приложения с методом расчета Пожертвование код не проверяется. Всегда возвращается код 101.

Если предыдущие проверки не пройдены, проверяется тестовый период. Если прошло больше времени с момента первого контакта с устройством, чем установлено в текущих настройках приложения, возвращается код ошибки 204. Если пробный период еще не истек, возвращается код ошибки 102.

Если передается только идентификатор приложения, но не передаются ни код разблокировки, ни уникальный идентификатор устройства, возвращается код ошибки 303.

Если возвращен ответ 500, вам следует написать в поддержку по адресу [email protected]

Ниже приведена таблица всех возвращаемых кодов:

Возврат Сообщение
101 Методы расчета Расчет цены в зависимости от срока и Расчет срока в зависимости от цены:
  • Активен навсегда
{
	"response":101,
	"msg":"Active forever",
	"expires":0
}
  • Активен до [даты]
{
	"response":101,
	"msg":"Active until 19 Mar 2027",
	"expires":1805490896
}
Постоянный код:
{
	"response":101,
	"msg":"The code check was successfull",
	"expires":0
}
Пожертвование:
{
	"response":101,
	"msg":"No code check required",
	"expires":0
}
102
{
	"response":102,
	"msg":"Trial period expires in 21h 9m",
	"expires":1779560673
}
201
{
	"response":201,
	"msg":"Code not found"
}
202
{
	"response":202,
	"msg":"Used on the another device"
}
203
{
	"response":203,
	"msg":"Expiration: 12 May 2026",
	"expires":1778620496
}
204
{
	"response":204,
	"msg":"Trial period expired"
}
301
{
	"response":301,
	"msg":"Application not found"
}
302
{
	"response":302,
	"msg":"Term undefined"
}
303
{
	"response":303,
	"msg":"Not enough arguments"
}
304
{
	"response":304,
	"msg":"Device is nesessary"
}
401
{
	"response":401,
	"msg":"Error code saving"
}
402
{
	"response":402,
	"msg":"Error device saving"
}
500
{
	"response":500,
	"msg":"Unknown error"
}
Проверка ответа

Затем вам следует проверить ответ от сервера API Pay-to-use:

/source/background.mc
function onReceive(responseHeader, data) as Void {
	if (responseHeader == 200) { Toybox.Background.exit(data); }
}

Вы можете проверить все заголовки и коды, вы можете отображать свои собственные сообщения для удобства пользователя, но в самом простом виде проверка будет выглядеть примерно так:

/source/app.mc
function onBackgroundData(data) as Void {
	if (data.hasKey("response")) {
		if (data.hasKey("msg")) {
			// Вы можете показать data["msg"] в поле свойств с именем "UnlockResult".
			Application.Properties.setValue("UnlockResult", data["msg"]);
		}
		if (data["response"].toString().substring(0, 1).equals("2")) {
			// Проверка кода не удалась
			// Платные функции НЕ доступны
			...
		} else {
			// Проверка кода прошла успешно или ошибка на вашей стороне или на стороне API
			// Платные функции доступны
			...
		}
	}
}

Коды разблокировки

При переходе в этот раздел откроется список кодов разблокировки.

Список разблокировочных кодов

Вы можете искать по полю email или коду в верхней строке поиска. Найденные коды будут отображаться в списке. Вы можете использовать всю или часть email или кода в качестве критерия поиска. Совпадения будут выделены цветом. Поиск и фильтры работают одновременно и не исключают друг друга.

Последний использованный фильтр сохраняется для пользователя. То есть, при следующем входе на страницу, последний использованный фильтр будет применен автоматически. Фильтры доступны для списка кодов разблокировки:

  • Колонки - выберите столбцы таблицы для отображения в списке кодов разблокировки.
  • Приложение - отображать только коды разблокировки для выбранных приложений.
  • Статус - отображать только коды разблокировки, которые находятся в выбранных статусах.

Список столбцов в таблице кодов разблокировки:

  • Приложение - ваше приложение. Вы можете перейти по ссылке для редактирования его настроек.
  • Код - код разблокировки.
  • Email - адрес электронной почты, связанный с регистрацией кода разблокировки. Этот адрес используется для поиска клиентских кодов разблокировки в разделе Мои покупки на сайте. Этот раздел доступен пользователям.
  • Срок - период действия отправленного кода (указан в настройках приложения). Период действия установлен для кода в соответствии с условиями настроек приложения на момент его создания.
  • Статус - статус кода разблокировки. (см. Статус кода разблокировки)
  • Создано - дата создания кода разблокировки.
  • Активирован - дата активации кода. Устанавливается в момент, когда данное устройство пользователя впервые связывается с сервисом PayToUse API и отправляет этот код. Статус кода меняется на Активирован. Только неактивный код может быть активирован. Если активный код отправляется устройством с другим ID, API возвращает ошибку 202. Только одно устройство может быть связано с одним кодом.
  • Истечение срока - дата истечения срока действия кода. Устанавливается для кодов с ограниченным сроком действия при активации. Для кодов с неограниченным сроком действия дата остается пустой.
  • Удален - дата удаления кода. При удалении статус кода устанавливается на Неизвестно.
  • Платеж № - уникальный порядковый номер платежа. Вы можете нажать на ссылку, чтобы посмотреть детали платежа.
  • Кнопки для действий с кодами разблокировки. Например, удаление.

Статус кода разблокировки

В течение своего жизненного цикла код разблокировки проходит различные состояния, которые можно отслеживать по статусу кода.

Статус Описание
Доступно Статус присваивается коду разблокировки, для которого не были выполнены никакие действия. Или если связь с устройством для кода была сброшена.
Активирован Статус устанавливается для кода с установленной датой активации. Дата активации устанавливается, когда устройство успешно обращается к сервису PayToUse API впервые. Также при активации кода устанавливается дата истечения срока действия кода.
Истек Статус устанавливается для истекшего кода. Отвязка кода от устройства не сбрасывает дату истечения срока действия кода. Проверка кода с этим статусом вернет ошибку 203. (см. Проверки на стороне API)
Неизвестно Статус устанавливается при удалении кода. Проверка кода с этим статусом вернет ошибку 201. (см. Проверки на стороне API)

Платежи

При переходе в этот раздел откроется список платежей пользователей.

Для приема платежей используются следующие платежные системы:

Система Описание
Комиссия платежной системы составляет от 2.9% + 0.30 USD за каждое успешное списание с карты. Поддерживаются карты, кошельки и другие способы оплаты. Размер комиссии зависит от способа оплаты и может отличаться от комиссии за оплату картой. Подробную информацию о комиссиях, взимаемых платежной системой, можно найти на сайте платежной системы.
Комиссия платежной системы составляет от 3.4% + 0.30 USD за каждый успешный платеж. Поддерживаются карты и PayPal. Подробную информацию о комиссиях, взимаемых платежной системой, можно найти на сайте платежной системы.
Комиссия платежной системы составляет от 3.9% за каждый успешный платеж. Поддерживаются карты и другие способы оплаты. Размер комиссии зависит от способа оплаты. Подробную информацию о комиссиях, взимаемых платежной системой, можно найти на сайте платежной системы.

После учета комиссии платежной системы PayToUse взимает комиссию в размере 13%. Мы постоянно работаем над снижением комиссий.

Если возникают споры или возвраты средств в системе оплаты, штрафы системы оплаты выписываются разработчику заново. Поэтому следует не допускать таких ситуаций. Комиссия PayToUse не взимается в спорных ситуациях.

Список платежей

Вы можете искать по электронной почте или отправленному коду в верхнем поисковом поле. Найденные платежи будут отображены в списке. Вы можете использовать весь или часть адреса электронной почты или отправленного кода в качестве критерия поиска. Совпадения будут подсвечены цветом. Поиск и фильтры работают одновременно и не исключают друг друга.

Последний использованный фильтр сохраняется для пользователя. То есть, при следующем входе на страницу последний использованный фильтр будет применен автоматически. Для списка платежей доступны следующие фильтры:

  • Колонки - выберите столбцы таблицы для отображения в списке платежей.
  • Приложение - отображение платежей только для выбранных приложений.
  • Система - отображение платежей только из выбранных платежных систем.
  • Статус - отображение платежей только с выбранными статусами.

Список столбцов в таблице платежей:

  • Приложение - ваше приложение. Вы можете перейти по ссылке для редактирования его настроек.
  • # - уникальный порядковый номер платежа. Он присваивается платежу автоматически, когда пользователь переходит от формы оплаты на страницу оплаты в платежной системе. Вы можете нажать на ссылку, чтобы просмотреть детали платежа.
  • Комментарии - сообщение от пользователя, введенное в форме оплаты.
  • Система - платежная система, выбранная пользователем.
  • Статус - статус платежа. (см. Статус платежа)
  • Email - электронная почта пользователя, указанная в форме оплаты.
  • Срок - период действия отправленного кода (указанный в настройках приложения).
  • Создано - дата создания платежа.
  • Сумма счета - сумма платежа, взимаемая с пользователя. Указывается в форме оплаты в зависимости от настроек приложения.
  • Дата платежа - дата платежа.
  • Сумма платежа - сумма платежа, подтвержденная платежной системой.
  • Отправленный код - код, отправленный пользователю.
  • Доступная сумма - доступная сумма для вывода.
  • Сумма выплат - сумма снятых средств для платежа.

Изменения в платеже невозможны.

Статус платежа

В течение своего жизненного цикла платеж проходит через различные стадии, которые можно отслеживать по статусу платежа.

Статус Описание
Неполный Статус назначается платежам, для которых не было выполнено никаких действий. Платеж создается сразу, как только пользователь переходит от формы платежа к форме платежной системы. Платежу присваивается уникальный серийный номер, а также основные атрибуты платежа: сумма, платежная система, дата.
Успешно Статус назначается платежам, которые получили положительный ответ от платежной системы. Следующим шагом является отправка электронного письма пользователю, содержащего сгенерированный код или другие данные в зависимости от настроек приложения. Если платеж остается в этом статусе, следует обратить особое внимание, так как последующие действия не были выполнены.
Ошибка Статус назначается платежам, для которых получен отрицательный ответ от платежной системы. Последующие шаги не выполняются. Необходимо обратить особое внимание на такие платежи, так как статус на стороне платежной системы может быть обработан с задержкой.
Ожидание Статус назначается платежам, для которых получен положительный ответ от платежной системы, и все последующие шаги были успешно завершены. Вывод средств для платежей с этим статусом недоступен. Платежи автоматически переходят в следующий статус через 7 дней.
Доступно Вывод средств доступен для платежей в этом статусе.
Отправка Статус включается для платежей, включенных в следующий вывод. Если вывод отменен или отклонен, статус платежа возвращается в Доступно.
Отправлено Статус активирован для платежей, по которым производится вывод. Ожидается подтверждение получения средств.
Завершено Статус включен для платежей с успешным выводом средств. Вы можете установить статус вручную, подтвердив вывод в соответствующем разделе. Также статус автоматически изменяется через 14 дней после вывода средств.
Возвращено Платежи, для которых был выдан возврат, переводятся в этот статус. При выполнении возврата взимается комиссия за возврат. Комиссия удерживается из суммы вывода.

Вывод средств

При переходе в этот раздел откроется список ваших выводов.

Список выводов средств

Последний использованный фильтр сохраняется для пользователя. Таким образом, при следующем входе на страницу будет автоматически применен последний использованный фильтр. Для списка выводов доступны следующие фильтры:

  • Колонки - отображение только выбранных столбцов в списке выводов.
  • Статус - отображение только выводов, находящихся в выбранных статусах.

Список столбцов в таблице выводов:

  • # - уникальный порядковый номер вывода. Он присваивается выводу автоматически при сохранении. Вы можете щелкнуть по ссылке, чтобы посмотреть подробности вывода.
  • Статус - статус вывода. (см. Статус вывода)
  • Создано - дата запроса вывода.
  • Сумма - сумма вывода.
  • Вывод средств - дата отправки вывода.
  • Кнопки для действий с выводами. Например, подтверждение.

Вы можете подтвердить вывод, когда он находится в статусе Отправлено.

Статус вывода

В течение своего жизненного цикла вывод проходит через различные состояния, которые можно отслеживать по статусу вывода.

Статус Описание
Ожидание Статус назначается выводам при создании, для которых не было выполнено никаких действий.
Отменено Статус назначается отмененным выводам. Отмены могут происходить по различным причинам. Например, метод получения средств не указан. Все платежи из этого вывода переходят в статус Доступно и снова доступны для вывода.
Отправлено Статус устанавливается для вывода средств при его отправке.
Завершено Статус устанавливается для ручного вывода, когда разработчик получает его для подтверждения получения. Или автоматически через 14 дней после отправки.
Отклонено Статус устанавливается для вывода, когда банк или платежная система возвращает средства после отправки. Все платежи из этого вывода переходят в статус Доступно и снова доступны для вывода.

API

Обзор

API PayToUse выполняет следующие функции:

  1. Проверяет статус активации кода разблокировки и активирует его при необходимости.
  2. Получает данные о уровне глюкозы в крови из приложения NightScout.
  3. Получает текущие данные о погоде для указанного местоположения.

Вся информация может быть запрашиваемой и возвращаемой в одном запросе.

Конечные точки API

Вы можете использовать один из следующих конечных точек:

  • https://api.pay-to-use.com
  • https://api.p2u.io

Обе конечные точки обрабатывают запросы GET и POST.

Параметры запроса

  • device: строка (обязательный) — уникальный идентификатор устройства
  • app: целое число (обязательный) — ваш ID приложения
  • model: строка (необязательный) — код модели устройства, необходимый для сбора и отображения статистики для устройств, использующих приложение
  • code: строка (необязательный) — код разблокировки
  • bg: ассоциативный массив (необязательный) — данные для запроса уровня глюкозы в крови из приложения NightScout
    • url: строка (необязательный) — адрес приложения NightScout
  • weather: ассоциативный массив (необязательный) — данные для запроса текущей погоды
    • appid: строка (необязательный) — ключ доступа к API погоды
    • lat: число с плавающей запятой (необязательный) — широта
    • lon: число с плавающей запятой (необязательный) — долгота
    • provider: целое число (необязательный) — поставщик погодных данных

Список поддерживаемых поставщиков погодных данных

1. OpenWeatherMap

  • Описание: OpenWeatherMap предоставляет глобальные данные о погоде, включая текущую погоду, исторические данные и 16-дневные прогнозы. С широким географическим охватом и частыми обновлениями, OpenWeatherMap является популярным выбором для приложений, требующих как текущей погоды, так и расширенных прогнозов.
  • Предоставляемые данные: Температура, влажность, скорость ветра, качество воздуха, вероятность осадков и другие данные в реальном времени. Предоставляются как текущие данные, так и прогнозы, включая погодные данные по минутам для выбранных локаций.
  • Выбор поставщика: Включите provider = 1 в раздел weather вашего запроса, чтобы выбрать OpenWeatherMap в качестве поставщика погоды.
  • Примечания по использованию: Предлагает бесплатные и платные уровни с доступом к данным через аутентификацию по ключу API. Расширенные слои данных и премиум-функции доступны в платных планах.
  • Документация API: Доступно здесь.

2. QWeather

  • Описание: QWeather, также известен как HeWeather, предоставляет всесторонние данные о погоде, ориентированные на Китай, но также включает международные данные. Он предлагает подробную информацию, такую как текущая погода, прогнозы, данные о качестве воздуха и предупреждения.
  • Предоставляемые данные: Текущая температура, влажность, индекс ультрафиолетового излучения, уровень загрязнения, ежедневные и почасовые прогнозы, а также предупреждения о неблагоприятных погодных условиях. Известен своими подробными данными о качестве воздуха и обновлениями в реальном времени о изменениях в погодных условиях.
  • Выбор поставщика: Включите provider = 2 в раздел weather вашего запроса, чтобы выбрать QWeather в качестве поставщика погоды.
  • Примечания по использованию: QWeather предоставляет доступ к API с бесплатными и платными уровнями. Бесплатный уровень предоставляет ограниченные данные, в то время как платные опции расширяют доступ к дополнительным данным и локациям.
  • Документация API: Доступно здесь.

3. MET Weather (MET Norway)

  • Описание: MET Weather API, предоставляемый MET Norway, дает доступ к различным открытым метеорологическим данным, включая прогнозы, исторические данные и специфические данные для Норвегии и северных регионов. Известен своей точностью и прозрачностью, MET Weather идеально подходит для приложений, нуждающихся в надежных данных о погоде.
  • Предоставляемые данные: Текущие погодные условия, прогнозы, осадки, температура, данные о ветре и ультрафиолетовом индексе. MET Weather предоставляет специализированные данные для северных регионов, но также поддерживает глобальную информацию о погоде.
  • Выбор поставщика: Включите provider = 3 в раздел weather вашего запроса, чтобы выбрать MET Weather в качестве поставщика погоды.
  • Примечания по использованию: Все данные, предоставляемые MET Weather, доступны для использования бесплатно по лицензии Creative Commons, что позволяет использовать их как в некоммерческих, так и в коммерческих приложениях без затрат. MET Norway известна своими экологическими данными, что делает её надежным поставщиком, особенно в Европе.
  • Документация API: Доступно здесь.

Пример запроса

/source/background.mc
function onTemporalEvent() as Void {
	var ds = System.getDeviceSettings();
	if (!ds.phoneConnected) { // Проверяет, что устройство подключено к телефону для отправки запроса
		return;
	}

	var id = ds.uniqueIdentifier;
	if (id == null) { // Проверяет, что устройству назначен уникальный идентификатор
		return;
	}

	var request = {};

	var lockCheck = Application.Storage.getValue("LastCodeCheckTimestamp");
	if (lockCheck == null || lockCheck <= Time.now().value()) { // Отправляет код при необходимости
		request.put("code", Application.Properties.getValue("UnlockCode"));
	}

	var ns_url = Application.Properties.getValue("NS");
	if (!ns_url.equals("")) { // Отправляет URL приложения NightScout, если необходимо
		request.put("bg", { "url" => ns_url });
	}

	var wP = Application.Properties.getValue("Weather");
	if (wP != 0) { // Отправляет параметры запроса погоды, если необходимо
		var lat = Application.Properties.getValue("latitude");
		var lon = Application.Properties.getValue("longitude");
		if (!lat.equals("") && !lon.equals("")) {
			request.put("weather", {
				"appid" => Application.Properties.getValue("appID"),
				"lat" => lat,
				"lon" => lon,
				"provider" => wP
			});
		}
	}

	if (!request.isEmpty()) {

		// Заполняет необходимые параметры запроса
		request.put("device", id);
		request.put("app", p2uAppID); // идентификатор вашего приложения
		request.put("model", ds.partNumber);

		Toybox.Communications.makeWebRequest(
			"https://api.p2u.io", // Конечная точка API
			request,
			{
				:method => 3, // Communications.HTTP_REQUEST_METHOD_POST
				:headers => {
					"Content-Type" => 1 // Communications.REQUEST_CONTENT_TYPE_JSON
				},
				:responseType => 0 // Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
			},
			method(:onReceive)
		);
	}
}

Ответ API

API возвращает объект JSON с информацией о статусе разблокировки, уровне глюкозы и погоде.

Параметры ответа

Результаты проверки кода разблокировки (если запрос был отправлен):

  • response: целое число — код возврата
  • msg: строка — сообщение о результате проверки
  • expires: целое число — временная метка истечения срока действия кода в формате UNIXTIMESTAMP
  • qr: array — QR код для проверки покупки или серийного номера, если применимо

Ответ приложения NightScout (если запрос был отправлен):

  • bg: ассоциативный массив — отформатированный ответ от приложения NightScout
    • value: целое число — уровень глюкозы в крови в мг/дл
    • date: целое число — временная метка истечения срока действия кода в формате UNIXTIMESTAMP
    • direction: строка — тренд изменения уровня глюкозы в крови

Ответ Weather API (если запрос был отправлен):

  • weather: ассоциативный массив — отформатированный ответ от Weather API
    • provider: целое число — идентификатор поставщика погодных данных
    • weather: array — текущие погодные условия. Может возвращать одно или два значения; если два значения, они представляют дневные и ночные условия
    • temp: число с плавающей запятой — текущая температура в Цельсиях
    • feels_like: число с плавающей запятой — температура по ощущениям в Цельсиях
      Внимание! Отсутствует для MET Norway
    • pressure: целое число — атмосферное давление в hPa
    • humidity: целое число — влажность в %
    • precipitation: целое число — вероятность осадков в %
      Внимание! Отсутствует для MET Norway
    • wind: целое число — направление ветра в градусах
    • wind_speed: число с плавающей запятой — скорость ветра в м/с
    • temp_low: число с плавающей запятой — минимальная температура сегодня в Цельсиях
    • temp_high: число с плавающей запятой — максимальная температура сегодня в Цельсиях
    • sunrise_today: целое число — временная метка восхода солнца сегодня в формате UNIXTIMESTAMP
    • sunset_today: целое число — временная метка захода солнца сегодня в формате UNIXTIMESTAMP
    • sunrise_tomorrow: целое число — временная метка восхода солнца завтра в формате UNIXTIMESTAMP
    • sunset_tomorrow: целое число — временная метка захода солнца завтра в формате UNIXTIMESTAMP
    • aqi: ассоциативный массив — индекс качества воздуха
      • level: целое число — уровень индекса качества воздуха
      • value: целое число — значение индекса качества воздуха

Пример ответа

https://api.p2u.io
{
	"response": 103,
	"msg": "Free for beta tester",
	"expires": 0,
	"qr": [
		"11111110111011010110101111111",
		"10000010111001001101001000001",
		"10111010101100110110101011101",
		"10111010110101000001001011101",
		"10111010000001010100001011101",
		"10000010100110001101001000001",
		"11111110101010101010101111111",
		"00000000010010110111100000000",
		"11001110000100100100100101111",
		"11111100011011011010011111111",
		"01111011100111111100101000001",
		"01111100101100110111011011011",
		"00110110101010100101110000010",
		"11001000010001011000001011111",
		"01101010001001110100000001101",
		"10111101100010100101100110011",
		"01010111111100110100100100010",
		"10000100111011011000101111011",
		"00000110110110110100100000101",
		"00111100011100001100101100011",
		"11110111110010100111111111001",
		"00000000111001011101100010001",
		"11111110010001011111101011101",
		"10000010100010100111100010010",
		"10111010101101100111111111001",
		"10111010010010110000010000001",
		"10111010001111111110000001111",
		"10000010111101011111101101011",
		"11111110100011011110110010010"
	],
	"bg": {
		"value": -102,
		"date": 1730546101,
		"direction": ""
	},
	"weather": {
		"provider": 1,
		"weather": [
			89
		],
		"temp": 0.27,
		"feels_like": -3.14,
		"pressure": 999,
		"humidity": 78,
		"precipitation": 0,
		"wind": 120,
		"wind_speed": 2.96,
		"temp_low": -3.8,
		"temp_high": 0.27,
		"sunrise_today": 1730527969,
		"sunset_today": 1730551770,
		"sunrise_tomorrow": 1730614492,
		"sunset_tomorrow": 1730638051,
		"aqi": {
			"level": 1,
			"value": 38
		}
	}
}

Примечания

  • Запросы с bg требуют подключения к приложению NightScout.
  • Для каждого запроса с code API автоматически проверяет статус кода и активирует его, если он неактивен.
  • Обратите внимание, что параметры API могут обновляться или изменяться со временем для улучшения функциональности, совместимости и безопасности. Рекомендуется периодически проверять документацию API на предмет изменений, которые могут повлиять на интеграцию или использование.

Garmin

Для подробного описания функций и констант погоды Garmin SDK, обратитесь к этой ссылке. Вы можете сохранять значения, полученные через API, или результаты функций Garmin SDK, в зависимости от выбранного поставщика погоды, для обеспечения согласованности отображаемых значений на экране.

ID Описание День Ночь
0 Очистить
0x53

0x54
40 Ясно
23 В основном ясно
0x55

0x56
1 Частично облачно
0x57

0x58
22 Частично ясно
2 В основном облачно
0x59
52 Тонкие облака
20 Облачно
0x5A
45 Облачно, вероятность дождя
31 Мелкий дождь
0x3E
14 Легкий дождь
0x42
24 Легкие дожди
3 Дождь
0x43
25 Дожди
27 Вероятность дождей
0x46
11 Разрозненные дожди
15 Сильный дождь
26 Сильные дожди
28 Вероятность грозы
0x36

0x37
12 Разрозненные грозы
0x38
6 Гроза
0x39
8 Туман
0x4E
9 Пасмурно
29 Туман
39 Легкий туман
30 Пыль
0x4F
35 Песок
33 Дым
38 Вулканический пепел
37 Песчаная буря
13 Неизвестные осадки
5 Ветреная
0x52
36 Штормовой порыв ветра
48 Легкий снегопад
32 Торнадо
0x50
41 Ураган
42 Тропический шторм
50 Дождь с ледяными каплями
0x45
7 Смешанная зимняя погода
18 Легкий дождь со снегом
19 Сильный дождь со снегом
21 Дождь со снегом
49 Ледяной дождь
44 Вероятность дождя со снегом
47 Облачная вероятность дождя со снегом
34 Лед
51 Ледяной снег
43 Вероятность снега
0x4C

0x4D
16 Легкий снег
46 Облачная вероятность снега
0x4A
4 Снег
17 Сильный снег
0x4B
10 Град
0x3A

Open Weather Map

Посмотрите набор иконок для OpenWeatherMap в качестве примера здесь.

ID Описание День Ночь
2xx Гроза
200 Гроза с легким дождем
0x36

0x37
201 Гроза с дождем
0x38
202 Гроза с сильным дождем
210 Легкая гроза
211 Гроза
0x39
212 Сильная гроза
0x3B
221 Неровная гроза
230 Гроза с легким моросящим дождем
0x3A
231 Гроза с моросящим дождем
232 Гроза с сильным моросящим дождем
3xx Мелкий дождь
300 Легкий моросящий дождь
0x3C

0x3D
301 Мелкий дождь
0x3E
302 Сильный моросящий дождь
0x3F
310 Легкий моросящий дождь с дождем
0x40
311 Моросящий дождь
312 Сильный моросящий дождь с дождем
0x41
313 Ливневый дождь и моросящий дождь
314 Сильный ливневый дождь и моросящий дождь
321 Ливневой дождь с моросящим дождем
5xx Дождь
500 Легкий дождь
0x42
501 Умеренный дождь
0x43
502 Сильный дождь
0x44
503 Очень сильный дождь
504 Экстремальный дождь
511 Ледяной дождь
0x45
520 Легкий ливневой дождь
0x46
521 Ливневой дождь
522 Сильный ливневой дождь
531 Неровный ливневой дождь
6xx Снег
600 Легкий снег
0x4C

0x4D
601 Снег
0x4A
602 Сильный снег
611 Дождь с ледяными каплями
0x45
612 Легкий дождь с ледяными каплями
613 Дождь с ледяными каплями
615 Легкий дождь и снег
616 Дождь и снег
620 Легкий снеговой дождь
0x4B
621 Снеговой дождь
622 Сильный снеговой дождь
7xx Атмосфера
701 Туман
0x4E
711 Дым
0x4F
721 Легкий туман
731 Песчаные/пыльные вихри
741 Туман
751 Песок
0x4F
761 Пыль
762 Вулканический пепел
771 Штормовые порывы ветра
0x52
781 Торнадо
0x50
800 Очистить
800 Ясное небо
0x53

0x54
80x Облака
801 Немного облаков 11-25%
0x55

0x56
802 Рассеянные облака 25-50%
0x57

0x58
803 Обрывистые облака 51-84%
0x59
804 Пасмурные облака 85-100%
0x5A

QWeather

Вы можете проверить оригинальный набор иконок погоды, кликнув здесь

ID Описание День Ночь
302 Гроза с дождем
0x36

0x37
303 Сильная гроза
0x38
310 Дождевой шторм
0x39
317 Дождевой шторм до сильного дождевого шторма
304 Град
0x3A
311 Сильный дождевой шторм
0x3B
312 Сильный дождевой шторм
318 Сильный дождевой шторм до чрезвычайно сильного
309 Моросящий дождь
0x3C

0x3D
404 Дождь с ледяными каплями
0x3E
305 Легкий дождь
0x42
314 Легкий до умеренного дождя
306 Умеренный дождь
0x43
315 Умеренный до сильного дождя
399 Дождь
308 Экстремальный дождь
0x44
316 Сильный дождь до дождевого шторма
313 Замерзающий дождь
0x45
405 Дождь и снег
300 Ливневой дождь
0x46
301 Сильный ливневой дождь
307 Сильный дождь
350 Ливневой дождь
351 Сильный ливневой дождь
400 Легкий снег
0x4C

0x4D
408 Легкий до умеренного снега
499 Снег
401 Умеренный снег
0x4A
402 Сильный снег
409 Умеренный до сильного снега
410 Сильный снег до снежной бури
403 Снежная буря
0x4B
406 Ливневой дождь и снег
407 Снежный вихрь
456 Ливневой дождь и снег
457 Снежный вихрь
503 Песок
0x4E
504 Пыль
507 Песчаная буря
508 Песчаная буря
511 Умеренный туман
512 Сильный туман
513 Чрезвычайный туман
500 Туман
0x4F
501 Туман
502 Легкий туман
509 Плотный туман
510 Сильный туман
514 Сильный туман
515 Очень сильный туман
100 Солнечно
0x53

0x54
150 Очистить
101 Облачно
0x55

0x56
151 Облачно
102 Немного облаков
0x57

0x58
152 Немного облаков
103 Частично облачно
0x59
153 Частично облачно
104 Пасмурно
0x5A

MET Погода

Посмотрите набор иконок для MET Weather в качестве примера здесь.

ID Описание День Ночь
lightrainshowers Легкие дожди
0x36

0x37
lightrainshowersandthunder Легкие дожди и гром
rainshowersandthunder Дожди и гром
heavyrainshowersandthunder Сильные дожди и гром
heavyrainandthunder Сильный дождь и гром
0x38
rainandthunder Дождь и гром
lightrainandthunder Легкий дождь и гром
0x39
heavysleetandthunder Сильный дождь с ледяными каплями и гром
0x3B
lightsleetandthunder Легкий дождь с ледяными каплями и гром
0x3A
lightssleetshowersandthunder Легкие дожди с ледяными каплями и гром
sleetandthunder Дождь с ледяными каплями и гром
lightsleetshowers Легкие дожди с ледяными каплями
0x3C

0x3D
sleetshowers Дожди с ледяными каплями
sleetshowersandthunder Дожди с ледяными каплями и гром
heavysleetshowers Сильные дожди с ледяными каплями
heavysleetshowersandthunder Сильные дожди с ледяными каплями и гром
lightsleet Легкий дождь с ледяными каплями
0x3E
sleet Дождь с ледяными каплями
0x3F
heavysleet Сильный дождь с ледяными каплями
0x45
lightrain Легкий дождь
0x42
rain Дождь
0x43
heavyrain Сильный дождь
0x44
rainshowers Дожди
0x46
heavyrainshowers Сильные дожди
heavysnow Сильный снег
0x4B
heavysnowandthunder Сильный снег и гром
snow Снег
snowandthunder Снег и гром
lightsnowshowers Легкие дожди снега
0x4C

0x4D
lightssnowshowersandthunder Легкие дожди снега и гром
snowshowers Дожди снега
snowshowersandthunder Дожди снега и гром
heavysnowshowers Сильные дожди снега
heavysnowshowersandthunder Сильные дожди снега и гром
lightsnow Легкий снег
0x4A
lightsnowandthunder Легкий снег и гром
fog Туман
0x4F
clearsky Ясное небо
0x53

0x54
fair Ясно
0x55

0x56
partlycloudy Частично облачно
0x57

0x58
cloudy Облачно
0x59