Nota:
Este artículo se aplica solo a la publicación de aplicaciones en GitHub Marketplace. Para obtener más información sobre la publicación de GitHub Actions en GitHub Marketplace, consulta Publicar acciones en GitHub Marketplace.
Para obtener más información de actualización y degradación en relación con la facturación, consulta Uso de la API de Marketplace de GitHub en la aplicación.
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:
- Pasar a un plan de precios más caro o rebajar a uno más barato.
- Agregar o eliminar plazas a su plan existente.
- Cambia el ciclo de facturación.
GitHub enviará el webhook cuando el cambio surta efecto. 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 la aplicación inmediatamente cuando un cliente actualiza su plan para permitir el acceso al nuevo servicio inmediatamente. 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 los 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 ciclo de facturación y el plan de precios del cliente. Consulta Eventos de webhook de la API de GitHub Marketplace para ver un ejemplo de la carga del evento marketplace_purchase.
Si tu aplicación ofrece pruebas gratuitas, recibirás el webhook marketplace_purchase con la acción changed cuando expire la prueba gratuita. Si el periodo de prueba gratuito del cliente caduca, actualiza al cliente a la versión de pago del plan de prueba.
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 actualizar, puedes mostrar una URL de actualización en la interfaz de usuario de tu aplicación. Consulte Acerca de las direcciones URL de actualización para obtener 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 actualización
Puede redirigir a los usuarios desde la interfaz de usuario de la aplicación para actualizar en GitHub mediante una dirección URL de actualización:
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 nuevos planes de precios, reciben un valor LISTING_PLAN_NUMBER, que es único para cada plan en su listado, 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), puede seguir enviándolas al plan adecuado para que se compren, pero en este momento no podemos admitir parámetros unit_count.