Como Configurar o Robokassa
Vamos ver como aceitar pagamentos em um bot através do serviço Robokassa.
- Crie uma loja online na sua conta Robokassa e especifique as seguintes configurações técnicas:
- Algoritmo de cálculo de hash:
MD5 - URL de resultado: https://chatter.mavibot.ai/robokassa_callback/result
- Método de envio de dados para URL de resultado:
GET - URL de sucesso: https://chatter.mavibot.ai/robokassa_callback/success
- Método de envio de dados para URL de sucesso:
GET - URL de falha: https://chatter.mavibot.ai/robokassa_callback/fail
- Método de envio de dados para URL de falha:
GET

Crie senhas de teste e realize a configuração inicial em modo de teste.
Como Conectar o Robokassa ao MaviBot
Vá para a seção Adquirência e clique em Conectar no cartão do Robokassa:

Preencha o formulário na janela que se abre:
- ID da Loja — o Shop ID, que você pode encontrar nas configurações da loja na sua conta Robokassa.
- Senha #1 e Senha #2 — sequências únicas geradas de letras e números.
- Taxa de IVA — especifique o código apropriado para transferir o valor do IVA. Este campo define a taxa de imposto no caixa. É determinado separadamente para cada tipo de produto, mas se aplica a todas as unidades desse produto específico em conjunto.
Valores disponíveis:
- Sem IVA.
- IVA a 0%.
- IVA a 5%.
- IVA calculado a 12%.
- IVA calculado a 16%.
Como Gerar um Link de Pagamento
Você pode gerar um link de pagamento em um bloco usando UM DOS métodos disponíveis:
- Um botão com a função Pagamento, ou
- A função
get_robokassa_payment_urlna Calculadora, ou- Gerando um link usando a variável
payment_sume parâmetros adicionais — um método obsoleto, mas ainda funcional.
Botão de Pagamento
Você pode gerar um link de pagamento usando um botão com a função Pagamento.
Saiba como criar um botão com a função Pagamento aqui.
Vamos revisar todos os parâmetros disponíveis do botão.
Parâmetros Obrigatórios do Botão de Pagamento
Para gerar um link de pagamento, especifique os seguintes parâmetros obrigatórios nas configurações do botão:
- Valor
- Nome do produto

Valor — especifique o preço do produto em rublos.
Nome do produto — este campo pode conter apenas letras inglesas ou russas, números e sinais de pontuação. O comprimento máximo é de 100 caracteres. Esta informação é exibida na interface do Robokassa e no recibo eletrônico recebido pelo cliente após o pagamento bem-sucedido.
NÃO use aspas duplas no nome do produto. Remova-as ou substitua-as por aspas simples.
Caixa de seleção de pagamento automático — ativa pagamentos recorrentes.
Caixa de seleção de notificação de clique — ativa o rastreamento de cliques no link de pagamento. Se ativado, uma notificação sobre o clique aparecerá na conversa do cliente no MaviBot.
Você pode configurar a lógica adicional do bot com base nesta notificação.
Muitos sistemas de pagamento suportam caixas registradoras online em nuvem exigidas pela Lei Federal nº 54-FZ.
Revise os requisitos de recibo no site do seu provedor de pagamento selecionado para evitar problemas com as autoridades fiscais.
Dados do Recibo
Abra o menu Dados do recibo para exibir os parâmetros do recibo:

Nome do produto — obrigatório para gerar um recibo.
NÃO use aspas duplas no nome do produto. Remova-as ou substitua-as por aspas simples.
Valor total em rublos — especifique o valor total do pagamento com base na quantidade do produto. Se a quantidade for 1, o valor total em rublos é igual ao valor inserido no campo Valor obrigatório.
Quantidade — a quantidade ou peso do produto. Você pode passar um número inteiro ou um número decimal usando um ponto, por exemplo:
5
ou
10.3
Variáveis do Cliente Criadas Automaticamente ao Usar um Botão de Pagamento
Assim que o usuário receber um bloco contendo um botão Pagamento, as seguintes variáveis do cliente são criadas automaticamente:

A variável de serviço do cliente:
__payments
armazena o valor do pagamento e o identificador do link de pagamento gerado. É necessário para identificar o webhook recebido do provedor de pagamento.
A variável de serviço
__paymentsNÃO DEVE ser excluída ou modificada.
A variável do cliente:
error_payment_button
é criada se ocorrer um erro ao gerar o botão de pagamento.
O valor de error_payment_button conterá o texto do erro ou a resposta de erro retornada pelo provedor de pagamento.
Os valores das variáveis se tornam atuais depois que o usuário passa para o próximo bloco.
Como Processar o Resultado
Por favor, observe
O Robokassa envia notificações apenas para transações bem-sucedidas através da URL de resultado.
O Robokassa não fornece callbacks para pagamentos malsucedidos.
A URL de falha é apenas a página de pagamento malsucedido para a qual o pagador é redirecionado se ocorrer um erro na página de pagamento.
Pagamento Bem-sucedido
Após configurar o pagamento corretamente e gerar o link de pagamento, teste a configuração.
Se o pagamento for bem-sucedido, um callback será enviado AUTOMATICAMENTE para a conversa do cliente na seção Clientes.
O callback consiste em:
- 10 caracteres da chave secreta do provedor de pagamento;
- a palavra
_success; - o valor do pagamento após um espaço.
O callback é gerado automaticamente. Você não precisa criá-lo você mesmo ou solicitá-lo ao suporte do provedor de pagamento.


