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:

Aviso
Como o método do lado do cliente de obter um link para abrir uma interface de pagamento não permite que você gerencie preços do seu lado e defina o preço da assinatura para um usuário específico, não o use para vender uma assinatura com uma taxa de assinatura associada ao primeiro pagamento.
Observação
Se você quiser permitir que o usuário altere o plano em seu projeto, entre em contato com o Gerente de Sucesso do Cliente ou envie um e-mail a csm@xsolla.com para configurar a operação correta da interface de pagamento.

Via chamada de API Criar token de servidor

  1. Implemente a obtenção de um token para abrir a interface de pagamento de uma das seguintes maneiras:
  2. 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âmetro purchase.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.
Observação
Se os planos com uma taxa de assinatura associada ao primeiro pagamento estiverem definidos em seu projeto, você também precisará passar os seguintes parâmetros:
  • purchase.checkout.amount com o preço do plano de assinatura
  • purchase.checkout.currency com o valor da moeda
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"
    }
  }
}'

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_methodcom 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.
Observação
Se os planos com uma taxa de assinatura associada ao primeiro pagamento estiverem definidos em seu projeto, você também precisará passar os seguintes parâmetros:
  • purchase.checkout.amount com o preço do plano de assinatura
  • purchase.checkout.currency com o valor da moeda
Passe parâmetros adicionais para personalização, se necessário.
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"
    }
  }
}'

Exemplo de página de entrada de dados de pagamento:

Via método de API do cliente

  1. Implemente a obtenção de um link para abrir a interface de pagamento usando o método de API do cliente.
  2. 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:

Especifique a ID do projeto como o parâmetro de caminho 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.

Um exemplo de uma interface de pagamento:
Um exemplo de uma interface de pagamento:

Parâmetros do corpo da solicitação:

ParâmetroTipoDescrição
plan_external_id
stringObrigatório. O ID externo do plano de assinatura. Você pode encontrá-lo na seção Conta de Distribuidor > Subscriptions > Subscription Plans.
settings
objectConfigurações personalizadas do projeto (objeto).
settings.ui
objectConfigurações da interface (objeto).
settings.ui.theme
stringTema da interface de pagamento. Pode ser default, default_dark ou ID de tema personalizado.
settings.ui.version
stringTipo de dispositivo. Pode ser desktop (padrão) ou mobile.
settings.ui.desktop
objectConfigurações de interface para a versão desktop (objeto).
settings.ui.desktop.header
objectConfigurações de cabeçalho (objeto).
settings.ui.desktop.header.close_button
booleanSe 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.
settings.ui.desktop.header.is_visible
booleanSe o cabeçalho deve ser exibido na interface de pagamento ou não.
settings.ui.desktop.header.type
stringAparê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.
booleanSe true, o cabeçalho mostra seu logotipo (primeiro forneça a imagem ao seu Gerente de Sucesso do Cliente).
settings.ui.desktop.header.visible_name
booleanSe o nome do projeto no cabeçalho deve ser exibido ou não.
settings.ui.desktop.header.type
stringComo mostrar o cabeçalho. Pode ser compact (oculta o nome do projeto e o ID do usuário) ou normal (padrão).
settings.ui.mobile.header.close_button
booleanSe 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.
settings.ui.mode
stringModo 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.
settings.currency
stringMoeda de pagamento preferida. Código de moeda de três letras ISO 4217.
settings.external_id
stringID da transação no jogo. Deve ser único para cada pagamento de usuário.
settings.payment_method
integerID do método de pagamento. Você pode obter a lista de IDs de métodos de pagamento na Conta de Distribuidor.
settings.return_url
stringPá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.
settings.redirect_policy
objectConfigurações de política de redirecionamento (objeto).
settings.redirect_policy.redirect_conditions
stringUm 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
integerAtraso (em segundos) após o qual um usuário é redirecionado automaticamente para o URL de retorno.
settings.redirect_policy.status_for_manual_redirection
stringUm 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.redirect_button_caption
stringTexto no botão para redirecionamento manual.
Passe parâmetros adicionais para personalização, se necessário.
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>"
    }
    

    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

    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>
    

    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âmetroTipoDescrição
    access_token
    stringToken, 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
    booleanDefina como true para testar o processo de pagamento: sandbox-secure.xsolla.com será usado em vez de secure.xsolla.com.
    lightbox
    objectParâmetros da lightbox (objeto; somente versão desktop).
    payment_widget_ui.lightbox.width
    stringLargura do quadro da lightbox. Se null, depende da largura do Pay Station. O padrão é null.
    payment_widget_ui.lightbox.height
    stringAltura do quadro da lightbox. Se null, depende da altura do Pay Station. O padrão é 100%.
    payment_widget_ui.lightbox.zIndex
    integerDefine a ordem do arranjo. O padrão é 1000.
    payment_widget_ui.lightbox.overlayOpacity
    integerOpacidade do plano de fundo do widget (0 — totalmente transparente, 1 — completamente opaco). O valor padrão é 60% (.6).
    payment_widget_ui.lightbox.overlayBackground
    stringCor de fundo da sobreposição. O padrão é #000000.
    payment_widget_ui.lightbox.modal
    booleanSe true, o quadro lightbox não poderá ser fechado. O padrão é false.
    lightbox.closeByClick
    booleanSe true, clicar na sobreposição fechará a lightbox. O padrão é true.
    lightbox.closeByKeyboard
    booleanSe true, pressionar ESC fechará a lightbox. O padrão é true.
    payment_widget_ui.lightbox.contentBackground
    stringCor 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
    stringMargem do quadro. O padrão é 10px.
    payment_widget_ui.lightbox.spinner
    stringTipo de indicador de carregamento animado. Pode ser xsolla ou round. O padrão é xsolla.
    payment_widget_ui.lightbox.spinnerColor
    stringCor do cata-vento. Sem valor padrão.
    childWindow
    objectOpções para a janela filho que contém a interface do Pay Station. Suportado na versão móvel.
    childWindow.target
    stringOnde abrir a janela do Pay Station. Pode ser _blank, _self, _parent. O padrão é _blank.
    Se você quiser inicializar a abertura da interface de pagamento, use esse 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.
    Observação
    É necessário usar o link apenas com o prefixo https:// para a abertura da interface de pagamento.
    Use o seguinte URL para fins de teste: https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN.
    Aviso
    O parâmetro access_token contém dados privados do usuário. Certifique-se de usar a comunicação de servidor para servidor ao obter esse parâmetro.

    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.

    Este artigo foi útil?
    Obrigado!
    Podemos melhorar alguma coisa? Mensagem
    Que pena ouvir isso
    Explique porque este artigo não foi útil para você. Mensagem
    Obrigado pelo seu feedback!
    Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
    Última atualização: 30 de Setembro de 2024

    Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

    Relatar um problema
    Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
    Forneça um e-mail para que possamos responder
    Obrigado pelo seu feedback!