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:
- llamada API Crear token en el lado cliente si:
- utiliza su propio sistema de autorización en su aplicación.
- los planes de suscripción se establecen con una cuota de suscripción asociada al primer pago de su proyecto.
- método del lado cliente para obtener un enlace para abrir una interfaz de pago si utiliza Xsolla Login en su proyecto.
Mediante la llamada API Crear token de servidor
- Implemente la obtención de un token para abrir la interfaz de pago de una de las siguientes maneras:
- 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ámetropurchase.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.purchase.checkout.amount
con el precio del plan de suscripciónpurchase.checkout.currency
con el valor de la moneda
- curl
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.
purchase.checkout.amount
con el precio del plan de suscripciónpurchase.checkout.currency
con el valor de la moneda
- curl
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
- Implemente la obtención de un enlace para abrir la interfaz de pago utilizando el método API de cliente.
- 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:
- 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.
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.
plan_external_id
ysettings.payment_method
para abrir la interfaz de pago presente en la página de introducción de los datos de pago.
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 | 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 muestran 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). |
| 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/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"
}
}
{
"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
- html
<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ámetro | Tipo | Descripción |
---|---|---|
access_token | string | Token, recibido mediante la llamada API Crear token de servidor o recibido en un enlace cuando se utiliza la llamada API de cliente. Obligatorio. |
sandbox | boolean | Establécelo en true para probar el proceso de pago: sandbox-secure.xsolla.com se utilizará en lugar de secure.xsolla.com . |
lightbox | object | Parámetros del Lightbox (objeto, solo versión de escritorio). |
payment_widget_ui.lightbox.width | string | Anchura del marco del Lightbox. Si es null , depende de la altura de Pay Station. Por defecto es null . |
payment_widget_ui.lightbox.height | string | Altura del marco del Lightbox. Si es null , depende de la altura de Pay Station. Por defecto es 100% . |
payment_widget_ui.lightbox.zIndex | integer | Define el orden de disposición. Por defecto es 1000 . |
payment_widget_ui.lightbox.overlayOpacity | integer | Opacidad del fondo del widget (0 - totalmente transparente, 1 - totalmente opaco). El valor por defecto es 60 % (.6 ). |
payment_widget_ui.lightbox.overlayBackground | string | Color de fondo de la superposición. Por defecto es #000000 . |
payment_widget_ui.lightbox.modal | boolean | Si es true , el marco del Lightbox no se puede cerrar. Por defecto es false . |
lightbox.closeByClick | boolean | Si es true , al hacer clic en la superposición se cerrará el Lightbox. Por defecto es true . |
lightbox.closeByKeyboard | boolean | Si es true , al pulsar ESC se cerrará el Lightbox. Por defecto es true . |
payment_widget_ui.lightbox.contentBackground | string | Color 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 | string | Margen del marco. Por defecto es 10px . |
payment_widget_ui.lightbox.spinner | string | Tipo de indicador de carga animado. Puede ser xsolla o round . Por defecto es xsolla . |
payment_widget_ui.lightbox.spinnerColor | string | Color del indicador giratorio. Sin valor por defecto. |
childWindow | object | Opciones para la ventana secundaria que contiene la interfaz de usuario de Pay Station. Compatible con la versión móvil. |
childWindow.target | string | Dónde abrir la ventana de Pay Station. Puede ser _blank , _self , _parent . Por defecto es _blank . |
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.https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
.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
.
¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.