Exemplo:
ovg58keefc_success 2999
Onde:
-
ovg58keefc— 10 caracteres da chave secreta do provedor de pagamento; -
_success— o resultado do processamento da solicitação indicando um pagamento bem-sucedido; -
2999— o valor do pagamento.
Execução do bloco:

Callback:

Os callbacks do provedor de pagamento NÃO SÃO VISÍVEIS para o usuário.
Eles são exibidos apenas na seção Clientes e são visíveis para o operador ou administrador.
Exemplo de Configuração de uma Resposta de Callback
Em um bloco condicional, como um bloco Condição de início ou um bloco Não-estado com condição, especifique o callback recebido após o pagamento.
Selecione Correspondência exata ou Contém palavras-chave como o tipo de correspondência.

Após o pagamento, o cliente receberá a mensagem do bloco configurado para responder ao callback:

Erro de Valor do Pagamento
Se o valor especificado nas configurações do botão for diferente do valor pago pelo cliente, o bot receberá automaticamente um callback consistindo em:
- 10 caracteres da chave secreta do provedor de pagamento;
-
_different_amounts; - o ID de pagamento único após um espaço.
Exemplo:
ovg58keefc_different_amounts 123456
Onde:
-
ovg58keefc— 10 caracteres da chave secreta do provedor de pagamento; -
_different_amounts— indica que o valor pago difere do valor no link de pagamento; -
123456— o ID de pagamento único.
Função get_robokassa_payment_url na Calculadora
Você pode gerar um link de pagamento usando a função get_robokassa_payment_url no bloco Calculadora.
No campo Calculadora, atribua o resultado da função get_robokassa_payment_url a uma variável.
Você pode escolher o nome da variável você mesmo. As capturas de tela mostram nomes de variáveis de exemplo.
O link de pagamento será salvo nesta variável.
Você pode exibir a variável como um link em uma mensagem ou colocá-la em um botão com texto como Pagar.
Exemplo de link de pagamento:
https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda
Muitos sistemas de pagamento suportam caixas registradoras online em nuvem exigidas pela Lei Federal nº 54-FZ.
Revise os requisitos de recibo no site do seu provedor de pagamento selecionado para evitar problemas com as autoridades fiscais.
Calculadora
Exemplo 1:

Descrição dos Parâmetros
get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Parâmetros da Função
| Parâmetro | Descrição |
|---|---|
amount |
Valor do pagamento. Especifique o preço do produto em rublos. Parâmetro obrigatório. |
description |
Nome do produto. Este campo pode conter apenas letras inglesas ou russas, números e sinais de pontuação. O comprimento máximo é de 100 caracteres. Esta informação é exibida na interface do Robokassa e no recibo eletrônico recebido pelo cliente após o pagamento bem-sucedido. Parâmetro obrigatório. |
products_for_receipt |
Parâmetros de geração de recibo. Leia mais aqui. |
recurrent |
Ativa pagamentos recorrentes. Passe 1 se os pagamentos recorrentes estiverem ativados, ou None se estiverem desativados. |
currency |
Código de moeda de três letras. O valor deve corresponder estritamente aos parâmetros aceitos pelo Robokassa.USD — dólar americano;EUR — euro;KZT — tenge. |
Exemplos de Código
Exemplo 1: Link de Pagamento Sem Recibo
res = get_robokassa_payment_url(100, 'Compre-me')
Exemplo 2: Link de Pagamento Com Recibo
receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]
res = get_robokassa_payment_url(100, 'Compre-me', receipt, '3', 1, 1)
Você pode exibir a variável como um link em uma mensagem ou colocá-la em um botão com texto como Comprar.
Se o bloco contiver várias funções de link de pagamento e ocorrer um erro, o valor do erro será salvo na variável:
error_payment_funcO erro da última função na Calculadora será salvo.
Após configurar o pagamento corretamente e gerar o link de pagamento, teste a configuração.
Como Adicionar uma Descrição de Pagamento
Você pode adicionar uma descrição de pagamento definindo a variável:
payment_description

A descrição será exibida no formulário de pagamento e no recibo.
Como Processar o Resultado
Se o pagamento for bem-sucedido, um callback será enviado AUTOMATICAMENTE para a conversa do cliente na seção Clientes.
O callback consiste em:
- 10 caracteres da chave secreta do provedor de pagamento;
-
_success; - o valor do pagamento após um espaço.
O callback é gerado automaticamente. Você não precisa criá-lo você mesmo ou solicitá-lo ao suporte do provedor de pagamento.
Exemplo:
ovg58keefc_success 1500
Onde:
-
ovg58keefc— 10 caracteres da chave secreta do provedor de pagamento; -
_success— o resultado do processamento da solicitação indicando um pagamento bem-sucedido; -
1500— o valor do pagamento.
Por favor, observe
O callback é visível apenas para você na conversa do cliente.
O callback não é visível para o cliente, mas você pode configurar uma resposta para um pagamento bem-sucedido.
Exemplo
Configurações de um bloco usando a função get_robokassa_payment_url:
1. Exibindo o Link no Texto da Mensagem

Importante
O link de pagamento é único. Você não deve copiá-lo e enviá-lo para outros clientes.
Envie o link de pagamento através de uma variável no bot.
Callback após pagamento bem-sucedido:

2. Exibindo o Link em um Botão

Execução do bloco:

Callback após pagamento bem-sucedido:
