Configure a abertura da interface de pagamento
Dependendo das configurações de autenticação do projeto, você pode usar uma das seguintes opções para abrir a interface de pagamento:
- Chamada de API Create token do lado do servidor se:
- você usar seu próprio sistema de autorização em seu aplicativo.
- os planos de assinatura estão configurados com uma taxa de assinatura associada ao primeiro pagamento em seu projeto.
- método do lado do cliente para obter um link para abrir uma interface de pagamento se você usar o Xsolla Login em seu projeto.
Via chamada de API Criar token de servidor
- Implemente a obtenção de um token para abrir a interface de pagamento de uma das seguintes maneiras:
- Implemente como a abertura da interface de pagamento é feita:
Com a exibição da página de seleção de método de pagamento
Para fazer com que a interface de pagamento exiba a página de seleção de método de pagamento quando aberta, passe o parâmetropurchase.subscription.plan_id
com o ID do plano selecionado para a chamada de API Criar token. Passe parâmetros de personalização adicionais, se necessário.purchase.checkout.amount
com o preço do plano de assinaturapurchase.checkout.currency
com o valor da moeda
- 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"
}
}
}'
Exemplo de página de seleção de forma de pagamento:
Com a exibição da página de entrada de dados de pagamento
Para fazer com que a interface de pagamento exiba a página de entrada de dados de pagamento quando aberta, passe os seguintes parâmetros na chamada de API Criar token:purchase.subscription.plan_id
com o ID do plano selecionado.settings.payment_method
com o ID do método de pagamento. Para encontrar a lista de identificadores, em seu projeto na Conta de Distribuidor, vá para a seção Pay Station > Payment methods ou solicite-a ao seu Gerente de Sucesso do Cliente.
purchase.checkout.amount
com o preço do plano de assinaturapurchase.checkout.currency
com o valor da moeda
- 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"
}
}
}'
Exemplo de página de entrada de dados de pagamento:
Via método de API do cliente
- Implemente a obtenção de um link para abrir a interface de pagamento usando o método de API do cliente.
- Implemente a abertura da interface de pagamento de uma das seguintes maneiras:
Método do cliente para obter um link para abrir uma interface de pagamento
No lado do cliente do seu aplicativo, use uma solicitação HTTP POST para implementar a abertura da interface de pagamento: https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy
.
A solicitação deve conter um cabeçalho Authorization: Bearer <client_user_jwt>
, onde <client_user_jwt>
é o JSON Web Token (JWT) do usuário — um token exclusivo codificado em Base64. Para obter o token:
- Use
Register new user eAuth by username , e as chamadas de API de senha se seu aplicativo usar autorização de login e senha. Use a chamada de API
Auth via social network se seu aplicativo usar autorização por meio de redes sociais.
projectId
. Você pode encontrar esse parâmetro em sua Conta de Distribuidor ao lado do nome do projeto.Especifique country
como parâmetro de consulta — a designação de duas letras do país do usuário de acordo com o padrão ISO 3166-1 alfa-2. Afeta a escolha de localidade e moeda. Se esse parâmetro não for passado, o país será determinado pelo endereço IP do usuário.
Passe os seguintes parâmetros na solicitação:
plan_external_id
para abrir a interface de pagamento na página de seleção de forma de pagamento.
plan_external_id
esettings.payment_method
abrir a interface de pagamento na página para inserir dados de pagamento.
Parâmetros do corpo da solicitação:
Parâmetro | Tipo | Descrição |
---|---|---|
| string | Obrigatório. O ID externo do plano de assinatura. Você pode encontrá-lo na seção Conta de Distribuidor > Subscriptions > Subscription Plans. |
| object | Configurações personalizadas do projeto (objeto). |
| object | Configurações da interface (objeto). |
| string | Tema da interface de pagamento. Pode ser default , default_dark ou ID de tema personalizado. |
| string | Tipo de dispositivo. Pode ser desktop (padrão) ou mobile . |
| object | Configurações de interface para a versão desktop (objeto). |
| object | Configurações de cabeçalho (objeto). |
| boolean | Se deseja mostrar um botão Fechar na Pay Station para desktop ou não. O botão fecha a Pay Station e redireciona o usuário para o URL especificado no parâmetro settings.return_url . false por padrão. |
| boolean | Se o cabeçalho deve ser exibido na interface de pagamento ou não. |
| string | Aparência do cabeçalho. Pode ser compact (caso em que o nome do jogo e ID do usuário não é mostrado no cabeçalho) ou normal . |
| boolean | Se true , o cabeçalho mostra seu logotipo (primeiro forneça a imagem ao seu Gerente de Sucesso do Cliente). |
| boolean | Se o nome do projeto no cabeçalho deve ser exibido ou não. |
| string | Como mostrar o cabeçalho. Pode ser compact (oculta o nome do projeto e o ID do usuário) ou normal (padrão). |
| boolean | Se deseja mostrar um botão Fechar na Pay Station para dispositivos móveis ou não. O botão fecha a Pay Station e redireciona o usuário para o URL especificado no parâmetro settings.return_url . false por padrão. |
| string | Modo de interface na Pay Station. Pode ser user_account apenas: o cabeçalho contém apenas o menu de navegação da conta e o usuário não pode selecionar um produto ou fazer um pagamento. Esse modo só está disponível na versão para desktop. |
| string | Moeda de pagamento preferida. Código de moeda de três letras ISO 4217. |
| string | ID da transação no jogo. Deve ser único para cada pagamento de usuário. |
| integer | ID do método de pagamento. Você pode obter a lista de IDs de métodos de pagamento na Conta de Distribuidor. |
| string | Página para redirecionar o usuário após o pagamento. Parâmetros user_id , foreigninvoice , invoice_id e status serão adicionados automaticamente ao link. |
| object | Configurações de política de redirecionamento (objeto). |
| string | Um status de pagamento que redireciona o usuário para um URL de retorno após fazer um pagamento. Pode ser none , successful , successful_or_canceled ou any . |
settings.redirect_policy.delay | integer | Atraso (em segundos) após o qual um usuário é redirecionado automaticamente para o URL de retorno. |
| string | Um status de pagamento que redireciona o usuário para um URL de retorno após fazer um pagamento. Pode ser none , successful , successful_or_canceled ou any . |
| string | Texto no botão para redirecionamento 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>"
}
Com Pay Station Embed
Adicione um script à página do seu site para abrir o widget da interface de pagamento. Uma descrição completa do script está disponível no repositório GitHub.
EXEMPLO: CARREGAMENTO DE SCRIPT ASSÍNCRONO
- 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>
A Pay Station Embed permite obter eventos da interface de pagamento via postMessage
. Você pode enviar esses eventos para sistemas de análise. Para configurar o processamento de eventos em seu sistema de análise, entre em contato com seu Gerente de Sucesso da Conta ou envie um e-mail para csm@xsolla.com.
Parâmetros de inicialização do script:
Parâmetro | Tipo | Descrição |
---|---|---|
access_token | string | Token, recebido via chamada de API Criar token do servidor ou recebido em um link quando a chamada de API do cliente é usada. Obrigatório. |
sandbox | boolean | Defina como true para testar o processo de pagamento: sandbox-secure.xsolla.com será usado em vez de secure.xsolla.com . |
lightbox | object | Parâmetros da lightbox (objeto; somente versão desktop). |
payment_widget_ui.lightbox.width | string | Largura do quadro da lightbox. Se null , depende da largura do Pay Station. O padrão é null . |
payment_widget_ui.lightbox.height | string | Altura do quadro da lightbox. Se null , depende da altura do Pay Station. O padrão é 100% . |
payment_widget_ui.lightbox.zIndex | integer | Define a ordem do arranjo. O padrão é 1000 . |
payment_widget_ui.lightbox.overlayOpacity | integer | Opacidade do plano de fundo do widget (0 — totalmente transparente, 1 — completamente opaco). O valor padrão é 60% (.6 ). |
payment_widget_ui.lightbox.overlayBackground | string | Cor de fundo da sobreposição. O padrão é #000000 . |
payment_widget_ui.lightbox.modal | boolean | Se true , o quadro lightbox não poderá ser fechado. O padrão é false . |
lightbox.closeByClick | boolean | Se true , clicar na sobreposição fechará a lightbox. O padrão é true . |
lightbox.closeByKeyboard | boolean | Se true , pressionar ESC fechará a lightbox. O padrão é true . |
payment_widget_ui.lightbox.contentBackground | string | Cor de fundo do quadro. O padrão é #ffffff . Observe que essas mudanças de cor não afetam o iframe do Pay Station em si, apenas as configurações da lightbox que o contém. |
payment_widget_ui.lightbox.contentMargin | string | Margem do quadro. O padrão é 10px . |
payment_widget_ui.lightbox.spinner | string | Tipo de indicador de carregamento animado. Pode ser xsolla ou round . O padrão é xsolla . |
payment_widget_ui.lightbox.spinnerColor | string | Cor do cata-vento. Sem valor padrão. |
childWindow | object | Opções para a janela filho que contém a interface do Pay Station. Suportado na versão móvel. |
childWindow.target | string | Onde abrir a janela do Pay Station. Pode ser _blank , _self , _parent . O padrão é _blank . |
https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
, onde ACCESS_TOKEN
é o token obtido com o método Criar token. Você também pode obter um link pronto com um token ao implementar o método do cliente para abrir a interface de pagamento.https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
.Em um Iframe
Você precisa implementar os seguintes mecanismos do seu lado:
- Verifique o tipo de dispositivo (desktop vs. dispositivo móvel) e envie-o dentro do parâmetro settings.ui.version do token.
- Obtenha os eventos da interface de pagamento via postMessage. Você pode enviar esses eventos para sistemas de análise. Para configurar o processamento de eventos em seu sistema de análise, entre em contato com o Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Para abrir a interface de pagamento em um iframe, use o seguinte link: https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
, onde ACCESS_TOKEN
é o token obtido com o método Create token. Você também pode obter um link pronto com um token ao implementar o método do cliente para abrir a interface de pagamento.
Para fins de teste, use este URL: https://sandbox-secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
.
Em uma nova janela
Para abrir a interface de pagamento em uma nova janela, use o seguinte link: https://secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
, onde ACCESS_TOKEN
é o token obtido com o método Criar token. Você também pode obter um link pronto com um token ao implementar o método do cliente para abrir a interface de pagamento.
Para fins de teste, use este URL: https://sandbox-secure.xsolla.com/paystation4/?token=ACCESS_TOKEN
.
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.