Compartir a través de


Cambiar el estado de facturación de la suscripción de un usuario

Usa este método en la API de compra de Microsoft Store para cambiar el estado de facturación de un complemento de suscripción para un usuario determinado. Puede cancelar, ampliar, reembolsar o deshabilitar la renovación automática de una suscripción.

Nota:

Microsoft solo puede usar este método para las cuentas de desarrollador aprovisionadas por Microsoft para poder crear complementos de suscripción para aplicaciones de Plataforma universal de Windows (UWP). Los complementos de suscripción no están disponibles actualmente para la mayoría de las cuentas de desarrollador.

La biblioteca Microsoft.StoreServices proporciona la funcionalidad de este método a través de la API StoreServicesClient.RecurrenceChangeAysnc.

Requisitos previos

Para usar este método, necesitará:

  • Un token de acceso de Azure AD que tiene el valor https://onestore.microsoft.comde URI de audiencia .
  • Clave de identificador de Microsoft Store que representa la identidad del usuario que tiene derecho a la suscripción que desea cambiar.

Para obtener más información, consulte Administración de derechos de producto desde un servicio.

Solicitar

Sintaxis de la solicitud

Método URI de solicitud
POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/{recurrenceId}/change

Encabezado de solicitud

Encabezado Tipo Descripción
Autorización string Necesario. Token de acceso de Azure AD con el formato Token<de portador>.
Host string Debe establecerse en el valor purchase.mp.microsoft.com.
Content-Length number Este encabezado especifica la longitud del cuerpo de la solicitud.
Content-Type string Especifica el tipo de solicitud y respuesta. Actualmente, el único valor admitido es application/json.

Parámetros de solicitud

Nombre Escribir Descripción Obligatorio
recurrenceId string Identificador de la suscripción que desea cambiar. Para obtener este identificador, llame a las suscripciones get para un método de usuario , identifique la entrada del cuerpo de la respuesta que representa el complemento de suscripción que desea cambiar y use el valor del campo id para la entrada.

Cuerpo de la solicitud

Campo Tipo Descripción Obligatorio
b2bKey string Clave de identificador de Microsoft Store que representa la identidad del usuario cuya suscripción desea cambiar.
changeType string Una de las siguientes cadenas que identifica el tipo de cambio que desea realizar:
  • Cancelar: cancela la suscripción.
  • Extender: amplía la suscripción. Si especifica este valor, también debe incluir el parámetro extensionTimeInDays .
  • Reembolso: devuelve la suscripción al cliente.
  • ToggleAutoRenew: deshabilita la renovación automática de la suscripción. Si la renovación automática está deshabilitada actualmente para la suscripción, este valor no hace nada.
extensionTimeInDays string Si el parámetro changeType tiene el valor Extend, este parámetro especifica el número de días para extender la suscripción. Sí, si changeType tiene el valor Extend; de lo contrario, no.

Ejemplo de solicitud

En el ejemplo siguiente se muestra cómo usar este método para ampliar el período de suscripción en 5 días. Reemplace el valor b2bKey por la clave de identificador de Microsoft Store que representa la identidad del usuario cuya suscripción desea cambiar.

POST https://purchase.mp.microsoft.com/v8.0/b2b/recurrences/mdr:0:bc0cb6960acd4515a0e1d638192d77b7:77d5ebee-0310-4d23-b204-83e8613baaac/change HTTP/1.1
Authorization: Bearer <your access token>
Content-Type: application/json
Host: https://purchase.mp.microsoft.com

{
  "b2bKey":  "eyJ0eXAiOiJ...",
  "changeType": "Extend",
  "extensionTimeInDays": "5"
}

Respuesta

Este método devuelve un cuerpo de respuesta JSON que contiene información sobre el complemento de suscripción que se modificó, incluidos los campos modificados. En el ejemplo siguiente se muestra un cuerpo de respuesta para este método.

