Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

Обработка новых покупок и бесплатных пробных версий

Когда клиент приобретает платный план, бесплатную пробную версию или бесплатную версию приложения GitHub Marketplace, вы получите веб-перехватчик marketplace_purchase события с действием purchased, которое запускает поток приобретения.

Если вы предлагаете GitHub App в GitHub Marketplace, приложение должно идентифицировать пользователей в соответствии с процессом авторизации OAuth. Для поддержки этого процесса настраивать отдельное OAuth App не нужно. Дополнительные сведения см. в разделе Определение и авторизация пользователей для GitHub Apps.

Шаг 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 см. в разделе GitHub Marketplace.

Шаг 2. Установка

Если у вас GitHub App, при его приобретении GitHub Enterprise Cloud предлагает клиенту выбрать репозитории, к которым приложение будет иметь доступ. Затем GitHub Enterprise Cloud устанавливает приложение в выбранной клиентом учетной записи и предоставляет доступ к выбранным репозиториям.

На этом этапе, если в параметрах GitHub App указан URL-адрес настройки, GitHub Enterprise Cloud перенаправит клиента на него. Если URL-адрес настройки не указан, вы не сможете обрабатывать покупки GitHub App.

Примечание. URL-адрес настройки описывается как необязательный в параметрах GitHub App, но это обязательное поле, если вы хотите предлагать приложение в GitHub Marketplace.

Если у вас 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 Apps.

  • Если у вас OAuth App, начните процесс авторизации сразу после того, как GitHub Enterprise Cloud перенаправит клиента на URL-адрес установки. Выполните инструкции из раздела Авторизация OAuth Apps.

Для любого типа приложения первым шагом является перенаправление клиента на страницу https://github.com/login/oauth/authorize.

После того как клиент завершит авторизацию, приложение получит маркер доступа OAuth для него. Он потребуется для выполнения следующего шага.

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

Шаг 4. Подготовка учетных записей клиентов

Для каждой новой покупки в приложении должна подготавливаться учетная запись клиента. Используя маркер доступа, полученный для клиента на шаге 3 Авторизация, вызовите конечную точку получения списка подписок для пользователя, прошедшего проверку подлинности. Ответ будет содержать сведения об учетной записи (account) клиента и о том, использует ли он бесплатную пробную версию (on_free_trial). Используйте эти сведения для завершения настройки и подготовки.

Примечание. В текущей версии GitHub Marketplace клиент может приобрести приложение с помощью GitHub Marketplace, если у него уже есть существующая учетная запись, приобретенная на веб-сайте приложения. Если вы видите, что у вас уже есть учетная запись, настроенная для клиента, который приобрел приложение, сообщите о "дубликате" покупки в службу поддержки GitHub.

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

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

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

Расценки за единицу. Один из способов подготовки рабочих мест с оплатой за единицу — разрешить пользователям занимать рабочие места при входе в приложение. Когда клиент достигнет максимального числа рабочих мест, ваше приложение может предупредить его о необходимости повысить уровень через GitHub Marketplace.