Note
Эта статья относится только к публикации приложений в GitHub Marketplace. Дополнительные сведения о публикации GitHub Actions в GitHub Marketplaceсм. в разделе "Публикация действий в GitHub Marketplace".
Если вы предлагаете GitHub App в GitHub Marketplace, приложение должно идентифицировать пользователей в соответствии с процессом авторизации OAuth. Для поддержки этого процесса настраивать отдельное OAuth app не нужно. Дополнительные сведения см. в разделе "Проверка подлинности с помощью приложения GitHub от имени пользователя".
Шаг 1. Начальная покупка и событие веб-перехватчика
Прежде чем приобретать ваше приложение GitHub Marketplace, клиент выбирает план профиля. Он также выбирает, должно ли приложение приобретаться из личной учетной записи или учетной записи организации.
Чтобы завершить покупку, клиент нажимает кнопку Оформить заказ и начать установку.
Затем GitHub Enterprise Cloud отправляет в ваше приложение веб-перехватчик marketplace_purchase
с действием purchased
.
Чтобы определить, какой план приобрел клиент и когда начинается выставление счетов, в том числе его следующий период, прочитайте объекты effective_date
и marketplace_purchase
из веб-перехватчика marketplace_purchase
.
Если предлагается бесплатная пробная версия приложения, прочитайте атрибут marketplace_purchase[on_free_trial]
веб-перехватчика. Если значение равно true
, приложение должно отслеживать дату начала (effective_date
) и окончания (free_trial_ends_on
) бесплатного пробного периода. Используйте дату free_trial_ends_on
для отображения количества дней до конца бесплатного пробного периода в пользовательском интерфейсе приложения. Это можно делать в баннере или в пользовательском интерфейсе выставления счетов. Сведения об обработке отмены до окончания бесплатной пробной версии см. в разделе "Обработка отмены плана". См. раздел "Обработка изменений плана", чтобы узнать, как перейти бесплатную пробную версию на платный план при истечении срока действия бесплатной пробной версии.
Пример полезных marketplace_purchase
данных события см. в разделе "События веб-перехватчика для API GitHub Marketplace".
Шаг 2. Установка
Если у вас GitHub App, при его приобретении GitHub Enterprise Cloud предлагает клиенту выбрать репозитории, к которым приложение будет иметь доступ. Затем GitHub Enterprise Cloud устанавливает приложение в выбранной клиентом учетной записи и предоставляет доступ к выбранным репозиториям.
На этом этапе, если в параметрах GitHub App указан URL-адрес настройки, GitHub Enterprise Cloud перенаправит клиента на него. Если URL-адрес настройки не указан, вы не сможете обрабатывать покупки GitHub App.
Note
URL-адрес установки описан как необязательный в параметрах GitHub App, но это обязательное поле, если вы хотите предложить приложение в GitHub Marketplace. Дополнительные сведения см. в разделе Сведения о URL-адресе установки.
Если у вас OAuth app, GitHub Enterprise Cloud не устанавливает его нигде. Вместо этого GitHub Enterprise Cloud перенаправляет клиента на URL-адрес установки, указанный в профиле в GitHub Marketplace.
Когда клиент приобретает OAuth app, GitHub Enterprise Cloud перенаправляет его на выбранный вами URL-адрес (настройки или установки), в который выбранный клиентом ценовой план включен в качестве параметра запроса: marketplace_listing_plan_id
.
Шаг 3. Авторизация
Когда клиент приобретает ваше приложение, необходимо провести клиента через процесс авторизации OAuth.
-
Если у вас GitHub App, начните процесс авторизации сразу после того, как GitHub Enterprise Cloud перенаправит клиента на URL-адрес настройки. Выполните действия, описанные в разделе "Проверка подлинности с помощью приложения GitHub от имени пользователя".
-
Если у вас OAuth app, начните процесс авторизации сразу после того, как GitHub Enterprise Cloud перенаправит клиента на URL-адрес установки. Выполните действия, описанные в разделе "Авторизация приложений OAuth".
Для любого типа приложения первым шагом является перенаправление клиента на страницу https://github.com/login/oauth/authorize.
После того как клиент завершит авторизацию, приложение получит маркер доступа OAuth для него. Он потребуется для выполнения следующего шага.
Note
При авторизации клиента на бесплатной пробной версии предоставьте им тот же доступ, что и в платном плане. Вы переведете его на платный план после окончания пробного периода.
Шаг 4. Подготовка учетных записей клиентов
Для каждой новой покупки в приложении должна подготавливаться учетная запись клиента. Использование маркера доступа, полученного для клиента на шаге 3. Авторизация, вызовите конечную точку "GET /user/marketplace_purchases
". Ответ будет содержать сведения об учетной записи (account
) клиента и о том, использует ли он бесплатную пробную версию (on_free_trial
). Используйте эти сведения для завершения настройки и подготовки.
Note
В текущей версии GitHub Marketplaceклиент может приобрести приложение с помощью GitHub Marketplace при наличии существующей учетной записи, приобретенной на веб-сайте приложения. Если вы видите, что у вас уже есть учетная запись, настроенная для клиента, который приобрел приложение, сообщите о "дубликате" покупки в службу поддержки GitHub.
Если покупка предназначена для организации и оплачивается по модели "на пользователя", вы можете предложить клиенту выбрать сотрудников организации, у которых будет доступ к приобретенному приложению.
Вы можете настроить способ получения сотрудниками организации доступа к приложению. Ниже приведено несколько вариантов:
Цены на плоскую ставку: если покупка выполняется для организации с использованием ценообразования с фиксированной ставкой, ваше приложение может получить все члены организации через API и предложить владелец организации выбрать, какие участники будут платить пользователям на стороне интегратора.
Расценки за единицу. Один из способов подготовки рабочих мест с оплатой за единицу — разрешить пользователям занимать рабочие места при входе в приложение. Когда клиент достигнет максимального числа рабочих мест, ваше приложение может предупредить его о необходимости повысить уровень через GitHub Marketplace.