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 o utilizando la llamada API Get payment methods.
    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).
        lightbox.width
        stringAnchura del marco del Lightbox. Si es null, depende de la altura de Pay Station. Por defecto es null.
        lightbox.height
        stringAltura del marco del Lightbox. Si es null, depende de la altura de Pay Station. Por defecto es 100%.
        lightbox.zIndex
        integerDefine el orden de disposición. Por defecto es 1000.
        lightbox.overlayOpacity
        integerOpacidad del fondo del widget (0 - totalmente transparente, 1 - totalmente opaco). El valor por defecto es 60 % (.6).
        lightbox.overlayBackground
        stringColor de fondo de la superposición. Por defecto es #000000.
        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.
        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.
        lightbox.contentMargin
        stringMargen del marco. Por defecto es 10px.
        lightbox.spinner
        stringTipo de indicador de carga animado. Puede ser xsolla o round. Por defecto es xsolla.
        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.

        Tu progreso
        ¡Gracias por tu mensaje!
        Última actualización: 22 de Enero 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!