Nota: Este artículo se aplica solo a las aplicaciones de publicación en GitHub Marketplace. Para más información sobre la publicación de GitHub Actions en GitHub Marketplace, consulta "Publicar acciones en GitHub Marketplace".
Para más información sobre la actualización y el cambio a una versión anterior en relación con la facturación, consulta "Utilizar la API de GitHub Marketplace en tu app".
Paso 1. Evento de cambio en el plan de precios
GitHub envía el webhook marketplace_purchase
con la acción changed
a la aplicación, cuando un cliente realiza cualquiera de estos cambios en su pedido en GitHub Marketplace:
- Mejorar a un plan de precios más caro o degradarlo a uno más barato.
- Agregar o eliminar plazas a su plan existente.
- Cambiar el ciclo de facturación.
GitHub enviará el webhook cuando el cambio entre en vigor. Por ejemplo, cuando un cliente degrada un plan, GitHub envía el webhook al final del ciclo de facturación del cliente. GitHub envía un webhook a tu app inmediatamente cuando un cliente mejora su plan para permitirle el acceso al servicio nuevo de inmediato. Si un cliente cambia de un ciclo mensual a uno anual, esto se considera como una mejora. Para más información sobre qué acciones se consideran una actualización o un cambio a una versión anterior, consulta "Facturar a los clientes".
Lea effective_date
, marketplace_purchase
y previous_marketplace_purchase
del webhook marketplace_purchase
para actualizar la fecha de inicio del plan y realizar cambios en el período de facturación y el plan de precios del cliente. Consulta "Eventos de webhook para la API de GitHub Marketplace" para ver un ejemplo de la carga del evento marketplace_purchase
.
Si la aplicación ofrece evaluaciones gratuitas, recibirá el webhook marketplace_purchase
con la acción changed
cuando expire la evaluación gratuita. Si el periodo de prueba gratuito del cliente caduca, mejora al cliente a la versión pagada del plan de prueba gratuito.
Paso 2. Actualizar las cuentas de usuario
Necesitarás actualizar la información de las cuentas de usuario para que se reflejen los cambios en el ciclo de facturación y en el plan de precios que el cliente hizo en su orden de GitHub Marketplace. Muestra las actualizaciones del plan de precios seat_count
(para los planes de precios por unidad) y el período de facturación en el sitio web de la aplicación en Marketplace o en su interfaz de usuario cuando reciba el webhook de acción changed
.
Cuando un cliente degrada un plan, se recomienda revisar si éste excedió los límites del mismo y contactarlos directamente en tu IU o por teléfono o correo electrónico.
Para motivar a las personas a mejorar el plan, puedes mostrar una URL de mejora en la IU de tu app. Vea "Acerca de las direcciones URL de actualización" para más información.
Nota: Se recomienda realizar una sincronización periódica mediante GET /marketplace_listing/plans/:id/accounts
para asegurarse de que la aplicación tiene el plan correcto, la información del período de facturación y el recuento de unidades (para los precios por unidad) de cada cuenta.
Pagos de mejora fallidos
En caso de que un cliente mejore su plan y el pago falle, GitHub revertirá su suscripción de GitHub Marketplace a su estado previo. GitHub también enviará un correo electrónico al cliente para informarle de dicho fallo y para permitirles volver a intentar la compra. Recibirá un webhook con la acción changed
en el que se solicita revertir al plan anterior.
Acerca de las URL de mejora
Puedes redirigir a los usuarios desde la IU de tu app para que mejoren su plan en GitHub a través de una URL de mejora:
https://www.github.com/marketplace/<LISTING_NAME>/upgrade/<LISTING_PLAN_NUMBER>/<CUSTOMER_ACCOUNT_ID>
Por ejemplo, si notas que el cliente tiene un plan de 5 personas y necesita cambiar a uno de 10, puedes mostrar un boton en la IU de tu app, el cual diga "Te mostramos como mejorar tu plan", o bien, mostrar un letrero con un enlace a la URL de mejora. La URL de mejora llevará al cliente a la página de confirmación de mejora para el plan de tu listado.
Use LISTING_PLAN_NUMBER
para el plan que el cliente quiera comprar. Al crear planes de precios, reciben un valor LISTING_PLAN_NUMBER
, que es único para cada plan de la oferta, y un valor LISTING_PLAN_ID
, que es único para cada plan de GitHub Marketplace. Puede encontrar estos números al enumerar planes, que identifica los planes de precios de la oferta. Usa LISTING_PLAN_ID
y el punto de conexión "GET /marketplace_listing/plans/{plan_id}/accounts
" para obtener CUSTOMER_ACCOUNT_ID
.
Nota: Si el cliente realiza la actualización a unidades adicionales (como puestos), todavía puede enviarlo al plan adecuado para que lo compre, pero en este momento no podemos admitir parámetros unit_count
.