Establecer la apertura de la interfaz de pago

En función de la configuración de autenticación del proyecto, puede utilizar una de las siguientes opciones para abrir la interfaz de pago:

Aviso
Dado que el método del lado del cliente de obtención de un enlace para abrir una interfaz de pago no le permite gestionar los precios en su lado y establecer el precio de suscripción para un usuario específico, no lo utilice para vender una suscripción con una cuota de suscripción asociada al primer pago.
Nota
Si desea permitir que el usuario cambie el plan en su proyecto, póngase en contacto con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com para configurar el correcto funcionamiento de la interfaz de pago.

Mediante la llamada API Crear token de servidor

  1. Implemente la obtención de un token para abrir la interfaz de pago de una de las siguientes maneras:
  2. Implemente el modo de apertura de la interfaz de pago:

Con la visualización de la página de selección de la forma de pago

Para que la interfaz de usuario de pago muestre la página de selección del método de pago cuando se abra, transmita el parámetro purchase.subscription.plan_id con el ID del plan seleccionado a la llamada API Crear token. Transmita parámetros de personalización adicionales si es necesario.
Nota
Si en su proyecto se establecen planes con una cuota de suscripción asociada al primer pago, también deberá transmitir los siguientes parámetros:
  • purchase.checkout.amount con el precio del plan de suscripción
  • purchase.checkout.currency con el valor de la moneda
Copy
Full screen
Small screen
curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
-X POST \
-u your_merchant_id:merchant_api_key \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-d '
{
  "user":{
    "id":{
      "value": "1234567",
      "hidden": true
    },
    "email": {
      "value": "user1234@game1234.com"
    },
    "name": {
      "value": "UserName",
      "hidden": false
    }
  },
  "settings": {
    "project_id": 12345,
    "currency": "USD"
  },
  "purchase": {
    "subscription": {
      "plan_id": "54321"
    }
  }
}'

Ejemplo de página de selección del método de pago:

Con la visualización de la página de introducción de los datos de pago

Para que la interfaz de usuario de pago muestre la página de introducción de datos de pago cuando se abra, transmita los siguientes parámetros en la llamada API Crear token:
  • purchase.subscription.plan_id con el ID del plan seleccionado.
  • settings.payment_method con el ID del método de pago. Para encontrar la lista de identificadores, en su proyecto en Cuenta del editor, vaya a la sección Pay Station > Payment methods, o solicítela a su gestor del éxito del cliente.
Nota
Si en su proyecto se establecen planes con una cuota de suscripción asociada al primer pago, también deberá transmitir los siguientes parámetros:
  • purchase.checkout.amount con el precio del plan de suscripción
  • purchase.checkout.currency con el valor de la moneda
Transmita parámetros adicionales para la personalización si es necesario.
Copy
Full screen
Small screen
curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
-X POST \
-u your_merchant_id:merchant_api_key \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-d '
{
  "user":{
    "id":{
      "value": "1234567",
      "hidden": true
    },
    "email": {
      "value": "user1234@game1234.com"
    },
    "name": {
      "value": "UserName",
      "hidden": false
    }
  },
  "settings": {
    "project_id": 12345,
    "payment_method": 1380,
    "currency": "USD"
  },
  "purchase": {
    "subscription": {
      "plan_id": "54321"
    }
  }
}'

Ejemplo de página de introducción de datos de pago:

Mediante el método API de cliente

  1. Implemente la obtención de un enlace para abrir la interfaz de pago utilizando el método API de cliente.
  2. Implemente la apertura de la interfaz de pago de una de las siguientes maneras:

Método de cliente para obtener un enlace para abrir una interfaz de pago

En el lado cliente de su aplicación, utilice una solicitud HTTP POST para implementar la apertura de la interfaz de pago: https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/buy.

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.

Introduzca los siguientes parámetros en la solicitud:

  • plan_external_id para abrir la interfaz de pago en la página de selección del método de pago.

Un ejemplo de interfaz de pago:
Un ejemplo de interfaz de pago:

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.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.type
stringAspecto del encabezado. Puede ser compact (en cuyo caso el nombre del juego y el ID de usuario no se muestran 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.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.
Transmita parámetros adicionales para la personalización si es necesario.
Copy
Full screen
Small screen
curl -X 'POST' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy?country=RU  ' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer client_user_jwt'

  {
    "plan_external_id": "PlanExternalId",
    "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
          }
        },
        "mode": "user_account"
        }
      },
      "currency": "string",
      "locale": "string",
      "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"
      }
    }
