Cómo permitir que un usuario cambie un plan de suscripción
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.
- 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
Cómo conseguirlo
- Abra su proyecto en Cuenta del editor.
- Haga clic en Subscriptions en la barra lateral y vaya a la sección Settings.
- En la sección Changing plan, establezca la opción Posibilidad de elegir un plan diferente estableciendo el conmutador en On.
- 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.
- 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.
- Al abrir la interfaz de pago, utilice:
- llamada API Crear token del lado del cliente
- llamada API del lado del cliente para obtener un enlace para abrir una interfaz de pago si utiliza Xsolla Login en su proyecto
Abrir la interfaz de pago mediante la llamada API Crear token del lado del servidor
- Obtenga un token para abrir la interfaz de pago transmitiendo lo siguiente al método:
- valor
change_plan
en el parámetropurchase.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.
- valor
- 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:
- Utilice las llamadas API
Register new user yAuth by username y de contraseña si su aplicación utiliza la autorización de inicio de sesión y contraseña. - Utilice la llamada API
Auth via social network si su aplicación utiliza autorización mediante redes sociales.
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ámetro | Tipo | Descripción |
---|---|---|
| string | Obligatorio. El ID externo del plan de suscripción. Puede encontrarlo en la sección Cuenta del editor > Subscriptions > Subscription Plans. |
| object | Configuración personalizada del proyecto (objeto). |
| object | Configuración de la interfaz (objeto). |
| string | Tamaño de la interfaz de pago. Puede ser:
|
| string | Tema de la interfaz de pago. Puede ser default , default_dark o ID de tema personalizado. |
| string | Tipo de dispositivo. Puede ser desktop (por defecto) o mobile . |
| object | Configuración de la interfaz para la versión de escritorio (objeto). |
| object | Configuración del encabezado (objeto). |
| boolean | Si 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. |
| boolean | Mostrar o no el encabezado en la interfaz de pago. |
| string | Aspecto 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 . |
| boolean | Si es true , el encabezado muestra su logotipo (proporcione primero la imagen a su gestor del éxito del cliente). |
| boolean | Mostrar o no el nombre del proyecto en el encabezado. |
| string | Cómo mostrar el encabezado. Puede ser compact (oculta el nombre del proyecto y el ID de usuario) o normal (por defecto). |
| string | Un usuario sólo puede pagar usando sus métodos de pago guardados. Pueden ser saved_accounts . |
| boolean | Si desea ocultar o no el pie de página en la versión móvil de la interfaz de pago. |
| boolean | Si 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. |
| string | Modo 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. |
| string | Moneda de pago preferida. Código de moneda de tres letras ISO 4217. |
| string | ID de la transacción en el juego. Tiene que ser único para cada pago de usuario. |
| integer | ID del método de pago. Puede obtener la lista de ID de métodos de pago en Cuenta del editor. |
| string | Pá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. |
| object | Configuración de la política de redireccionamiento (objeto). |
| string | Un 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 | integer | Retraso (en segundos) tras el cual un usuario es redirigido automáticamente a la URL de retorno. |
| string | Un 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 . |
| string | Texto que aparece en el botón de redireccionamiento manual. |
- curl
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:
- javascript
{
"link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
}
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.