Skip to main content

Обработка изменений плана

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

Note

Эта статья относится только к публикации приложений в GitHub Marketplace. Дополнительные сведения о публикации GitHub Actions в GitHub Marketplaceсм. в разделе "Публикация действий в GitHub Marketplace".

Дополнительные сведения об обновлении и понижении уровня, связанном с выставлением счетов, см. в разделе "Использование API GitHub Marketplace в приложении".

Шаг 1. Событие изменения плана ценообразования

GitHub отправляет веб-перехватчик marketplace_purchase с действием changed в приложение, когда клиент вносит такие изменения в свой заказ GitHub Marketplace:

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

GitHub отправит веб-перехватчик, когда изменение вступит в силу. Например, когда клиент понижает уровень тарифного плана, GitHub отправляет веб-перехватчик в конце цикла выставления счетов клиента. GitHub отправляет веб-перехватчик в приложение сразу, если клиент повышает уровень плана, чтобы сразу разрешить ему доступ к новой службе. Если клиент переходит с месячного на годовой цикл выставления счетов, это считается повышением уровня. Дополнительные сведения о действиях, которые считаются обновлением или понижением, см. в разделе "Клиенты для выставления счетов".

Ознакомьтесь с effective_date, marketplace_purchase и previous_marketplace_purchase в веб-перехватчике marketplace_purchase, чтобы обновить дату начала действия плана и внести изменения в цикл выставления счетов и тарифный план клиента. Пример полезных marketplace_purchase данных события см. в разделе "События веб-перехватчика для API GitHub Marketplace".

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

Шаг 2. Обновление учетных записей клиентов

Вам потребуется обновить сведения об учетной записи клиента, чтобы отразить цикл выставления счетов и изменения в плане ценообразования, внесенные клиентом в свой заказ GitHub Marketplace. Отображение повышения уровня для тарифного плана seat_count (для тарифных планов с оплатой по числу единиц) и цикла выставления счетов на веб-сайте приложения Marketplace или в пользовательском интерфейсе приложения при получении веб-перехватчика действия changed.

Когда клиент понижает уровень тарифного плана, рекомендуется проверить, не превысил ли клиент лимиты для плана, и взаимодействовать с клиентом напрямую в пользовательском интерфейсе или связаться с ним по телефону или по электронной почте.

Чтобы мотивировать пользователей повысить уровень, вы можете настроить отображение URL-адреса обновления в пользовательском интерфейсе приложения. Дополнительные сведения см. в разделе Сведения об URL-адресах обновления.

Note

Мы рекомендуем выполнять периодическую синхронизацию, GET /marketplace_listing/plans/:id/accounts чтобы убедиться, что приложение имеет правильный план, период выставления счетов сведения и количество единиц (для цен на единицу) для каждой учетной записи.

Ошибка платежа при повышении уровня

В случае, если клиент обновляет свой план и платеж завершается сбоем, GitHub отменяет подписку GitHub Marketplace в предыдущее состояние. GitHub также отправляет клиенту сообщение электронной почты, чтобы сообщить о сбое и позволить им повторно приобрести покупку. Вы получите веб-перехватчик с действием changed, которое запрашивает возврат к предыдущему плану.

Сведения об URL-адресах обновления

Вы можете перенаправить пользователей из пользовательского интерфейса приложения, чтобы повысить уровень в GitHub с помощью URL-адреса обновления:

https://www.github.com/marketplace/<LISTING_NAME>/upgrade/<LISTING_PLAN_NUMBER>/<CUSTOMER_ACCOUNT_ID>

Например, если вы заметили, что клиент использует тарифный план, рассчитанный на 5 пользователей, и ему требуется перейти на план на 10 пользователей, можно отобразить в пользовательском интерфейсе приложения кнопку с текстом "Действия для повышения уровня" или баннер со ссылкой на URL-адрес обновления. URL-адрес обновления перенаправляет клиента на страницу, где можно подтвердить повышение уровня тарифного плана.

Используйте LISTING_PLAN_NUMBER для тарифного плана, который клиент хочет приобрести. При создании новых тарифных планов они получают LISTING_PLAN_NUMBER, который является уникальным для каждого плана в листинге, а также LISTING_PLAN_ID, который также является уникальным для каждого плана в GitHub Marketplace. Эти цифры можно найти при перечислении планов, которые идентифицируют тарифные планы в вашем листинге. Используйте и конечную LISTING_PLAN_ID точку "GET /marketplace_listing/plans/{plan_id}/accounts" для получения .CUSTOMER_ACCOUNT_ID

Note

Если клиент обновляется до дополнительных единиц (например, мест), вы по-прежнему можете отправить их в соответствующий план покупки, но мы не можем поддерживать unit_count параметры в настоящее время.