Stripe
Cómo conectar
Para conectar el sistema de pago Stripe, necesitará una clave API secreta y una clave de webhook.
Puede copiar la clave API secreta yendo a la sección Developers -> API key y copiando la Secret key.
Paso 1. Vaya a la sección Developers -> API key:

Paso 2. Encuentre y copie la Secret key:

A continuación, debe establecer la URL para los callbacks. Esto es necesario para que el bot reciba notificaciones de pago.
Vaya a la sección Webhooks y añada la dirección para los webhooks.

Se abre el formulario:

Paso 1. Haga clic en "+add destination".
Paso 2. Seleccione los eventos:

Paso 3. Seleccione el tipo de "Webhook endpoint":

Paso 4. Nos familiarizamos con el tipo de solicitud y hacemos clic en "Continue":

Paso 5. Escribimos el nombre y especificamos la URL del endpoint:

Especifique la URL - https://chatter.salebot.pro/stripe_callback/result
Paso 6. Se crearán dos endpoints, puede ver la configuración antes de añadirlos:

Paso 7. A continuación, haga clic en el botón "Add destinations". Entonces los webhooks se guardarán.
Paso 8. Haga clic en el botón "Done".

Lo guardamos y llegamos a la página con el webhook instalado:

Paso 9. A continuación, haga clic en el webhook donde seleccionó todos los eventos:

Paso 10. Encontramos la clave Signig y la guardamos para nosotros (en el futuro la necesitaremos para conectarla a Salebot):

Después de recibir las claves, procedemos a conectar con Mavibot.
En Mavibot, abra la sección "Acquiring" y seleccione Stripe.

En la página de conexión, debe introducir las claves recibidas:

Haga clic en "Save Settings".
¡Listo!
¡Con esto se completa la conexión del sistema de pago!
Cómo conectar un callback sobre el estado de la transacción
Para obtener un callback adicional, necesitaremos conectar un webhook en además del existente.
Especifique la URL - https://chatter.salebot.pro/stripe_callback/<api_key>/charge_status
y seleccione los eventos:
charge.failedcharge.pendingcharge.succeeded

Obtenga más información sobre cada tipo de webhook:
charge.succeeded - contiene información sobre la finalización exitosa de la transacción (similar a un callback sobre un pago exitoso)
charge.pending - "la transacción está en curso", puede tardar hasta 7 días en completarse. El webhook tendrá este aspecto: {primeros 10 caracteres}{tipo de webhook} Por ejemplo: sk_test_45LDPJLKT95d_charge.pending
charge.failed - "la transacción falló." El webhook tendrá este aspecto: {primeros 10 caracteres}{tipo de webhook} Por ejemplo: sk_test_45LDPJLKT95d_charge.failed
Añadimos el webhook recibido después de guardarlo en Mavibot en el campo - Webhook key2:

stripe_invoice_id - ID de la transacción para la cual no se recibió inmediatamente después del pago el callback de pago exitoso.
Cómo conectar impuestos
Para usar impuestos en los pagos, primero debe crearlos en la cuenta personal de Stripe. Para ello, escriba tax rates en la barra de búsqueda:

Y haga clic en "+ Add tax rates":

A continuación, especifique la tasa de impuesto aplicable:

En el menú que se abre, seleccione el tipo de impuesto, la región a la que se aplica, la tasa impositiva y la opción que indica si este impuesto debe incluirse en el importe del pago 'Inclusive' o añadirse por encima del importe - exclusive:

Después de crear la tasa impositiva, copie su ID en la stripe_tax_id variable antes de establecer el importe del pago.

Para evitar errores, ponga una cadena vacía ("") en la variable stripe_tax_id después de recibir el enlace, para poder aplicar el impuesto solo cuando sea necesario.
Si todo se hace correctamente, entonces, en el caso de la tasa impositiva con el parámetro exclusive, verá lo siguiente

