Como conectar
Para conectar o sistema de pagamento Stripe, você precisará de uma chave de API secreta e uma chave de webhook.
Você pode copiar a chave secreta da API acessando a seção Desenvolvedores -> Chave de API e copiando a Chave Secreta.
Passo 1. Vá para a seção Desenvolvedores -> Chave de API:

Passo 2. Encontre e copie a Chave Secreta:

Em seguida, você precisa definir o URL para callbacks. Isso é necessário para que o bot receba notificações de pagamento.
Vá para a seção Webhooks e adicione o endereço para os webhooks.

O formulário é aberto:

Passo 1. Clique em "+ adicionar destino".
Passo 2. Selecione eventos:

Passo 3. Selecione o tipo de "Endpoint de Webhook":

Passo 4. Conhecemos o tipo de solicitação e clique em "Continuar":

Passo 5. Escrevemos o nome e especificamos o URL do endpoint:

Especifique o URL - https://chatter.salebot.pro/stripe_callback/result
Passo 6. Dois endpoints serão criados, você pode visualizar as configurações antes de adicionar:

Passo 7. Em seguida, clique no botão "Adicionar destinos". Então os webhooks serão salvos.
Passo 8. Clique no botão "Concluído".

Salvamos e chegamos à página com o webhook instalado:

Passo 9. Em seguida, clique no webhook onde você selecionou todos os eventos:

Passo 10. Encontramos a chave de assinatura e a salvamos para nós (no futuro, precisaremos dela para conectar ao Mavibot):

Após receber as chaves, procedemos à conexão com o Mavibot.
No Mavibot, abra a seção "Adquirência" e selecione Stripe.

Na página de conexão, você precisa inserir as chaves recebidas:

Clique em "Salvar Configurações".
Pronto!
Isso conclui a conexão do sistema de pagamento!
Como conectar um callback sobre o status da transação
Para obter um callback adicional, precisaremos conectar um webhook além do existente.
Especifique o URL - https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status
e selecione os eventos:
charge.failedcharge.pendingcharge.succeeded

Saiba mais sobre cada tipo de webhook:
- charge.succeeded - contém informações sobre a conclusão bem-sucedida da transação (semelhante a um callback sobre um pagamento bem-sucedido)
- charge.pending - "a transação está em andamento", pode levar até 7 dias para ser concluída.
O webhook será parecido com {primeiros 10 caracteres }{tipo de webhook}
Por exemplo: sk_test_45LDPJLKT95d_charge.pending- charge.failed - "a transação falhou."
O webhook será parecido com {primeiros 10 caracteres }{tipo de webhook}
Por exemplo: sk_test_45LDPJLKT95d_charge.failed
Adicionamos o webhook recebido após salvar no campo Mavibot - Chave de webhook2:

stripe_invoice_id - ID da transação para a qual o callback de pagamento bem-sucedido não foi recebido imediatamente após o pagamento.
Como conectar impostos
Para usar impostos nos pagamentos, primeiro você precisa criá-los na conta pessoal do Stripe. Para fazer isso, insira as taxas de imposto na barra de pesquisa:

E clique em "+ Adicionar taxas de imposto":

Em seguida, especifique a taxa de imposto aplicável:

No menu aberto, selecione o tipo de imposto, a região onde ele se aplica, a taxa de imposto e a opção que indica se este imposto deve ser incluído no valor do pagamento 'Inclusivo' ou será adicionado além do valor - exclusivo:

Após criar a taxa de imposto, copie seu ID na variável stripe_tax_id antes de definir o valor do pagamento.

Para evitar erros, coloque uma string vazia ("") na variável stripe_tax_id após receber o link, para que você possa aplicar o imposto apenas quando necessário.
Se tudo for feito corretamente, no caso da taxa de imposto com o parâmetro exclusivo, você verá o seguinte

Como obter o link de pagamento
Para gerar um link de pagamento, você precisa definir o valor da variável payment_sum (por exemplo, 150 ou 100.55 (separado por um ponto!)), e a variável stripe_pay_url aparecerá depois disso. Esta variável pode ser exibida com um link ou colocada em um botão com o texto "Pagar".
O link se parece com:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
Por padrão, USD (dólar) está definido, se você precisar de outra moeda, precisa definir o valor da variável currency.
Além disso, antes de definir o valor da variável payment_sum, você pode definir as seguintes variáveis opcionais para configurar o pagamento.
Atenção! Se você usar ambas as variáveis stripe_payment_method_type e stripe_additional_payment_method_type, então os valores nelas DEVEM ser DIFERENTES!***
card
acss_debit
affirm
afterpay_clearpay
alipay
au_becs_debit
bacs_debit
bancontact
blik
boleto
cashapp
customer_balance
eps
fpx
giropay
grabpay
ideal
klarna
konbini
link
oxxo
p24
paynow
paypal
pix
promptpay
sepa_debit
sofort
us_bank_account
wechat_pay zip
Mais informações sobre cada um dos métodos e para quais países eles estão disponíveis podem ser encontradas na documentação do Stripe: ver no site
Exemplo de criação de link de pagamento
Vamos criar um link de pagamento no valor de 1000 rublos (por padrão, dólar)

Observe:
- Primeiro, especifique os parâmetros opcionais first_name, payment_description, etc.
- E por último, atribuímos o valor à variável payment_sumAs variáveis podem ser definidas anteriormente na cadeia, e não em um bloco, este é um exemplo.
Em seguida, no local desejado, exibimos a variável stripe_pay_url, que contém o link em um bloco ou em um botão:
Exemplo 1. Exibimos o link de pagamento diretamente na mensagem:

Teste no bot:

Exemplo 2. Adicionamos o link de pagamento em um botão:


Exemplo 3. Adicionamos o link como anexo à mensagem:

Teste no bot:

Todas as três opções são permitidas para enviar o link de pagamento no bot.
Ao clicar no botão ou ao seguir o link, seu pagador será redirecionado para a página de pagamento:

No exemplo, pode-se ver que os parâmetros que especificamos no calculador nas configurações do bloco foram aplicados: descrição do pedido, moeda e valor.
Se você passar o parâmetro da taxa de imposto (stripe_tax_id) no bloco:

A taxa de imposto também será exibida no formulário de pagamento:

payment_description = 'Pagamento de teste no Stripe'
currency = 'RUB'
stripe_tax_id = 'copie seu tax ID aqui'
payment_sum = 1000
Onde encontrar o tax ID:

Como configurar pagamentos recorrentes
Para pagamentos recorrentes (assinaturas), você precisa declarar a variável stripe_subscription antes de declarar a variável payment_sum e atribuir a ela o nome da assinatura.
Você também pode adicionar as seguintes variáveis:
interval – duração do intervalo da assinatura, nesta variável você precisa passar o valor 'day' - para dias, 'week' - semanas, 'month' - meses, 'year' - anos.
Se a variável não for declarada, por padrão o parâmetro 'month' será passado.
Importante! A duração de um ciclo de assinatura não pode ser superior a 1 ano (para o parâmetro 'year'), mais de 12 meses (para o parâmetro 'month'), mais de 52 semanas (para o parâmetro 'week').

interval_count – número de intervalos especificados, quantos dias, semanas ou meses haverá na assinatura pelo valor especificado. Por padrão, o parâmetro igual a um (1) será passado;
stripe_payment_method_type - método de pagamento, o padrão é pagamento por cartão (card). Pode ser substituído por outros métodos de pagamento disponíveis para Stripe. Os métodos disponíveis estão listados abaixo.
Por exemplo, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type - adicionar um método de pagamento adicional. Os métodos disponíveis estão listados abaixo
Por exemplo, stripe_additional_payment_method_type = 'sepa_debit'
Importante! Se você usar ambas as variáveis stripe_payment_method_type e stripe_additional_payment_method_type, então os valores nelas DEVEM ser DIFERENTES!
card
acss_debit
affirm
afterpay_clearpay
alipay
au_becs_debit
bacs_debit
bancontact
blik
boleto
cashapp
customer_balance
eps
fpx
giropay
grabpay
ideal
klarna
konbini
link
oxxo
p24
paynow
paypal
pix
promptpay
sepa_debit
sofort
us_bank_account
wechat_pay zip
Para mais informações sobre cada um dos métodos e para quais países eles estão disponíveis, consulte a documentação do Stripe: veja o site ver no site
Atenção! A duração da assinatura não pode exceder 1 ano (para o parâmetro 'year'), mais de 12 meses (para o parâmetro 'month'), mais de 52 semanas (para o parâmetro 'week').
Neste exemplo, uma assinatura chamada 'My_subscription' será criada com um preço de 90 USD por 3 meses e um pagamento repetido será feito com o mesmo valor após este 1 mês:

Um exemplo para copiar:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Após o pagamento, o cliente terá as variáveis stripe_subscription_id nas variáveis do negócio, que serão necessárias para configurar o cancelamento da assinatura, e stripe_customer_id, que pode ser usado posteriormente para verificar o status da assinatura.
A notificação (callback) é recebida apenas no primeiro pagamento recorrente!
NÃO HAVERÁ callback para chamadas repetidas. O controle passa pela função e pelo stripe_customer_id. através da função

Retornando às configurações de pagamento regulares
Para retornar aos pagamentos regulares, atribua à variável de assinatura uma string vazia **stripe_subscription = "". Neste caso, as variáveis interval e interval_count não afetarão a criação do link.

Configurações de cancelamento de assinatura
Para cancelar uma assinatura no calculador, use o método stripe_remove_subscription(stripe_subscription_id), onde stripe_subscription_id é o identificador que foi salvo nas informações do negócio após o pagamento.
Isso permitirá que você mantenha sua assinatura paga ativa até o final do período pago atual, mas cobranças futuras não ocorrerão e a assinatura será cancelada após a data de expiração:

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription - Em caso de sucesso, você receberá uma resposta com informações sobre a data em que a assinatura cancelada permanece válida.
Neste exemplo, o resultado da execução da função será colocado na variável answer e será possível verificar o resultado da execução.
Verificando o status da assinatura
stripe_check_subscription(subscription_id, customer_id), onde
stripe_subscription_id - ID da assinatura
stripe_customer_id - ID do cliente no Stripe (parâmetro opcional)