{
  "items": [
    {
      "autoRenew":true,
      "beneficiary":"pub:gFVuEBiZHPXonkYvtdOi+tLE2h4g2Ss0ZId0RQOwzDg=",
      "expirationTime":"2017-06-16T03:07:49.2552941+00:00",
      "id":"mdr:0:bc0cb6960acd4515a0e1d638192d77b7:77d5ebee-0310-4d23-b204-83e8613baaac",
      "lastModified":"2017-01-10T21:08:13.1459644+00:00",
      "market":"US",
      "productId":"9NBLGGH52Q8X",
      "skuId":"0024",
      "startTime":"2017-01-10T21:07:49.2552941+00:00",
      "recurrenceState":"Active"
    }
  ]
}

Cuerpo de la respuesta

El cuerpo de la respuesta contiene los datos siguientes.

Valor Tipo Descripción
autoRenew Booleano Indica si la suscripción está configurada para renovarse automáticamente al final del período de suscripción actual.
beneficiario string Identificador del beneficiario del derecho asociado a esta suscripción.
expirationTime string La fecha y hora en que expirará la suscripción, en formato ISO 8601. Este campo solo está disponible cuando la suscripción está en determinados estados. La hora de expiración suele indicar cuándo expira el estado actual. Por ejemplo, para una suscripción activa, la fecha de expiración indica cuándo se producirá la siguiente renovación automática.
expirationTimeWithGrace string La fecha y hora en que expirará la suscripción, incluido el período de gracia, en formato ISO 8601. Este valor indica cuándo el usuario perderá el acceso a la suscripción después de que la suscripción no se haya renovado automáticamente.
id string Identificador de la suscripción. Use este valor para indicar qué suscripción desea modificar al llamar al cambio del estado de facturación de una suscripción para un método de usuario .
isTrial Booleano Indica si la suscripción es una prueba.
lastModified string Fecha y hora en que se modificó la suscripción por última vez, en formato ISO 8601.
market string Código de país (en formato ISO 3166-1 alfa-2 de dos letras) en el que el usuario adquirió la suscripción.
productId string Identificador de la Tienda del producto que representa el complemento de suscripción en el catálogo de Microsoft Store. Un ejemplo de Id. de la Tienda para un producto es 9NBLGGH42CFD.
skuId string Identificador de la Tienda para la SKU que representa el complemento de suscripción en el catálogo de Microsoft Store. Un id. de tienda de ejemplo para una SKU es 0010.
startTime string Fecha y hora de inicio de la suscripción, en formato ISO 8601.
recurrenceState string Uno de los siguientes valores:
  • Ninguno: indica una suscripción perpetua.
  • Activo: la suscripción está activa y el usuario tiene derecho a usar los servicios.
  • Inactivo: la suscripción ha pasado la fecha de expiración y el usuario desactivó la opción de renovación automática para la suscripción.
  • Cancelada: la suscripción se ha terminado intencionadamente antes de la fecha de expiración, con o sin reembolso.
  • InDunning: la suscripción está en asignación (es decir, la suscripción está a punto de expirar y Microsoft está intentando adquirir fondos para renovar automáticamente la suscripción).
  • Error: el período de asignación ha finalizado y la suscripción no se pudo renovar después de varios intentos.

Nota:

  • Error cancelado/ inactivo/son estados terminales. Cuando una suscripción entra en uno de estos estados, el usuario debe volver a comprar la suscripción para activarla de nuevo. El usuario no tiene derecho a usar los servicios en estos estados.
  • Cuando se cancela una suscripción, expirationTime se actualizará con la fecha y hora de la cancelación.
  • El identificador de la suscripción seguirá siendo el mismo durante toda su duración. No cambiará si la opción de renovación automática está activada o desactivada. Si un usuario vuelve a comprar una suscripción después de alcanzar un estado de terminal, se creará un nuevo identificador de suscripción.
  • El identificador de una suscripción debe usarse para ejecutar cualquier operación en una suscripción individual.
  • Cuando un usuario vuelve a comprar una suscripción después de cancelarla o interrumpirla, si consulta los resultados del usuario, obtendrá dos entradas: una con el identificador de suscripción anterior en un estado de terminal y otra con el nuevo identificador de suscripción en un estado activo.
  • Siempre es recomendable comprobar recurrenceState y expirationTime, ya que las actualizaciones de recurrenceState pueden retrasarse en unos minutos (o en ocasiones horas).
cancellationDate string Fecha y hora en que se canceló la suscripción del usuario, en formato ISO 8601.