Copy
Full screen
Small screen
    {
      "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
    }
    

    Con Pay Station Embed

    Agregue un script a la página de su sitio web para abrir el widget de la interfaz de pago. Hay disponible una descripción completa del script en el repositorio de GitHub .

    EJEMPLO: CARGA ASINCRÓNICA DE SCRIPTS

    Copy
    Full screen
    Small screen
    <script>
       var options = {
           access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
           sandbox: true //TODO please do not forget to remove this setting when going live
       };
       var s = document.createElement('script');
       s.type = "text/javascript";
       s.async = true;
       s.src = "https://static.xsolla.com/embed/paystation/1.0.7/widget.min.js";
       s.addEventListener('load', function (e) {
           XPayStationWidget.init(options);
       }, false);
       var head = document.getElementsByTagName('head')[0];
       head.appendChild(s);
    </script>
    
    <button data-xpaystation-widget-open>Buy Credits</button>
    

    Pay Station Embed permite obtener eventos de la interfaz de pago a través de postMessage. Puede enviar estos eventos a sistemas de análisis. Para configurar el procesamiento de eventos en su sistema analítico, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.

    Parámetros de inicialización del script:

    ParámetroTipoDescripción
    access_token
    stringToken, recibido mediante la llamada API Crear token de servidor o recibido en un enlace cuando se utiliza la llamada API de cliente. Obligatorio.
    sandbox
    booleanEstablécelo en true para probar el proceso de pago: sandbox-secure.xsolla.com se utilizará en lugar de secure.xsolla.com.
    lightbox
    objectParámetros del Lightbox (objeto, solo versión de escritorio).
    payment_widget_ui.lightbox.width
    stringAnchura del marco del Lightbox. Si es null, depende de la altura de Pay Station. Por defecto es null.
    payment_widget_ui.lightbox.height
    stringAltura del marco del Lightbox. Si es null, depende de la altura de Pay Station. Por defecto es 100%.
    payment_widget_ui.lightbox.zIndex
    integerDefine el orden de disposición. Por defecto es 1000.
    payment_widget_ui.lightbox.overlayOpacity
    integerOpacidad del fondo del widget (0 - totalmente transparente, 1 - totalmente opaco). El valor por defecto es 60 % (.6).
    payment_widget_ui.lightbox.overlayBackground
    stringColor de fondo de la superposición. Por defecto es #000000.
    payment_widget_ui.lightbox.modal
    booleanSi es true, el marco del Lightbox no se puede cerrar. Por defecto es false.
    lightbox.closeByClick
    booleanSi es true, al hacer clic en la superposición se cerrará el Lightbox. Por defecto es true.
    lightbox.closeByKeyboard
    booleanSi es true, al pulsar ESC se cerrará el Lightbox. Por defecto es true.
    payment_widget_ui.lightbox.contentBackground
    stringColor de fondo del marco. Por defecto es #ffffff. Tenga en cuenta que estos cambios de color no afectan al propio iframe de Pay Station, solo a la configuración del Lightbox que lo contiene.
    payment_widget_ui.lightbox.contentMargin
    stringMargen del marco. Por defecto es 10px.
    payment_widget_ui.lightbox.spinner
    stringTipo de indicador de carga animado. Puede ser xsolla o round. Por defecto es xsolla.
    payment_widget_ui.lightbox.spinnerColor
    stringColor del indicador giratorio. Sin valor por defecto.
    childWindow
    objectOpciones para la ventana secundaria que contiene la interfaz de usuario de Pay Station. Compatible con la versión móvil.
    childWindow.target
    stringDónde abrir la ventana de Pay Station. Puede ser _blank, _self, _parent. Por defecto es _blank.
    Si desea inicializar la apertura de la interfaz de pago, utilice el siguiente enlace: https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN, en el cual ACCESS_TOKEN es el token obtenido con el método Crear token. También puede obtener un enlace prediseñado con un token al implementar el método de cliente para abrir la interfaz de pago.
    Nota
    Se debe utilizar el enlace con el prefijo https:// solamente para la apertura de la interfaz de pago.
    Utilice la siguiente URL para hacer pruebas: https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN.
    Aviso
    El parámetro access_token contiene datos privados del usuario. Asegúrese de utilizar la comunicación de servidor a servidor cuando obtenga este parámetro.

    En un Iframe

    Debe implementar los siguientes mecanismos en su lado:

    • Compruebe el tipo de dispositivo (de escritorio o móvil) y envíelo dentro del parámetro settings.ui.version del token.
    • Obtenga eventos de la interfaz de pago a través de postMessage. Puede enviar estos eventos a los sistemas de análisis. Para establecer el procesamiento de eventos en su sistema de análisis, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.

    Para abrir la interfaz de usuario de pago en un iframe, utilice el siguiente enlace: https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN, en el cual ACCESS_TOKEN es el token obtenido con el método Crear token. También puede obtener un enlace prediseñado con un token al implementar el método de cliente para abrir la interfaz de pago.

    Para realizar pruebas, utilice esta URL: https://sandbox-secure.xsolla.com/paystation4/?token=ACCESS_TOKEN.

    En una nueva ventana

    Para abrir la interfaz de pago en un iframe, utilice el siguiente enlace: https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN, en el cual ACCESS_TOKEN es el token obtenido con el método Crear token. También puede obtener un enlace prediseñado con un token al implementar el método de cliente para abrir la interfaz de pago.

    Para realizar pruebas, utilice esta URL: https://sandbox-secure.xsolla.com/paystation4/?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!