Cómo obtener un enlace de pago
Para generar un enlace de pago, debes establecer el valor de la payment_sum variable (por ejemplo, 150 o 100.55 (separado por un punto!)), y después aparecerá la variable stripe_pay_url. Esta variable puede mostrarse con un enlace o colocarse en un botón con el texto "Pay".
El enlace se ve así:
https://checkout.stripe.com/pay/cs_test_a17mskKFFRwEuo3WgBSAUjfk7xaZZIrct9B3Ds2AdODVq1I8aRiqYEBdrU#fidkdWxOYHwnPyd1blpxYHZxWjA0TGFsVzFPVmpmMzJAbVYzUkp1Y0lLYDVgfzR2Q0NxcWZBNUNnTnRSVVRJSGFobEB1UExSczRMMTc8PWRLMGBddl8xalxyPDRoUGhnZm9xXXZANDZyaF0wNTVBVExsPHZyfycpJ2N3amhWYHdzYHcnP3F3cGApJ2lkfGpwcVF8dWAnPyd2bGtiaWBabHFgaCcpJ2BrZGdpYFVpZGZgbWppYWB3dic%2FcXdwYHgl
De forma predeterminada, se establece USD (dólar); si necesita otra moneda, debe establecer el valor de la currency variable.
Además, antes de establecer el valor de la payment_sum variable, puede establecer las siguientes variables opcionales para configurar el pago.
currency
es la moneda del pedido. Valores aceptables -https://stripe.com/docs/currencies
payment_description
descripción del pedido
stripe_tax_id
Este es el ID de la tasa impositiva, configurado en la cuenta personal de Stripe. Cómo configurarlo se describe en la sección "Cómo configurar impuestos" ссылка "Cómo conectar impuestos"
stripe_invoice_enable
Este parámetro indica la necesidad de guardar facturas (invoices, receipts). Introduzca cualquier valor: todos los documentos necesarios estarán entonces disponibles en su cuenta personal de Stripe.
stripe_locale
establece el idioma del enlace de pago: en, ru, de. Todos los idiomas disponibles están aquí: https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-locale Si el stripe_local si no se proporciona un valor, se usará por defecto el idioma del navegador del cliente.
stripe_payment_method_type
es el método de pago; el pago predeterminado es con tarjeta. Puede reemplazarlo por otros métodos de pago disponibles en Stripe. Los métodos disponibles se enumeran a continuación
Por ejemplo, stripe_payment_method_type = "customer_balance"
stripe_additional_payment_method_type
es para añadir un método de pago adicional. Los métodos disponibles se enumeran a continuación, por ejemplo, stripe_additional_payment_method_type = "sepa_debit"
coupon_id
ID del cupón de descuento
stripe_expired
es la duración del enlace de pago. Se especifica en segundos. El tiempo mínimo es 30 minutos, el máximo es 24 horas. El valor predeterminado es 24 horas
stripe_automatic_tax
activación del cálculo y cobro automático de impuestos durante el pago. Para activarlo, pase "1". La información detallada sobre esta configuración se puede encontrar en la documentación de Stripe. ссылка en la documentación de Stripe
¡Atención! Si usa ambas stripe_payment_method_type y stripe_additional_payment_method_type variavles, entonces los valores en ellas ¡DEBEN ser DIFERENTES!
Lista de valores para stripe_payment_method_type y stripe_additional_payment_method_type
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
Puede obtener más información sobre cada uno de los métodos y para qué países están disponibles en la documentación de Stripe: ver en el sitio
Ejemplo de creación del enlace de pago
Creemos un enlace de pago por un importe de 1000 rublos (por defecto, dólar)

Tenga en cuenta: - Primero indique parámetros opcionales first_name, payment_description y así sucesivamente. - Y al final asignamos el valor a la variable payment_sum
Las variables también se pueden establecer antes en la cadena, y no en un solo bloque; esto es un ejemplo.
Luego, en el lugar necesario, mostramos la variable stripe_pay_url, que contiene el enlace en el bloque o en el botón:
Ejemplo 1. Mostramos el enlace de pago directamente en el mensaje:

Pruebas en el bot:

Ejemplo 2. Añadimos el enlace de pago a un botón:


Ejemplo 3. Añadimos el enlace como adjunto al mensaje:

Pruebas en el bot:

Los tres варианты son válidos para enviar el enlace de pago en el bot.
Al hacer clic en el botón o al seguir el enlace, su pagador será redirigido a la página de pago:

En el ejemplo se ve que se aplicaron los parámetros que indicamos en la calculadora en la configuración del bloque: descripción del pedido, moneda e importe.
Si pasa el parámetro de tasa impositiva (stripe_tax_id) en el bloque:

Entonces también se mostrará la tasa impositiva en el formulario de pago:

Ejemplo de código para copiar
payment_description = 'Pago de prueba en Stripe'
currency = 'RUB'
stripe_tax_id = 'copie aquí su tax ID'
payment_sum = 1000
Dónde encontrar el tax ID:

Cómo configurar pagos recurrentes
Para los pagos recurrentes (suscripciones), antes de declarar la variable payment_sum declare la variable stripe_subscription y asígnele el nombre de la suscripción.
También puede añadir las siguientes variables: interval – duración del intervalo de suscripción; a esta variable debe pasar el valor ‘day’ - para días, ‘week’ - semanas, ‘month’ - meses, ‘year’ - años. Si la variable no se declara, entonces por defecto se pasará el parámetro ‘month’.
¡Importante! La duración de un ciclo de suscripción no puede ser superior a 1 año (para el parámetro ‘year’), más de 12 meses (para el parámetro ‘month’), ni más de 52 semanas (para el parámetro ‘week’).

interval_count – número de intervalos especificados: cuántos días, semanas o meses habrá en la suscripción por la cantidad indicada. Por defecto se pasará un parámetro igual a uno (1);
stripe_payment_method_type - método de pago; por defecto está seleccionado el pago con tarjeta (card). Puede reemplazarse por otros métodos de pago disponibles en Stripe. A continuación se indican los métodos disponibles.
Por ejemplo, stripe_payment_method_type = 'customer_balance'
stripe_additional_payment_method_type - añadir un método de pago adicional. A continuación se indican los métodos disponibles
Por ejemplo, stripe_additional_payment_method_type = 'sepa_debit'
¡Importante! Si usa ambas variables stripe_payment_method_type y stripe_additional_payment_method_type, entonces los valores en ellas ¡DEBEN ser DIFERENTES!
Lista de valores para stripe_payment_method_type y stripe_additional_payment_method_type:
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 obtener más información sobre cada uno de los métodos y para qué países están disponibles, consulte la documentación de Stripe: ver el sitio web ссылка ver en el sitio
¡Atención! La duración de la suscripción no puede exceder 1 año (para el parámetro ‘year’), más de 12 meses (para el parámetro ‘month’), ni más de 52 semanas (para el parámetro ‘week’).
En este ejemplo, se creará una suscripción llamada 'My_subscription' con un precio de 90 USD durante 3 meses y se realizará un pago recurrente por el mismo importe después de 1 mes:

Un ejemplo para copiar:
stripe_subscription = 'My_subscription'
interval = 'month'
interval_count = 3
payment_sum = 90
Después del pago, el cliente tendrá stripe_subscription_id variables en las variables del trato, que serán necesarias para configurar la cancelación de la suscripción, y stripe_customer_id, que más adelante se puede usar para comprobar el estado de la suscripción.
¡La notificación (callback) se recibe solo en el primer pago recurrente!
NO HABRÁ callback para las llamadas repetidas. El control pasa por la función y el stripe_customer_id. a través de la función ссылка

Volver a la configuración de pagos regulares
Para volver a los pagos regulares, asigne a la variable de suscripción una cadena vacía stripe_subscription = ". En este caso, las variables interval y interval_count no afectarán a la creación del enlace.

Cancelación de la configuración de suscripción
Para cancelar una suscripción en la calculadora, use el stripe_remove_subscription(stripe_subscription_id) método, donde stripe_subscription_id es el identificador que se guardó en la información del trato después del pago.
Esto le permitirá mantener activa su suscripción de pago hasta el final del período pagado actual, pero no se realizarán más cargos, y la suscripción se cancelará después de la fecha de vencimiento:

answer = stripe_remove_subscription('#{stripe_subscription_id}')
stripe_remove_subscription - Si tiene éxito, recibirá una respuesta con información sobre la fecha en la que la suscripción cancelada sigue siendo válida.
En este ejemplo, el resultado de la ejecución de la función se colocará en la variable answer y se podrá comprobar el resultado de la ejecución.
Comprobación del estado de la suscripción
stripe_check_subscription(subscription_id, customer_id), donde
stripe_subscription_id - ID de la suscripción stripe_customer_id - ID del cliente en Stripe (parámetro opcional)

Cómo crear un cupón y obtener un ID de descuento
Para obtener el ID del descuento, cree un cupón en su cuenta personal en la sección ”coupons”. ссылка ”coupons”.

Después de hacer clic en el botón “New”, se abre una página donde debe especificar:
Name — nombre del descuento;
ID — identificador que se genera automáticamente.
Type — tipo de descuento: porcentaje o cantidad fija
Duration — la duración del descuento (único o recurrente, por ejemplo, para suscripciones) y otros parámetros.

