Примечание. Эта статья относится только к публикации приложений в GitHub Marketplace. Дополнительные сведения о публикации GitHub Actions в GitHub Marketplaceсм. в разделе "Публикация действий в GitHub Marketplace".
Если вы предлагаете GitHub App в GitHub Marketplace, приложение должно идентифицировать пользователей в соответствии с процессом авторизации OAuth. Для поддержки этого процесса настраивать отдельное OAuth app не нужно. Дополнительные сведения см. в разделе "Проверка подлинности с помощью приложения GitHub от имени пользователя".
Шаг 1. Начальная покупка и событие веб-перехватчика
Прежде чем приобретать ваше приложение GitHub Marketplace, клиент выбирает план профиля. Он также выбирает, должно ли приложение приобретаться из личной учетной записи или учетной записи организации.
Чтобы завершить покупку, клиент нажимает кнопку Оформить заказ и начать установку.
Затем GitHub отправляет в ваше приложение веб-перехватчик 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 предлагает клиенту выбрать репозитории, к которым приложение будет иметь доступ. Затем GitHub устанавливает приложение в выбранной клиентом учетной записи и предоставляет доступ к выбранным репозиториям.
На этом этапе, если в параметрах GitHub App указан URL-адрес настройки, GitHub перенаправит клиента на него. Если URL-адрес настройки не указан, вы не сможете обрабатывать покупки GitHub App.
Примечание. URL-адрес настройки описывается как необязательный в параметрах GitHub App, но это обязательное поле, если вы хотите предлагать приложение в GitHub Marketplace. Дополнительные сведения см. в разделе Сведения о URL-адресе установки.
Если у вас OAuth app, GitHub не устанавливает его нигде. Вместо этого GitHub перенаправляет клиента на URL-адрес установки, указанный в профиле в GitHub Marketplace.
Когда клиент приобретает OAuth app, GitHub перенаправляет его на выбранный вами URL-адрес (настройки или установки), в который выбранный клиентом ценовой план включен в качестве параметра запроса: marketplace_listing_plan_id
.
Шаг 3. Авторизация
Когда клиент приобретает ваше приложение, необходимо провести клиента через процесс авторизации OAuth.
-
Если у вас GitHub App, начните процесс авторизации сразу после того, как GitHub перенаправит клиента на URL-адрес настройки. Выполните действия, описанные в разделе "Проверка подлинности с помощью приложения GitHub от имени пользователя".
-
Если у вас OAuth app, начните процесс авторизации сразу после того, как GitHub перенаправит клиента на URL-адрес установки. Выполните действия, описанные в разделе "Авторизация приложений OAuth".
Для любого типа приложения первым шагом является перенаправление клиента на страницу https://github.com/login/oauth/authorize.
После того как клиент завершит авторизацию, приложение получит маркер доступа OAuth для него. Он потребуется для выполнения следующего шага.
Примечание. При авторизации клиента в бесплатной пробной версии предоставьте ему тот же уровень доступа, который был бы у него в платном плане. Вы переведете его на платный план после окончания пробного периода.
Шаг 4. Подготовка учетных записей клиентов
Для каждой новой покупки в приложении должна подготавливаться учетная запись клиента. Использование маркера доступа, полученного для клиента на шаге 3. Авторизация, вызовите конечную точку "GET /user/marketplace_purchases
". Ответ будет содержать сведения об учетной записи (account
) клиента и о том, использует ли он бесплатную пробную версию (on_free_trial
). Используйте эти сведения для завершения настройки и подготовки.
Примечание. В текущей версии GitHub Marketplace клиент может приобрести приложение с помощью GitHub Marketplace, если у него уже есть существующая учетная запись, приобретенная на веб-сайте приложения. Если вы видите, что у вас уже есть учетная запись, настроенная для клиента, который приобрел приложение, сообщите о "дубликате" покупки в службу поддержки GitHub.
Если покупка предназначена для организации и оплачивается по модели "на пользователя", вы можете предложить клиенту выбрать сотрудников организации, у которых будет доступ к приобретенному приложению.
Вы можете настроить способ получения сотрудниками организации доступа к приложению. Ниже приведено несколько вариантов:
Цены на плоскую ставку: если покупка выполняется для организации с использованием ценообразования с фиксированной ставкой, ваше приложение может получить все члены организации через API и предложить владелец организации выбрать, какие участники будут платить пользователям на стороне интегратора.
Расценки за единицу. Один из способов подготовки рабочих мест с оплатой за единицу — разрешить пользователям занимать рабочие места при входе в приложение. Когда клиент достигнет максимального числа рабочих мест, ваше приложение может предупредить его о необходимости повысить уровень через GitHub Marketplace.