Robokassa (KZ)
Como configurar a Robokassa
Vamos ver como implementar o recebimento de pagamentos no bot por meio do serviço Robokassa.
Crie uma loja virtual na área pessoal do serviço Robokassa e informe as configurações técnicas:
- Algoritmo de cálculo do hash: MD5 - Result Url: https://chatter.mavibot.ai/robokassa_callback/result - Método de envio de dados por Result Url: GET - Success Url: https://chatter.mavibot.ai/robokassa_callback/success - Método de envio de dados por Success Url: GET - Fail Url: https://chatter.mavibot.ai/robokassa_callback/fail - Método de envio de dados por Fail Url: GET

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

e preencha o formulário na janela que se abrir:
O campo Identificador da loja — Shop ID, que você pode encontrar nas configurações da loja na área pessoal da Robokassa.
Senhas #1 e senha #2 — sequências únicas geradas de números + letras.
campo Alíquota de IVA. É necessário indicar o código apropriado para transmitir o valor do IVA. Este campo define a alíquota de imposto na caixa registradora online. É determinado separadamente para cada tipo de produto, mas para todas as unidades de um produto específico juntas.
É usado com os valores:
Sem IVA.
IVA à alíquota de 0%.
IVA à alíquota de 5%
IVA do comprovante à alíquota de cálculo de 12%.
IVA do comprovante à alíquota de cálculo de 16%.
Como gerar um link de pagamento
Gerar um link de pagamento no bloco pode ser feito UM DOS dos métodos disponíveis:
Criação de link usando a variável payment_sum e parâmetros adicionais (versão funcional desatualizada)
Botão com a função Pagamento
O link de pagamento pode ser criado no botão com a função "Pagamento".
Como criar um botão com a função "Pagamento" foi explicado aqui
Vamos ver todos os parâmetros possíveis desse botão. Sobre como criar um botão com a função Pagamento é explicado neste artigo:
Parâmetros obrigatórios do botão Pagamento
Para gerar um link de pagamento nas configurações do botão, é necessário informar os parâmetros obrigatórios: Valor e Nome do produto.

campo Valor. Neste campo informamos o preço do produto em rublos
campo Nome do produto. Neste campo, você pode usar apenas caracteres do alfabeto inglês ou russo, números e sinais de pontuação. O comprimento máximo é de 100 caracteres. Essas informações são exibidas na interface da Robokassa e no Recibo Eletrônico que o cliente recebe após o pagamento bem-sucedido.
NÃO É POSSÍVEL usar aspas duplas no nome do produto: remova ou substitua por aspas simples.
a caixa de seleção Pagamento recorrente. Para ativar o pagamento recorrente
a caixa de seleção Com notificação de clique. Para acompanhar o acesso pelo link de pagamento, você pode marcar a opção. Nesse caso, ao clicar no botão, será enviada ao diálogo com o cliente no SaleBot uma notificação de que houve acesso ao link
A partir dessa notificação, é possível configurar a lógica de funcionamento posterior do bot.
Muitos sistemas de pagamento suportam caixas registradoras online em nuvem, elas são necessárias de acordo com a Lei 54-FZ. Leia as particularidades da emissão de recibos no site do sistema de pagamento escolhido para não passar por uma situação constrangedora com a Receita Federal.
Para gerar o recibo
menu Dados para geração do recibo. Ao clicar, abrirá um menu suspenso com os parâmetros para geração do recibo:

campo Nome do produto. Obrigatório para gerar o recibo.
NÃO É POSSÍVEL usar aspas duplas no Nome do produto: remova ou substitua por aspas simples.
campo Valor total em rublos. Neste campo, é necessário informar o valor a pagar levando em conta a quantidade de produtos. Se a quantidade for 1, então o Valor total em rublos é igual ao valor no campo Valor no campo obrigatório das configurações do botão
campo Quantidade. Quantidade ou peso do produto. Pode ser enviado um número inteiro ou decimal com ponto. Exemplo: 5 ou 10.3
Variáveis do cliente que serão criadas automaticamente ao usar o botão com a função Pagamento
Assim que o usuário receber o bloco com o botão "Pagamento", as variáveis do cliente serão criadas automaticamente:

Variável de serviço do cliente __payments , que armazena o valor e o identificador do link criado, é necessária para identificar o webhook do sistema de pagamento.
A variável de serviço do cliente __payments NÃO PODE ser excluída nem alterada!
Variável do cliente error_payment_button é criada se ocorrer um erro ao gerar o botão.
No valor da variável error_payment_button será gravado o texto do erro ou a resposta com erro do sistema de pagamento.
Os valores das variáveis tornam-se atuais ao passar para o próximo bloco
Como processar o resultado
Atenção!
A Robokassa envia notificação apenas para transações bem-sucedidas pelo parâmetro Result URL. Não há callbacks sobre pagamentos malsucedidos no serviço Robokassa.
Fail URL é apenas a página de pagamento malsucedido, para a qual o pagador será redirecionado em caso de ocorrer um erro de código na página de pagamento.
Pagamento bem-sucedido.
Depois de configurar corretamente o pagamento e gerar o link para realizar o pagamento, teste as configurações criadas. Se o pagamento for concluído com sucesso, no diálogo do cliente (seção "Clientes") AUTOMATICAMENTE chegará um CALLBACK, que consiste em 10 caracteres da chave secreta do sistema de pagamento, da palavra _success e, após um espaço, o valor do pagamento. O callback é gerado automaticamente, não é necessário criá-lo manualmente nem solicitá-lo ao suporte do sistema de pagamento,


Por exemplo: ovg58keefc_success 2999, onde:
ovg58keefc : 10 caracteres da chave secreta do sistema de pagamento
_success : resultado do processamento da solicitação (pagamento bem-sucedido)
2999 : valor do pagamento
Execução do bloco:

Callback:

Os callbacks (notificações) do sistema de pagamento o usuário NÃO VÊ. Eles aparecem apenas na aba "Clientes" e ficam visíveis para o operador/administrador.
Exemplo de configuração da reação ao callback
No bloco com condição (pode ser tanto o bloco "Condição inicial" quanto o bloco "Não estado com condição") é necessário informar o callback que chega no pagamento.
Importante: escolha de correspondência Correspondência exata ou Por presença de palavras-chave

Em seguida, no pagamento, o cliente receberá a mensagem do bloco no qual a reação ao callback foi configurada:

Pagamento com erro
Se o valor informado nas configurações do botão for diferente do valor que o cliente pagou, no bot AUTOMATICAMENTE chegará um CALLBACK, que consiste em 10 caracteres da chave secreta do sistema de pagamento, da palavra _different_amounts e, após um espaço, o ID único do pagamento
Por exemplo: ovg58keefc_different_amounts 123456 , onde:
ovg58keefc : 10 caracteres da chave secreta do sistema de pagamento
_different_amounts : resultado do processamento da solicitação (o valor do pagamento difere do valor no link)
123456 : ID único do pagamento
Função get_robokassa_payment_url na Calculadora
Para gerar um link de pagamento, você pode usar a função get_robokassa_payment_url no bloco Calculadora.
No campo Calculadora, atribuiremos à variável o valor da função get_robokassa_payment_url
O nome da variável é definido por você. Nos screenshots, há exemplos de nomes de variáveis.
Nessa variável será gravado o link de pagamento. A variável pode ser exibida na tela como link em uma mensagem ou colocada em um botão com o texto "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, elas são necessárias de acordo com a Lei 54-FZ. Leia as particularidades da emissão de recibos no site do sistema de pagamento escolhido para não passar por uma situação constrangedora com a Receita Federal.
Exemplo 1:

get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Parâmetros da função:
amount
Valor a pagar. Neste campo informamos o preço do produto em rublos.
(Parâmetro obrigatório)
description
Nome do produto. Neste campo, você pode usar apenas caracteres do alfabeto inglês ou russo, números e sinais de pontuação. O comprimento máximo é de 100 caracteres. Essas informações são exibidas na interface da Robokassa e no Recibo Eletrônico que o cliente recebe após o pagamento bem-sucedido. (Parâmetro obrigatório)
products_for_
receipt
Parâmetros para geração de recibos.
Leia mais aqui.
recurrent
Ativação do pagamento recorrente. Se o pagamento recorrente estiver ativado, transmita o valor 1; se estiver desativado, transmita o valor None
currency
Código de moeda de três letras.
É necessário transmitir o valor estritamente de acordo com os parâmetros aceitos pelo serviço Robokassa. USD - dólar; EUR - euro; KZT - tenge.
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)
A variável pode ser exibida na tela como link em uma mensagem ou colocada em um botão com o texto, por exemplo, "Comprar".
Se houver várias funções no bloco para obter o link e ocorrer um erro, o valor do erro será gravado na variável error_payment_func
O erro será gravado na última função na Calculadora
Depois de configurar corretamente o pagamento e gerar o link para realizar o pagamento, teste as configurações criadas.
Como adicionar uma descrição ao pagamento
Você pode adicionar uma descrição ao pagamento definindo a variável payment_description

