Руководство
Введение
Боковая панель слева содержит ссылки на соответствующие разделы:
- Имя пользователя - ссылки на личный профиль.
- Панель управления - просмотр текущего статуса в виде диаграмм и графиков.
- Приложения - управление приложением.
- Коды разблокировки - автоматически сгенерированные или загруженные вами коды разблокировки.
- Платежи - история входящих платежей пользователей.
- Руководство - текущее руководство пользователя.
Панель управления
Вы можете установить общие фильтры для всех виджетов на панели управления:
- Валюта - валюта, в которую будут конвертированы входящие и исходящие суммы на панели управления.
- Период - период времени, за который данные отображаются в диаграммах и таблицах на панели управления. Определяет интервал, в течение которого анализируется и отображается информация и статистика о платежах, приложениях и других параметрах.
Баланс
Баланс включает следующие суммы:
- Валовая сумма - общая сумма всех пользовательских платежей за выбранный период, за исключением комиссий платежных систем и 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 этапа:
- Написание и отправка запроса на проверку кода
- Проверки на стороне API
- Получение и обработка ответа API
Отправка запроса
Для проверки кода пользователь вашего приложения должен ввести его в поле в настройках приложения.
<properties>
<property id="UnlockCode" type="string"></property>
<property id="UnlockResult" type="string">Checking...</property>
...
<properties>
<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:
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, // device part number
"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. Using HTTPS is mandatory.
- Тело запроса (передаваемые значения). Словарь ключей и значений:
- device - уникальный идентификатор устройства.
- app - уникальный идентификатор вашего приложения.
- model - device model identifier. Optional parameter. Data is used to display statistics for new devices.
- 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 |
Методы расчета Расчет цены в зависимости от срока и Расчет срока в зависимости от цены:
|
| |
Постоянный код:
| |
Пожертвование:
| |
102 |
|
201 |
|
202 |
|
203 |
|
204 |
|
301 |
|
302 |
|
303 |
|
304 |
|
401 |
|
402 |
|
500 |
|
Проверка ответа
Затем вам следует проверить ответ от сервера API Pay-to-use:
function onReceive(responseHeader, data) as Void {
if (responseHeader == 200) { Toybox.Background.exit(data); }
}
Вы можете проверить все заголовки и коды, вы можете отображать свои собственные сообщения для удобства пользователя, но в самом простом виде проверка будет выглядеть примерно так:
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) |
Платежи
При переходе в этот раздел откроется список платежей пользователей.
Для приема платежей используются следующие платежные системы:
После учета комиссии платежной системы PayToUse взимает комиссию в размере 13%. Мы постоянно работаем над снижением комиссий.
Если возникают споры или возвраты средств в системе оплаты, штрафы системы оплаты выписываются разработчику заново. Поэтому следует не допускать таких ситуаций. Комиссия PayToUse не взимается в спорных ситуациях.
Список платежей
Вы можете искать по электронной почте или отправленному коду в верхнем поисковом поле. Найденные платежи будут отображены в списке. Вы можете использовать весь или часть адреса электронной почты или отправленного кода в качестве критерия поиска. Совпадения будут подсвечены цветом. Поиск и фильтры работают одновременно и не исключают друг друга.
Последний использованный фильтр сохраняется для пользователя. То есть, при следующем входе на страницу последний использованный фильтр будет применен автоматически. Для списка платежей доступны следующие фильтры:
- Колонки - выберите столбцы таблицы для отображения в списке платежей.
- Приложение - отображение платежей только для выбранных приложений.
- Система - отображение платежей только из выбранных платежных систем.
- Статус - отображение платежей только с выбранными статусами.
Список столбцов в таблице платежей:
- Приложение - ваше приложение. Вы можете перейти по ссылке для редактирования его настроек.
- # - уникальный порядковый номер платежа. Он присваивается платежу автоматически, когда пользователь переходит от формы оплаты на страницу оплаты в платежной системе. Вы можете нажать на ссылку, чтобы просмотреть детали платежа.
- Комментарии - сообщение от пользователя, введенное в форме оплаты.
- Система - платежная система, выбранная пользователем.
- Статус - статус платежа. (см. Статус платежа)
- Email - электронная почта пользователя, указанная в форме оплаты.
- Срок - период действия отправленного кода (указанный в настройках приложения).
- Создано - дата создания платежа.
- Сумма счета - сумма платежа, взимаемая с пользователя. Указывается в форме оплаты в зависимости от настроек приложения.
- Дата платежа - дата платежа.
- Сумма платежа - сумма платежа, подтвержденная платежной системой.
- Отправленный код - код, отправленный пользователю.
- Доступная сумма - доступная сумма для вывода.
- Сумма выплат - сумма снятых средств для платежа.
Изменения в платеже невозможны.
Статус платежа
В течение своего жизненного цикла платеж проходит через различные стадии, которые можно отслеживать по статусу платежа.
Статус | Описание |
---|---|
Неполный | Статус назначается платежам, для которых не было выполнено никаких действий. Платеж создается сразу, как только пользователь переходит от формы платежа к форме платежной системы. Платежу присваивается уникальный серийный номер, а также основные атрибуты платежа: сумма, платежная система, дата. |
Успешно | Статус назначается платежам, которые получили положительный ответ от платежной системы. Следующим шагом является отправка электронного письма пользователю, содержащего сгенерированный код или другие данные в зависимости от настроек приложения. Если платеж остается в этом статусе, следует обратить особое внимание, так как последующие действия не были выполнены. |
Ошибка | Статус назначается платежам, для которых получен отрицательный ответ от платежной системы. Последующие шаги не выполняются. Необходимо обратить особое внимание на такие платежи, так как статус на стороне платежной системы может быть обработан с задержкой. |
Ожидание | Статус назначается платежам, для которых получен положительный ответ от платежной системы, и все последующие шаги были успешно завершены. Вывод средств для платежей с этим статусом недоступен. Платежи автоматически переходят в следующий статус через 7 дней. |
Доступно | Вывод средств доступен для платежей в этом статусе. |
Отправка | Статус включается для платежей, включенных в следующий вывод. Если вывод отменен или отклонен, статус платежа возвращается в Доступно. |
Отправлено | Статус активирован для платежей, по которым производится вывод. Ожидается подтверждение получения средств. |
Завершено | Статус включен для платежей с успешным выводом средств. Вы можете установить статус вручную, подтвердив вывод в соответствующем разделе. Также статус автоматически изменяется через 14 дней после вывода средств. |
Возвращено | Платежи, для которых был выдан возврат, переводятся в этот статус. При выполнении возврата взимается комиссия за возврат. Комиссия удерживается из суммы вывода. |
Вывод средств
При переходе в этот раздел откроется список ваших выводов.
Список выводов средств
Последний использованный фильтр сохраняется для пользователя. Таким образом, при следующем входе на страницу будет автоматически применен последний использованный фильтр. Для списка выводов доступны следующие фильтры:
- Колонки - отображение только выбранных столбцов в списке выводов.
- Статус - отображение только выводов, находящихся в выбранных статусах.
Список столбцов в таблице выводов:
- # - уникальный порядковый номер вывода. Он присваивается выводу автоматически при сохранении. Вы можете щелкнуть по ссылке, чтобы посмотреть подробности вывода.
- Статус - статус вывода. (см. Статус вывода)
- Создано - дата запроса вывода.
- Сумма - сумма вывода.
- Вывод средств - дата отправки вывода.
- Кнопки для действий с выводами. Например, подтверждение.
Вы можете подтвердить вывод, когда он находится в статусе Отправлено.
Статус вывода
В течение своего жизненного цикла вывод проходит через различные состояния, которые можно отслеживать по статусу вывода.
Статус | Описание |
---|---|
Ожидание | Статус назначается выводам при создании, для которых не было выполнено никаких действий. |
Отменено | Статус назначается отмененным выводам. Отмены могут происходить по различным причинам. Например, метод получения средств не указан. Все платежи из этого вывода переходят в статус Доступно и снова доступны для вывода. |
Отправлено | Статус устанавливается для вывода средств при его отправке. |
Завершено | Статус устанавливается для ручного вывода, когда разработчик получает его для подтверждения получения. Или автоматически через 14 дней после отправки. |
Отклонено | Статус устанавливается для вывода, когда банк или платежная система возвращает средства после отправки. Все платежи из этого вывода переходят в статус Доступно и снова доступны для вывода. |