Enviar las facturas de Cashier por email con Laravel 7

Fecha de publicación: julio 7, 2020

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on google
Google+
Share on whatsapp
WhatsApp
Share on email
Email

Para enviar las facturas de Cashier por email en Laravel lo único que debemos tener guardado en base de datos es el invoice_id, algo que Stripe nos ofrece si por ejemplo realizamos el pago con el método invoiceFor.

Yo en mi caso guardo la columna invoice_id en la tabla Orders, así, cuando Stripe me notifica que el pago ha sido correcto, puedo obtener esa factura y adjuntarla en un email para que el cliente la pueda recibir.

El ejemplo que voy a poner aquí es algo que cubrimos en el curso Plataforma de cursos con Laravel 7: Roles, Pagos con Stripe SCA, Cupones, Xdebug.

Instalar laravel-dompdf para adjuntar PDF

Crear un Mailable para enviar facturas con Cashier

Una vez tenemos el Mailable StudentNewOrder (cuando un cliente ha realizado un pago), vamos a añadir lógica a este archivo.

A este mailable simplemente le pasamos el cliente y el pedido. La factura que nos retorna Stripe a través de los WebHooks la podemos obtener con el método findInvoice de Cashier, tal y como lo hacemos aquí.

Gracias al método attachData seremos capaces de adjuntar en este caso un archivo PDF en este correo.

Para finalizar el ejemplo sólo nos falta utilizar el método send de la clase Mail para enviar el email al cliente:

¿Quieres acceder a más de 100 cursos de PHP y JavaScript?

Vuejs, Laravel, NodeJS, WordPress, Serverless, React Native, Amazon Web Services y mucho más

Quiero hacerme Premium
Cursosdesarrolloweb ©. Todos los derechos reservados.

Login