Iniciar suscripcion en Stripe
Comprar curso

15. Iniciar suscripcion en Stripe

En este capítulo, aprenderás cómo iniciar una suscripción en Stripe utilizando el paquete oficial de Laravel, Laravel Cashier. Se explicará detalladamente el proceso de configuración del paquete y cómo utilizar sus funciones para iniciar una suscripción de manera efectiva. Además, se destacarán las mejores prácticas para asegurar una integración exitosa entre Laravel Cashier y Stripe.


10 comentarios

Inicia sesión para comentar

Comentarios:

  • Kevin Rivera

    Kevin Rivera hace 4 semanas

    Hola victor estoy siguiendo el curso y me a salido un error y no se a que se deba, el error me sale cuando el usuario no tiene ningun metodo de pago predeterminado y intento hacer la suscripción pero si agrego una tarjeta y realizo la suscripcion no falla.
     


     

  • Emanuel Rios

    Emanuel Rios hace 2 meses

    esta muy des actualizado el curso, creo es justo actualizar los cursos ya que las versiones cambian, las etiquetas por lo mismo

    • Victor Arana Flores hace 2 meses

      Hola Emanuel. El curso no está muy desactualizado porque lo actualice en su totalidad para la version 10.

      Le daré un vistazo a que cambios hay con respecto a la version 11 en Stripe y actualizare esa parte.

      Con respecto a las otras pasarelas, todo se mantiene tal cual, así que te recomiendo ir viendo esas pasarelas por mientras.

  • Hugo Fabrizio

    Hugo Fabrizio hace 10 meses

    Al intentar pagar me manda error por Stripe Tax has not been activated on your account. Please visit https://stripe.com/docs/tax/set-up to get started.

    • Hugo Fabrizio hace 10 meses

      Y no puedo activarlo porque me menciona que no esta disponible en mi país.

    • Victor Arana Flores hace 10 meses

      Hola Hugo asi es, Stripe solo esta disponible en algunos paises. Te sugiero optar por alguna de las otras pasarelas que enseño en el curso y que si se encuentre presente en tu pais.

    • Hugo Fabrizio hace 10 meses

      Queria usar las suscripciones de stripe porque mi intencion es vender un servicio por un periodo de tiempo. Al igual que si el usuario no cumpla cierta regla de mi servicio quitarselo y deba empezar de nuevo (comprando de nuevo). No se si otra pasarela de pago me sirva o configure ya todo desde el back con los pagos unicos de stipe que si me funcionan bien.

  • Danilo Toro

    Danilo Toro hace 1 año

    Tengo dudas de como hacer la suscripción por usuario ? supongo que tengo que activar "Charge for metered usage by" y cada mes mandarle a stripe la cantidad de usuarios durante ese periodo o no?


    • Victor Arana Flores hace 1 año

      Hola amigo, tu generas la suscripción en stripe, y este es el que se encarga de realizar los cobros cada mes. No tienes porque avisarle a stripe que usuarios estan suscritos.

      Cuando un usuario decide darse de baja, lo hace desde tu web y tu tienes que darle de baja tambien en stripe.

    • Danilo Toro hace 1 año

      Dije usuarios porque en mi caso cobro por usuario jaja disculpa por no explicar. 
      Pero por ejemplo, Notion te cobra por usuarios, entonces en Stripe creo un producto y ese producto coloco el precio y tal. 

      Eso no se como hacerlo en laravel :/ cuando ingresan a alguien nuevo creo una nueva suscripción y así al mes siguiente le cobra más?

  • Rodolfo Merlo Ali

    Rodolfo Merlo Ali hace 1 año

    ahora la funcion es subscribedToPrice(…

  • Raymon Rodriguez Suarez

    Raymon Rodriguez Suarez hace 1 año

    Al momento de poner las condiciones para mostrar el boton cancelar desaparecen y realice todo tal cual el video.

     

    @props(['name', 'price'])

    <div class="w-full">


     

        @if (auth()->user()->subscribed($name))

        @if (auth()->user()->subscribedToPrice($price, $name))

        <button wire:loading.flex wire:target="newSubscription('{{$name,}}', '{{$price}}')"

            class="items-center justify-center w-full px-10 py-2 font-bold text-white transition-colors bg-red-600 rounded-md hover:bg-red-700">

            Cancel

        </button>

        @else

        <button wire:loading.flex wire:target="newSubscription('{{$name,}}', '{{$price}}')"

            class="items-center justify-center w-full px-10 py-2 font-bold text-white transition-colors bg-gray-600 rounded-md hover:bg-gray-700">

            Cambiar de plan

        </button>

        @endif

        @else


     

        <button wire:click="newSubscription('{{$name,}}', '{{$price}}')" wire:loading.remove

            wire:target="newSubscription('{{$name,}}', '{{$price}}')"

            class="flex items-center justify-center w-full px-10 py-2 font-bold text-white transition-colors bg-gray-600 rounded-md hover:bg-gray-700">

            To subscribe

        </button>


     

        <button wire:loading.flex wire:target="newSubscription('{{$name,}}', '{{$price}}')"

            class="items-center justify-center w-full px-10 py-2 font-bold text-white transition-colors bg-gray-600 rounded-md hover:bg-gray-700">

            <x-spinner size=6 class="mr-2" />

            To subscribe

        </button>

        @endif


     

    </div>


     

     

  • Julio

    Julio hace 2 años

    Hola que tal, tengo el siguiente error:  Call to undefined method App\Models\User::subscribedToPlan() (View: C:\desarrollo\xampp\htdocs\Proyectoclonado\StripeMaster\payment-master\resources\views\components\button-subscription.blade.php) , he estado revisando la documentación pero no logro entenderlo, sabes a que se debe?

     

    • Julio hace 2 años

      He verificado y si tengo instalado laravel/cashier 

    • Julio hace 2 años

      Ya veo, en todo caso volveré a realizar los procedimiento, haber que pasa…gracias por tomarte el tiempo de responder Victor :D

       

    • Julio hace 2 años

      Ya encontré la solución a este error, por si a alguien le pasa lo mismo aquí dejo la solución :

       

      antes:

       

      @if (auth()->user()->subscribedToPlan($price, $name))

       

      ahora:

       

      @if (auth()->user()->subscribedToPrice($price, $name))

       

      laravel cashier modifico el nombre de ese método 

    • Victor Arana Flores hace 2 años

      Muchas gracias por el aporte Julio :D

    • Rodolfo Merlo Ali hace 1 año

      Si tan solo leyeras lo que dice, y pues dice que el metodo no existe, si revisas el Readme(seguro nunca nunca haces) dice que ahora esa funcion lo renombraron subscribedToPrice(…

  • Jahir Jordan

    Jahir Jordan hace 2 años

    Hola, ¿cuál es el funcionamiento de la tabla suscriptions que crea cashier?, suponiendo que existe una suscripcion mensual, ¿crea un registro por usuario, o un registro por cada mes?

    • Victor Arana Flores hace 2 años

      En la tabla va se guarda las suscripciones de los usuarios, y sirve para llevar un control dentro de tu aplicacion. Saber que usuario tiene una suscripción activa

  • Franco Acqua

    Franco Acqua hace 2 años

    La pregunta es como hago para que cuando cree la tarjeta, el metodo de pago sea predeterminado?

  • Franco Acqua

    Franco Acqua hace 2 años

    Hola que tal, tengo un error que no puedo resolverlo, hice tal cual lo explicado pero al momento de iniciar la subscripccion como lo haces en el minuto 4:50 me dice este error de servidor This customer has no attached payment source or default payment method. Hice todo lo posible, vi de nuevo los videos, cree nuevos usuarios y agregue nuevos metodos de pago, pero en stripe me saltan como canceladas, tendrias alguna sugerencia de porque recibo este error basandome en el codigo escrito?

    • Raymon Rodriguez Suarez hace 2 años

      Tengo la solucion. solo debes agregar un metodo de pago por default pon esto en tu vista method-list


         <h1><span class="font-bold">{{ $paymentMethod->billing_details->name }}</span>xxxx-{{

                              $paymentMethod->card->last4 }}

                              <h1>

                                  @if ($paymentMethod->id ==

                                  auth()->user()->defaultPaymentMethod()->id)

                                  (default)

                                  @endif

                                  <p>Expira

                                      {{ $paymentMethod->card->exp_month }}/{{ $paymentMethod->card->exp_year }}

                                  </p>

       

                          <i class="fas fa-star cursor-pointer p-3 hover:text-gray-700"

                              wire:click="defaultPaymentMethod('{{ $paymentMethod->id }}')"></i>

      y en tu componente 

       

       public function defaultPaymentMethod($paymentMethodId){

              auth()->user()->updateDefaultPaymentMethod($paymentMethodId);

          }