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â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.
purchase.checkout.amountcom o preço do plano de assinaturapurchase.checkout.currencycom o valor da moeda
- curl
1curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
2-X POST \
3-u your_merchant_id:merchant_api_key \
4-H 'Content-Type:application/json' \
5-H 'Accept: application/json' \
6-d '
7{
8 "user":{
9 "id":{
10 "value": "1234567",
11 "hidden": true
12 },
13 "email": {
14 "value": "user1234@game1234.com"
15 },
16 "name": {
17 "value": "UserName",
18 "hidden": false
19 }
20 },
21 "settings": {
22 "project_id": 12345,
23 "currency": "USD"
24 },
25 "purchase": {
26 "subscription": {
27 "plan_id": "54321"
28 }
29 }
30}'
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_idcom 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, acesse a seção Pay Station > Payment methods ou solicite-a ao seu Gerente de Sucesso do Cliente.
purchase.checkout.amountcom o preço do plano de assinaturapurchase.checkout.currencycom o valor da moeda
- curl
1curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
2-X POST \
3-u your_merchant_id:merchant_api_key \
4-H 'Content-Type:application/json' \
5-H 'Accept: application/json' \
6-d '
7{
8 "user":{
9 "id":{
10 "value": "1234567",
11 "hidden": true
12 },
13 "email": {
14 "value": "user1234@game1234.com"
15 },
16 "name": {
17 "value": "UserName",
18 "hidden": false
19 }
20 },
21 "settings": {
22 "project_id": 12345,
23 "payment_method": 1380,
24 "currency": "USD"
25 },
26 "purchase": {
27 "subscription": {
28 "plan_id": "54321"
29 }
30 }
31}'
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_idpara abrir a interface de pagamento na página de seleção de forma de pagamento.
plan_external_idesettings.payment_methodabrir 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 > Items catalog > 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
1curl -X 'POST' \
2'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy?country=RU ' \
3 -H 'accept: application/json' \
4 -H 'Authorization: Bearer client_user_jwt'
5
6 {
7 "plan_external_id": "PlanExternalId",
8 "settings": {
9 "ui": {
10 "size": "large",
11 "theme": "string",
12 "version": "desktop",
13 "desktop": {
14 "header": {
15 "is_visible": true,
16 "visible_logo": true,
17 "visible_name": true,
18 "type": "compact",
19 "close_button": true
20 }
21 },
22 "mobile": {
23 "mode": "saved_accounts",
24 "footer": {
25 "is_visible": true
26 },
27 "header": {
28 "close_button": true
29 }
30 },
31 "mode": "user_account"
32 }
33 },
34 "currency": "string",
35 "locale": "string",
36 "external_id": "string",
37 "payment_method": 1,
38 "return_url": "string",
39 "redirect_policy": {
40 "redirect_conditions": "none",
41 "delay": 0,
42 "status_for_manual_redirection": "none",
43 "redirect_button_caption": "string"
44 }
45 }
- json
1{
2 "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
3}
Maneiras de abrir a interface de pagamento
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
1<script>
2 var options = {
3 access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
4 sandbox: true //TODO please do not forget to remove this setting when going live
5 };
6 var s = document.createElement('script');
7 s.type = "text/javascript";
8 s.async = true;
9 s.src = "https://cdn.xsolla.net/payments-bucket-prod/embed/1.5.0/widget.min.js";
10 s.addEventListener('load', function (e) {
11 XPayStationWidget.init(options);
12 }, false);
13 var head = document.getElementsByTagName('head')[0];
14 head.appendChild(s);
15</script>
16
17<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.