El cupón de descuento aparecerá en el “Product catalog“ en la sección “Coupons”, y podrá ver el ID del descuento entrando en el menú del cupón:

Haga clic en el cupón para copiar el ID del cupón:

Cómo añadir un descuento al pedido
Al generar un enlace de pago (tanto para suscripciones como para pagos únicos).
En la calculadora del bloque, antes de declarar la payment_sum variable, establezca la coupon_id variable asignándole el ID del descuento de la cuenta personal de Stripe.

Para añadir a una suscripción existente usando el stripe_add_subscription_discount función.
Establezca las condiciones para activar el bloque y llame a la función especificada en la calculadora, proporcionándole los parámetros stripe_subscription_id (id de suscripción) y coupon_id (id del cupón de descuento). El descuento se aplicará a los pagos posteriores de la suscripción.

Ejemplo de código para copiar
stripe_subscription = 'Suscripción premium'
interval = 'month'
payment_description = 'Pago de prueba en Stripe'
currency = 'USD'
coupon_id = 'ID de su cupón'
stripe_add_subscription_discount(stripe_subscription_id, coupon_id)
stripe_tax_id = 'ID del impuesto'
payment_sum = 90
Si se añade correctamente, la función devuelve un mensaje que indica el ID de la suscripción, el tipo, el importe o el porcentaje del descuento y también su fecha de vencimiento.

Para obtener más información sobre la creación de una suscripción, consulte la sección "Cómo configurar pagos recurrentes" ссылка "Cómo configurar pagos recurrentes"
Cómo eliminar/cambiar el descuento de la suscripción
El descuento adjunto a la suscripción puede eliminarse o sustituirse por otro descuento.
Si desea terminar el descuento, establezca una condición para activar el bloque y llame a la stripe_remove_subscription_discount función en la calculadora, proporcionándole el stripe_subscrition_id parámetro (id de suscripción).

Al completarse correctamente la operación, la función devuelve un mensaje que contiene el ID de la suscripción y la fecha de cancelación del descuento.
La sustitución del descuento, así como la adición de uno nuevo, se realiza mediante stripe_add_subscription_discount función. No olvide pasarle los stripe_subscription_id y coupon_id parámetros. Una solicitud correcta actualizará el cupón adjunto a la suscripción y devolverá un mensaje con la información actual.
Puede leer cómo obtener un ID de descuento en la sección "Cómo crear un cupón y obtener un ID de descuento". ссылка "Cómo crear un cupón y obtener ID de descuento".
Cómo procesar el resultado
Después de un pago exitoso, se enviarán callbacks al bot, lo que le hará saber que el pago fue exitoso. Verá estos callbacks en el sistema como mensajes del usuario, de modo que el usuario no pueda enviarlos; consisten en los primeros 20 caracteres de la clave secreta y el sufijo de éxito, por ejemplo: sk_live_d35gky6d8ers_success

Estos callbacks NO SON VISIBLES para el usuario, solo se muestran al operador.
El tipo de comparación debe ser "Coincidencia exacta"
Además, después de un pago exitoso, stripe_payment_completed variable se establece en True.
Por ejemplo, puedes procesar un pago exitoso en un bloque condicional y mostrar el mensaje correspondiente al usuario:

Después de completar el pago, la stripe_callback_data variable se añadirá al cliente, conteniendo los datos de la respuesta del sistema de pago sobre la transacción completada. Puede extraer los datos necesarios del diccionario resultante usando la get .
Para hacer un pago repetido, debe restablecer payment_sum, el enlace generado previamente y luego reasignar la variable payment_sum para obtener un nuevo enlace. Puede especificar el valor anterior.
Cómo probar los pagos
Para probar la integración, puede usar la clave secreta del entorno de pruebas. Para ello, cambie al modo de prueba en la cuenta personal de Stripe usando el interruptor del menú derecho
A continuación, realice la configuración descrita al principio de esta guía. Introduzca la clave secreta de prueba y añada la dirección del webhook al entorno de prueba.
El número de tarjeta de prueba
4242 4242 4242 4242 cualquier fecha futura CVC - cualquier tres números
Si algo no funciona, compare los datos con los datos del sitio web oficial. ссылка en el sitio web oficial.
Última actualización