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 ou usando a chamada de API Get payment methods.
    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).
        lightbox.width
        stringLargura do quadro da lightbox. Se null, depende da largura do Pay Station. O padrão é null.
        lightbox.height
        stringAltura do quadro da lightbox. Se null, depende da altura do Pay Station. O padrão é 100%.
        lightbox.zIndex
        integerDefine a ordem do arranjo. O padrão é 1000.
        lightbox.overlayOpacity
        integerOpacidade do plano de fundo do widget (0 — totalmente transparente, 1 — completamente opaco). O valor padrão é 60% (.6).
        lightbox.overlayBackground
        stringCor de fundo da sobreposição. O padrão é #000000.
        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.
        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.
        lightbox.contentMargin
        stringMargem do quadro. O padrão é 10px.
        lightbox.spinner
        stringTipo de indicador de carregamento animado. Pode ser xsolla ou round. O padrão é xsolla.
        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.

        Seu progresso
        Obrigado pelo seu feedback!
        Última atualização: 22 de Janeiro 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!