Como criar um cupom e obter um ID de desconto
Para receber o ID de desconto, crie um cupom em sua conta pessoal na seção "cupons". "cupons".

Após clicar no botão "Novo", uma página é aberta onde você precisa especificar:
- Nome — nome do desconto;
- ID — identificador que é gerado automaticamente.
- Tipo — tipo de desconto: percentual ou valor fixo
- Duração — A duração do desconto (único ou recorrente, por exemplo, para assinaturas) e outros parâmetros.

O cupom de desconto aparecerá no "Catálogo de produtos" na seção "Cupons", e você pode visualizar o ID de desconto acessando o menu do cupom:

Clique no cupom para copiar o ID do cupom:

Como adicionar um desconto ao pedido
- Ao gerar um link de pagamento (para assinaturas e pagamentos únicos).
No calculador do bloco, antes de declarar a variável payment_sum, defina a variável coupon_id atribuindo a ela o ID de desconto da conta pessoal do Stripe.

- Para adicionar a uma assinatura existente usando a função stripe_add_subscription_discount.
Defina as condições para acionar o bloco e chame a função especificada no calculador, passando para ela os parâmetros stripe_subscription_id (id da assinatura) e coupon_id (id do cupom de desconto). O desconto será aplicado para pagamentos de assinatura subsequentes.

stripe_subscription = 'Assinatura premium'
interval = 'month'
payment_description = 'Pagamento de teste no Stripe'
currency = 'USD'
coupon_id = 'ID do seu cupom'
stripe_add_subscription_discount(stripe_subscription_id, coupon_id)
stripe_tax_id = 'ID do imposto'
payment_sum = 90
Após a adição bem-sucedida, a função retorna uma mensagem indicando o ID da assinatura, tipo, valor ou porcentagem do desconto e também sua data de expiração.

Para mais informações sobre como criar uma assinatura, consulte a seção "Como configurar pagamentos recorrentes" "Como configurar pagamentos recorrentes"
Como excluir/alterar o desconto da assinatura
O desconto anexado à assinatura pode ser excluído ou substituído por outro desconto.
Se você deseja encerrar o desconto, defina uma condição para o bloco ser acionado e chame a função stripe_remove_subscription_discount no calculador, passando para ela o parâmetro stripe_subscrition_id (id da assinatura).

Após a conclusão bem-sucedida da operação, a função retorna uma mensagem contendo o ID da assinatura e a data de cancelamento do desconto.
A substituição do desconto, bem como a adição de um novo, é feita usando a função stripe_add_subscription_discount. Não se esqueça de passar para ela os parâmetros stripe_subscription_id e coupon_id.
Uma solicitação bem-sucedida atualizará o cupom anexado à assinatura e retornará uma mensagem com informações atuais.
Você pode ler como obter um ID de desconto na seção "Como criar um cupom e obter um ID de desconto". "Como criar um cupom e obter um ID de desconto".
Como processar o resultado
Após um pagamento bem-sucedido, callbacks serão enviados para o bot, que informarão que o pagamento foi bem-sucedido. Você vê esses callbacks no sistema como mensagens do usuário, para que o usuário não possa enviá-los, eles consistem nos primeiros 20 caracteres da chave secreta e do pós-escrito de sucesso, por exemplo: sk_live_d35gky6d8ers_success

Esses callbacks NÃO SÃO VISÍVEIS para o usuário, eles são exibidos apenas para o operador.
O tipo de comparação deve ser "Correspondência Exata"
Além disso, após o pagamento bem-sucedido, a variável stripe_payment_completed é definida como True.
Por exemplo, você pode processar um pagamento bem-sucedido em um bloco condicional e exibir a mensagem correspondente ao usuário:

Após a conclusão do pagamento, a variável stripe_callback_data será adicionada ao cliente, contendo os dados da resposta do sistema de pagamento para a transação concluída. Você pode extrair os dados necessários do dicionário resultante usando o método get.
Para fazer um pagamento repetido, você precisa redefinir o payment_sum, o link gerado anteriormente e, em seguida, reatribuir a variável payment_sum para obter um novo link. Você pode especificar o valor anterior.
Como testar pagamentos
Para testar a integração, você pode usar a chave secreta do ambiente de teste. Para fazer isso, mude para o modo de teste na conta pessoal do Stripe usando o botão no menu direito

Em seguida, execute a configuração descrita no início deste guia. Insira a chave secreta de teste e adicione o endereço do webhook ao ambiente de teste.
O número do cartão de teste
4242 4242 4242 4242
qualquer data futura
CVC - quaisquer três números
Se algo não funcionar, compare os dados com os dados no site oficial. no site oficial.


