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.failed
  • charge.pending
  • charge.succeeded

Saiba mais sobre cada tipo de webhook:

  1. charge.succeeded - contém informações sobre a conclusão bem-sucedida da transação (semelhante a um callback sobre um pagamento bem-sucedido)
  2. 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
  3. 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

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

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_sum

As 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:

  1. Nome — nome do desconto;
  2. ID — identificador que é gerado automaticamente.
  3. Tipo — tipo de desconto: percentual ou valor fixo
  4. 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

  1. 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.

  1. 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.