Cómo permitir que un usuario cambie un plan de suscripción

Nota
Si desea permitir que los usuarios cambien el plan en su proyecto, debe establecer el funcionamiento correcto de la interfaz de pago. Para ello, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.
Puede permitir que los usuarios cambien el plan de suscripción en el periodo actual o en el siguiente, y también que cambien el plan varias veces al día.

Cómo funciona

  • Al elegir un nuevo plan, se reembolsa al usuario el saldo del periodo no utilizado de la suscripción actual.
  • El pago del nuevo plan de suscripción se realiza íntegramente con cargo al saldo del usuario. Si su saldo es insuficiente, se realiza un pago adicional mediante cualquiera de los métodos de pago permitidos en el proyecto.
  • Al cambiar de plan, los fondos se cargan a cuenta inmediatamente después de confirmar el pago, aunque el proyecto esté configurado para cambiar de plan a partir del siguiente periodo de facturación.
  • Si la moneda del nuevo plan es diferente de la moneda del plan actual, la compra del nuevo plan se hará con una conversión de moneda.

No se puede hacer un cambio de plan si:
  • el usuario ya tiene una suscripción activa con el plan al que está cambiando el plan actual
  • la suscripción que el usuario desea modificar no se encuentra en el estado Active
  • el plan de suscripción que el usuario desea cambiar es del tipo Lifetime plan: este tipo de suscripción solo puede cancelarse dentro del periodo de reembolso especificado
Nota
Si los grupos de planes están configurados en su proyecto, el cambio de plan solo puede realizarse dentro de un grupo. Para obtener más información sobre el funcionamiento de los grupos, consulte las instrucciones sobre Cómo establecer productos basados en suscripción y grupos de planes.

Cómo conseguirlo

  1. Abra su proyecto en Cuenta del editor.
  2. Haga clic en Subscriptions en la barra lateral y vaya a la sección Settings.
  3. En la sección Changing plan, establezca la opción Posibilidad de elegir un plan diferente estableciendo el conmutador en On.
  4. Los cambios de plan se permiten a partir del siguiente periodo predeterminado. Para permitir el cambio de plan en el periodo actual, seleccione Ahora. Si selecciona esta opción, el plan cambia inmediatamente después de confirmarse el pago.
  5. Para permitir cambios de plan más de una vez al día, establezca el conmutador “Ability to choose a different plan on the same day” en On.
  6. Al abrir la interfaz de pago, utilice:

Abrir la interfaz de pago mediante la llamada API Crear token del lado del servidor

  1. Obtenga un token para abrir la interfaz de pago transmitiendo lo siguiente al método:
    • valor change_plan en el parámetro purchase.subscription.operation.
    • ID del nuevo plan en el parámetro purchase.subscription.plan_id.
    • ID del producto basado en suscripción en el parámetro purchase.subscription.product_id si utiliza productos basados en suscripción. Para obtenerlo, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.
  2. Abra la interfaz de pago de una de las siguientes maneras:

Abrir la interfaz de pago en la página de gestión de suscripciones mediante la llamada API del lado del cliente

Si Xsolla Login está configurado en su proyecto, puede utilizar la llamada API del lado del cliente para obtener un enlace para abrir la interfaz de pago. El enlace devuelto en la respuesta le permite abrir la interfaz de pago de la página de gestión de suscripciones, en la cual los usuarios pueden seleccionar una suscripción activa y modificarla.

Para ello, en el lado del cliente de su aplicación, implemente la recepción de un enlace a la interfaz de pago utilizando una solicitud HTTP POST: https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/manage. La solicitud debe contener un encabezado Authorization: Bearer <client_user_jwt>, en el cual <client_user_jwt> es el JSON Web Token (JWT) del usuario, un token único codificado en Base64 según el estándar Base64. Para obtener el token:

Especifique el ID del proyecto como parámetro de la ruta projectId. Encontrará este parámetro en su Cuenta del editor junto al nombre del proyecto. Especifique country como parámetro de consulta: la designación de dos letras del país del usuario según la norma ISO 3166-1 alpha-2. Afecta a la elección de la configuración regional y de la moneda. Si no se especifica este parámetro, el país vendrá determinado por la dirección IP del usuario.

Transmita parámetros adicionales para la personalización si es necesario.

Parámetros del cuerpo de la solicitud:

ParámetroTipoDescripción
plan_external_id
stringObligatorio. El ID externo del plan de suscripción. Puede encontrarlo en la sección Cuenta del editor > Subscriptions > Subscription Plans.
settings
objectConfiguración personalizada del proyecto (objeto).
settings.ui
objectConfiguración de la interfaz (objeto).
settings.ui.size
stringTamaño de la interfaz de pago. Puede ser:
  • small: el tamaño mínimo posible de la interfaz de pago. Utilice este valor cuando el tamaño de la ventana esté estrictamente limitado (dimensiones: 620 x 630 px)
  • medium: tamaño recomendado. Utilice este valor para visualizar la interfaz de usuario de pago en un Lightbox (dimensiones: 740 x 760 px)
  • large: el tamaño óptimo para visualizar la interfaz de pago en una nueva ventana o pestaña (dimensiones: 820 x 840 px)