Essa descrição será exibida no formulário de pagamento, bem como no recibo.
Como processar o resultado
Se o pagamento for concluído com sucesso, no diálogo do cliente (seção "Clientes") AUTOMATICAMENTE chegará um CALLBACK, que consiste em 10 caracteres da chave secreta do sistema de pagamento, da palavra _success e, após um espaço, o valor do pagamento. O callback é gerado automaticamente, não é necessário criá-lo manualmente nem solicitá-lo ao suporte do sistema de pagamento,
Por exemplo: ovg58keefc_success 1500, onde:
ovg58keefc : 10 caracteres da chave secreta do sistema de pagamento
_success : resultado do processamento da solicitação (pagamento bem-sucedido)
1500 : valor do pagamento
Atenção!
O callback fica visível apenas para você no diálogo com o cliente.
O callback não fica visível para o cliente, mas você pode configurar uma reação para o processamento bem-sucedido do pagamento.
Exemplo
Configurações do bloco com a função get_robokassa_payment_url:
Se você exibe o link no texto:

Importante!
O link de pagamento é único: não é possível copiá-lo e depois enviá-lo para outros clientes!
Envie o link de pagamento por meio de uma variável no bot (veja fig. 17).
Callback em caso de pagamento bem-sucedido:

Link no botão:

Execução do bloco:

Callback em caso de pagamento bem-sucedido:

Criação de link usando a variável payment_sum e parâmetros adicionais
Você também pode receber pagamentos gerando o link com a variável payment_sum, na qual basta informar o valor do pagamento.
Observe: à variável payment_sum é atribuído o último valor, após as variáveis opcionais payment_description, product_name etc.
Para gerar o link de pagamento, você precisa definir o valor da variável payment_sum, logo em seguida aparecerá a variável robokassa_pay_url. Essa variável pode ser exibida na tela como link ou colocada em um botão com o texto "Pagar".

EXEMPLO de execução do bloco (links de pagamento):

Importante!
O link de pagamento é único: não é possível copiá-lo e depois enviá-lo para outros clientes!
Envie o link de pagamento por meio de uma variável no bot
Para enviar o link no botão, informe a variável no botão no campo url:

Resultado do pagamento ao gerar o link de pagamento por meio de payment_sum
Após o pagamento bem-sucedido, um callback chegará ao bot. Nesse sistema, você o vê como uma mensagem do usuário; para que ele não possa ser enviado pelo usuário, eles consistem na primeira senha do serviço Robokassa e de um sufixo com o status success, por exemplo: qxgZ7zkNX4HHnG8UpZ61_success.

Além disso, após o pagamento bem-sucedido, a variável robokassa_payment_completed é definida como True.
Esse callback NÃO VÊ o usuário, eles são exibidos apenas para o operador
O tipo de comparação deve ser "Correspondência exata"
Para realizar um novo pagamento, é obrigatório zerar payment_sum, o link gerado anteriormente e somente depois reatribuir a variável payment_sum para obter um link novo Exemplo de zeramento de variáveis: robokassa_pay_url='' payment_sum=0
Após a conclusão do pagamento, será adicionada ao cliente a variável robokassa_callback_data, contendo os dados da resposta do sistema de pagamento sobre a operação realizada. Do dicionário recebido, é possível extrair os dados necessários usando o método get.
Como criar um fluxo de teste
Exemplo de fluxo que permitirá testar e começar a trabalhar rapidamente com o serviço Robokassa:

Na figura, é mostrado um exemplo do primeiro bloco, no qual se pergunta ao usuário quanto ele quer pagar.
Na figura abaixo, as configurações da seta: nela o alternador "Usuário insere dados" deve estar ativado e, no campo, deve estar escrita a variável payment_sum:

Em seguida, no próximo bloco de pagamento, adicione um botão e defina a variável na linha url robokassa_pay_url:


O fluxo funcionará da seguinte forma:

Ao clicar no botão, o valor informado pelo cliente estará disponível para pagamento.
Após o pagamento, chegará um callback, para o qual também é possível configurar uma reação.

Importante!
Não existe callback de pagamento malsucedido na Robokassa.
Para isso, adicione mais um bloco com condição e, na linha da condição, escreva um callback do tipo "qxgZ7zkNX4HHnG8UpZ61_success":

Defina obrigatoriamente o tipo de verificação como "Correspondência exata"
O fluxo funcionará da seguinte forma:

Como gerar uma solicitação de fiscalização
No botão com a função “Pagamento”
Ao criar o botão no menu suspenso “Dados para geração do recibo”, preencha os campos “Nome do produto”, “Valor total em rublos”, “Quantidade”, “Alíquota de IVA”, “Sistema de tributação”.

Mais detalhes na seção "Para gerar o recibo".
Usando a variável payment_sum
Como a geração do link ocorre no momento em que você define o valor da variável payment_sum, é necessário definir as variáveis products_for_receipt e robokassa_sno.
Importante:
ao gerar o link pela variável payment_sum, o sistema de tributação é definido na variável robokassa_sno.
payment_sum deve ser igual ao valor total de todos os produtos (soma de todos os parâmetros sum).
Exemplo:
session_timeout = 7200
product_name = Primeiro pagamento
robokassa_sno = osn
products_for_receipt = [{"name": "Nome do produto", "quantity": 2, "sum": 2, "tax": "none"}, {"name": "Nome do produto 2", "quantity": 1, "sum": 6, "tax": "none"}]
payment_sum = 10
Para as funções get_robokassa_payment_url e robokassa_recurrent_payment
Ao chamar as funções get_robokassa_payment_url ou a função robokassa_recurrent_payment passe as variáveis como argumentos taxation e products_for_receipt conforme a descrição abaixo.
As funções prepararão o link levando em conta a nomenclatura dos produtos e gerarão a solicitação de fiscalização.
Importante:
Variáveis taxation e products_for_receipt devem ser definidas para cada pagamento individual.
O serviço Robokassa não armazena esses parâmetros e não conseguirá realizar a fiscalização dos pagamentos para os quais a nomenclatura não foi enviada.
products_for_receipt - um array contendo a nomenclatura dos produtos.
Cada item do produto deve ser representado na forma de um dicionário contendo os parâmetros name, quantity, sum, tax, payment_method, payment_object e nomenclature_code.
! products_for_receipt devem ser informados no seguinte formato:
[
{"name": "Nome do produto", "quantity": "Quantidade do produto", "sum": "Preço do produto", "tax": "Alíquota de IVA"},
{"name": "Nome do produto 2", "quantity": "Quantidade do produto 2", "sum": "Preço do produto", "tax": "Alíquota de IVA"}
]
onde,
1) name - nome do produto. Se você usar caracteres especiais no nome do produto, por exemplo aspas, é obrigatório escapá-los.
2) quantity - quantidade ou peso do produto (número inteiro ou decimal com ponto)
3) sum ou amount (obrigatório, duas variações de nome) - valor total em rublos para toda a quantidade desse produto, considerando todos os possíveis descontos, bônus e preços especiais.
4) tax ou vat_code - (obrigatório, duas variações de nome; o valor depende do nome) - alíquota de IVA. Esse parâmetro define a alíquota de imposto na caixa registradora online.
none
sem IVA
vat0
IVA à alíquota de 0%
vat5
IVA à alíquota de 5%
vat12
IVA à alíquota de 12%
vat16
IVA à alíquota de 16%
'1'
Sem IVA
'2'
IVA à alíquota de 0%
'8'
IVA à alíquota de 5%
'15'
IVA à alíquota de 12%
'14'
IVA à alíquota de 16%
5) method ou payment_method - (duas variações de nome, parâmetro opcional) indicativo do método de pagamento.
full_prepayment
pré-pagamento de 100%. Pagamento antecipado integral antes da entrega do item do cálculo
prepayment
pré-pagamento. Pagamento antecipado parcial antes da entrega do item do cálculo
advance
adiantamento
full_payment
pagamento integral. Pagamento total, incluindo o adiantamento (pré-pagamento) no momento da entrega do item do cálculo;
partial_payment
pagamento parcial e crédito. Pagamento parcial do item do cálculo no momento da entrega, com pagamento posterior a crédito;
credit
entrega a crédito. Entrega do item do cálculo sem pagamento no momento da entrega, com pagamento posterior a crédito;
credit_payment
pagamento do crédito. Pagamento do item do cálculo após sua entrega com pagamento a crédito (quitação do crédito).
6) object ou payment_object - (duas variantes de nome, parâmetro opcional) item do cálculo (se não for informado, será commodity (mercadoria))
commodity
Produto. Sobre o produto vendido, exceto produto sujeito a imposto especial (nome e outras informações que descrevem o produto)
excise
Produto sujeito a imposto especial. Sobre o produto sujeito a imposto especial vendido (nome e outras informações que descrevem o produto)
job
Trabalho. Sobre o trabalho executado (nome e outras informações que descrevem o trabalho)
service
Serviço. Sobre o serviço prestado (nome e outras informações que descrevem o serviço)
gambling_bet
Aposta de jogo de azar. Sobre o recebimento de apostas no exercício de atividades de jogos de azar
gambling_prize
prêmio de jogo de azar. Sobre o pagamento de valores na forma de prêmio no exercício de atividades de jogos de azar
lottery
bilhete de loteria. Sobre o recebimento de valores na venda de bilhetes de loteria, bilhetes eletrônicos de loteria, recebimento de apostas de loteria no exercício de atividades de loteria
lottery_prize
prêmio de loteria. Sobre o pagamento de valores na forma de prêmio no exercício de atividades de loteria
atividade intelectual
fornecimento de resultados de atividade intelectual. Sobre a concessão de direitos de uso de resultados de atividade intelectual ou meios de individualização
pagamento
pagamento. Sobre adiantamento, arras, pré-pagamento, crédito, contribuição para pagamento, multa por atraso, multa, remuneração, bônus e outro item de liquidação semelhante
comissão de agente
remuneração de agente. Sobre a remuneração do usuário que seja agente de pagamento (subagente), agente bancário de pagamento (subagente), comissionista, mandatário ou outro agente;
composto
item composto de cálculo. Sobre o item de cálculo composto por itens, a cada um dos quais pode ser atribuído o valor dos sinais acima listados
outro
outro item de cálculo. Sobre o item de cálculo que não se refere aos itens de cálculo listados acima
direito patrimonial
direito patrimonial
receita não operacional
receita não operacional
contribuições de seguro
contribuições de seguro
taxa comercial
taxa comercial
taxa de resort
taxa de resort
7) código da nomenclatura - (condicionalmente obrigatório) marcação do produto: é transmitida exatamente como está impressa na embalagem do produto.
O parâmetro é obrigatório apenas para as lojas que vendem produtos sujeitos à marcação obrigatória.
O código de marcação fica na embalagem do produto, ao lado do código de barras ou como código QR.
Importante! Para a fiscalização, é importante informar os parâmetros do recibo.
O formato correto do recibo é transmitido assim:
rec = [{"name": "Pacote 1 mês", "quantity": 1, "sum": 4800, "tax": "none"}]
response = robokassa_recurrent_payment(4800, 'Treinamento na escola de voo Aviator', 'ru', rec, 'osn')
onde é necessário inserir seus dados.
Emissão do recibo ao receber pagamento nos Cursos na página do curso
É preciso selecionar, na seção "Pagamento" das configurações do curso, o sistema de pagamento Robokassa:

Preencha, na seção "Adquirência" nas configurações do sistema de pagamento (se ainda não fez isso), o campo "Alíquota de ICMS".

Quais podem ser os erros
Código de erro 40
«Não é possível repetir o pagamento da fatura com o mesmo número».
Após o pagamento bem-sucedido, é necessário mover o diálogo para o bloco "Fim da coleta de dados", para que um novo número de pagamento seja gerado.
Código de erro 34
«O serviço de pagamentos recorrentes não é permitido para a loja».
Código de erro 31
«Valor de pagamento inválido».
Tal erro pode ocorrer ao redirecionar o cliente para a página de pagamento para emissão da fatura. Isso significa que você não está nos informando o valor sobre o qual o pagamento deve ser processado, ou está informando um valor igual a zero.
Código de erro 29
«Parâmetro Signature inválido»
Aqui podem haver vários motivos, mas todos estão relacionados ao script responsável pela inicialização do pagamento (especificamente, a parte dele que forma o parâmetro Signature pela fórmula composta por variáveis). Esse erro ocorre com bastante frequência, e aqui estão 3 possíveis motivos:
Primeiro: Identificador da loja incorreto (MerchantLogin);
Segundo: Senha 1 incorreta (MerchantPass1);
Terceiro: você usa parâmetros adicionais (shp_), que foram adicionados ao código do caixa, mas não foram incluídos na fórmula de cálculo — ou vice-versa, na fórmula de cálculo eles estão indicados, mas no código não. Se forem usados, passe-os em ordem alfabética — tanto nos parâmetros de pagamento quanto na fórmula de cálculo do Signature.
Ponto importante! Se você estiver trabalhando em modo de teste, passando o parâmetro IsTest=1 ou ativando-o com uma caixa de seleção nas configurações do módulo/bot, use apenas o par de senhas técnicas de teste (aba «Configurações técnicas» do cartão da sua loja).
Código de erro 23
«O pagamento de teste não pode ser criado. A loja não possui configurações de parâmetros de teste».
Isso significa que, antes de realizar um pagamento de teste, você não preencheu todos os dados necessários no bloco «Parâmetros para realização de pagamentos de teste» da aba «Configurações técnicas».
Código de erro 25
«A loja não foi ativada».
Esse erro ocorre com frequência, e aqui podem haver 2 motivos.
Primeiro: isso é realmente assim – e é necessário ativar a loja e só depois emitir a fatura.
Segundo: você indicou incorretamente o Identificador da loja nas configurações técnicas do site. O correto pode ser visto na seção «Minhas lojas» da Área Pessoal. Vá para a aba «Configurações técnicas» e encontre o campo «Identificador da loja». Copie o identificador e insira-o nas configurações do site.
Como realizar pagamentos automáticos do serviço Robokassa
Instruções passo a passo para conectar pagamentos automáticos ao serviço Robokassa
Passo 1. Ativar pagamentos automáticos no botão de pagamento
Vá para as configurações do bloco no qual você fornece o link de pagamento e vá para as configurações do botão:

Depois, nas configurações do botão, encontre a caixa de seleção "Pagamentos automáticos" e ative-a:

Se você quiser aceitar pagamentos automáticos em todos os botões de pagamento, ative os pagamentos automáticos nas configurações de conexão do sistema de pagamento:

Passo 2. Realizar um pagamento normal. Em seguida, é preciso fazer um pagamento normal (obter o link de pagamento e fazer com que o cliente o pague), como descrito acima. Após o pagamento bem-sucedido, o cliente terá a variável robokassa_previous_invoice_id com o identificador do pagamento.
A variável robokassa_previous_invoice_id é obrigatória para os pagamentos seguintes. Se ela for excluída, o próximo pagamento automático NÃO poderá ser realizado.
Atenção!
Desative a caixa de seleção "Pagamentos em modo de teste" (se ela estiver ativa), caso contrário a variável robokassa_previous_invoice_id com o identificador do pagamento não será gerada!


Passo 3. Programar a cobrança automática
Do bloco Pagamento bem-sucedido, planejamos uma seta com temporizador para o bloco de pagamento automático. Por exemplo, vamos agendar o próximo pagamento para daqui a 30 dias.

Para que o pagamento automático aconteça no bloco desejado, no campo Calculadora, é preciso adicionar a chamada da função robokassa_recurrent_payment, passando a ela os parâmetros na ordem indicada:
payment_amount - valor a pagar (custo do produto em rublos)
description - nome do produto. Neste campo, você pode usar apenas caracteres do alfabeto inglês ou russo, números e sinais de pontuação. O comprimento máximo é de 100 caracteres. Essas informações são exibidas na interface da Robokassa e no Recibo Eletrônico que o cliente recebe após o pagamento bem-sucedido.
country - zona do domínio (‘ru’ ou ‘kz’)
products_for_receipt - parâmetros para geração de recibos.
Mais detalhes na seção "Como gerar uma solicitação de fiscalização -> Para as funções get_robokassa_payment_url e robokassa_recurrent_payment
taxation - sistema tributário.
Mais detalhes na seção "Como gerar uma solicitação de fiscalização -> Para as funções get_robokassa_payment_url e robokassa_recurrent_payment
Exemplo de solicitação de pagamento automático:

Na execução do pagamento automático, não deve haver link de pagamento da Robokassa nem a variável payment_sum!
Passo 4. Programar cobranças recorrentes e configurar a possibilidade de cancelar os pagamentos automáticos. Para a repetição regular dos pagamentos, programamos um loop - uma seta com atraso, por exemplo, de 30 dias.

Se você tiver a opção de cancelar os pagamentos automáticos, para que o próximo pagamento não seja realizado, é necessário excluir do cliente a variável robokassa_previous_invoice_id
Para isso, no campo Calculadora, excluímos a variável:
robokassa_previous_invoice_id = ""

Pagamento normal com pagamentos automáticos ativados
Se os pagamentos automáticos estiverem ativados, mas for necessário um link sem assinatura (sem pagamentos automáticos), então, antes de gerar o link, é preciso definir a variável robokassa_manual_recurrent_disable com o valor 1
No campo Calculadora, declaramos a variável:
robokassa_manual_recurrent_disable = 1

Atenção!
O callback em pagamentos automáticos é idêntico ao callback que chega nos pagamentos bem-sucedidos.
Como configurar a reação ao callback, explicamos na seção "Como processar o resultado"
Quais são os requisitos do serviço Robokassa para chatbots
Resposta oficial do serviço Robokassa:
Você pode publicar o produto no marketplace com descrição e preço e aceitar pagamento no bot, pode criar uma página simples com descrição, preço, dados de contato e indicação de que a entrega do produto/prestação do serviço é eletrônica. Precisamos de um vínculo com o produto no marketplace ou com o site, porque não podemos saber o que você vende no seu bot nem em qual bot estamos.
Não incluímos o link para o canal do Telegram como URL. Também exigimos que o site tenha o seguinte conteúdo: "O site deve estar funcionando, com conteúdo preenchido e links internos operando.
Os produtos e serviços no seu site devem ser descritos em detalhes: a descrição deve incluir as características dos bens e serviços oferecidos, suas propriedades de consumo e o preço atual.
No seu site deve obrigatoriamente haver informações atualizadas: telefone, e-mail, regras de realização e prazos de execução do pedido, condições de pagamento, entrega e devolução.
Cada site é analisado individualmente.
Robokassa no Telegram
Conexão do bot de teste RobokassaPaymentTestBot.
Ao selecionar Connect Robokassa Test, o usuário vai para o bot RobokassaPaymentTestBot.
O usuário pressiona o botão /iniciar.
O usuário recebe a resposta do bot: "Digite o ID da loja".
É necessário inserir o id da loja no serviço Robokassa.
O bot pedirá uma confirmação que comprove a posse da loja por meio do envio de um SMS para o número indicado na loja: «SMS enviada para o número *%%%%», onde %%%% são os últimos 4 dígitos do telefone
O usuário insere o código de 6 dígitos.
Se tudo ocorrer com sucesso, a mensagem será exibida ao usuário: “Você conectou com sucesso o bot @BotName à Robokassa. @BotFather informará a você um novo token.”
Depois disso, no BotFather aparece o token de pagamento ao qual os pagamentos são conectados.
Conexão do bot ao vivo RobokassaPaymentBot.
Ao selecionar Connect Robokassa Live, o usuário vai para o bot RobokassaPaymentBot,
O usuário pressiona o botão /iniciar.
O usuário recebe a resposta do bot: "Digite o ID da loja".
É necessário inserir o id da loja no serviço Robokassa.
O bot pedirá uma confirmação que comprove a posse da loja por meio do envio de um SMS para o número indicado na loja: «SMS enviada para o número *%%%%», onde %%%% são os últimos 4 dígitos do telefone
O usuário insere o código de 6 dígitos.
Se tudo ocorrer com sucesso, a mensagem será exibida ao usuário: “Você conectou com sucesso o bot @BotName à Robokassa. @BotFather informará a você um novo token.”
Depois disso, no BotFather aparece o token de pagamento ao qual os pagamentos são conectados.
O processamento dos resultados do pagamento é semelhante ao descrito aqui
Atualizado