settings.ui.theme
stringTema de la interfaz de pago. Puede ser default, default_dark o ID de tema personalizado.
settings.ui.version
stringTipo de dispositivo. Puede ser desktop (por defecto) o mobile.
settings.ui.desktop
objectConfiguración de la interfaz para la versión de escritorio (objeto).
settings.ui.desktop.header
objectConfiguración del encabezado (objeto).
settings.ui.desktop.header.close_button
booleanSi se muestra un botón Close en el escritorio de Pay Station. El botón cierra Pay Station y redirige al usuario a la URL especificada en el parámetro settings.return_url. false por defecto.
settings.ui.desktop.header.is_visible
booleanMostrar o no el encabezado en la interfaz de pago.
settings.ui.desktop.header.is_visible.type
stringAspecto del encabezado. Puede ser compact (en cuyo caso el nombre del juego y el ID de usuario no se mostrarán en el encabezado) o normal.
booleanSi es true, el encabezado muestra su logotipo (proporcione primero la imagen a su gestor del éxito del cliente).
settings.ui.desktop.header.visible_name
booleanMostrar o no el nombre del proyecto en el encabezado.
settings.ui.desktop.header.type
stringCómo mostrar el encabezado. Puede ser compact (oculta el nombre del proyecto y el ID de usuario) o normal (por defecto).
settings.ui.mobile.mode
stringUn usuario sólo puede pagar usando sus métodos de pago guardados. Pueden ser saved_accounts.
booleanSi desea ocultar o no el pie de página en la versión móvil de la interfaz de pago.
settings.ui.mobile.header.close_button
booleanSi se muestra o no un botón Close en la versión móvil de Pay Station. El botón cierra Pay Station y redirige al usuario a la URL especificada en el parámetro settings.return_url. false por defecto.
settings.ui.mode
stringModo de interfaz en Pay Station. Solo puede ser user_account: el encabezado solo contiene el menú de navegación de la cuenta, y el usuario no puede seleccionar un producto ni realizar un pago. Este modo solo está disponible en la versión de escritorio.
settings.currency
stringMoneda de pago preferida. Código de moneda de tres letras ISO 4217.
settings.external_id
stringID de la transacción en el juego. Tiene que ser único para cada pago de usuario.
settings.payment_method
integerID del método de pago. Puede obtener la lista de ID de métodos de pago en Cuenta del editor.
settings.return_url
stringPágina a la que redirigir al usuario tras el pago. Los parámetros user_id, foreigninvoice, invoice_id y status se añadirán automáticamente al enlace.
settings.redirect_policy
objectConfiguración de la política de redireccionamiento (objeto).
settings.redirect_policy.redirect_conditions
stringUn estado de pago que redirige al usuario a una URL de retorno después de realizar un pago. Puede ser none, successful, successful_or_canceled o any.
settings.redirect_policy.delay
integerRetraso (en segundos) tras el cual un usuario es redirigido automáticamente a la URL de retorno.
settings.redirect_policy.status_for_manual_redirection
stringUn estado de pago que redirige al usuario a una URL de retorno después de realizar un pago. Puede ser none, successful, successful_or_canceled o any.
settings.redirect_policy.redirect_button_caption
stringTexto que aparece en el botón de redireccionamiento manual.
Ejemplo de solicitud:
Copy
Full screen
Small screen
curl -X 'POST' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/manage?country=RU  ' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer client_user_jwt'
{
  "settings": {
    "ui": {
      "size": "large",
      "theme": "string",
      "version": "desktop",
      "desktop": {
        "header": {
          "is_visible": true,
          "visible_logo": true,
          "visible_name": true,
          "type": "compact",
          "close_button": true
        }
      },
      "mobile": {
        "mode": "saved_accounts",
        "footer": {
          "is_visible": true
        },
        "header": {
          "close_button": true
        }
      },
      "license_url": "string",
      "mode": "user_account",
      "user_account": {
        "history": {
          "enable": true,
          "order": 1
        },
        "payment_accounts": {
          "enable": true,
          "order": 1
        },
        "info": {
          "enable": true,
          "order": 1
        },
        "subscriptions": {
          "enable": true,
          "order": 1
        }
      }
    },
    "currency": "str",
    "locale": "st",
    "external_id": "string",
    "payment_method": 1,
    "return_url": "string",
    "redirect_policy": {
      "redirect_conditions": "none",
      "delay": 0,
      "status_for_manual_redirection": "none",
      "redirect_button_caption": "string"
    }
  }
}

Ejemplo de respuesta:

Copy
Full screen
Small screen
{
  "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
}
¿Te ha resultado útil este artículo?
¡Gracias!
¿Hay algo en lo que podamos mejorar? Mensaje
Lo sentimos
Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
¡Gracias por tu mensaje!
Nos ayudará a mejorar tu experiencia.
Última actualización: 30 de Septiembre de 2024

¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

Informar de un problema
Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
Déjanos tu correo electrónico para que te podamos responder
¡Gracias por tu mensaje!