laravel / cashier-mollie

MIT License
376 stars 63 forks source link

one off charge (invoiceFor) #42

Open Tjoosten opened 5 years ago

Tjoosten commented 5 years ago

Hi,

I'm wondering is there a method to process one time charges.

marijnbent commented 5 years ago

This will be added in the future according to the docs https://github.com/laravel/cashier-mollie#one-off-charges

sandervanhooft commented 5 years ago

True! I'll hijack this ticket as a reference.

Also, feel free to help me out with a PR. My focus primarily shifts to Spark for the next month.

jelleroorda commented 5 years ago

I'm going to try to spare some time this weekend to hack at this. I'll keep you guys posted.

sandervanhooft commented 4 years ago

I'd like to stay as close to Cashier for Stripe as possible, so let's start there.

Cashier for Stripe offers the following on the Billable trait for one off charges (I'm trying to understand the differences):


/**
     * Make a "one off" charge on the customer for the given amount.
     *
     * @param  int  $amount
     * @param  string  $paymentMethod
     * @param  array  $options
     * @return \Laravel\Cashier\Payment
     */
public function charge($amount, $paymentMethod, array $options = [])

    /**
     * Add an invoice item to the customer's upcoming invoice.
     *
     * @param  string  $description
     * @param  int  $amount
     * @param  array  $options
     * @return \Stripe\InvoiceItem
     */
public function tab($description, $amount, array $options = [])

    /**
     * Invoice the billable entity outside of the regular billing cycle.
     *
     * @param  array  $options
     * @return \Laravel\Cashier\Invoice|bool
     */
public function invoice(array $options = [])

    /**
     * Invoice the customer for the given amount and generate an invoice immediately.
     *
     * @param  string  $description
     * @param  int  $amount
     * @param  array  $tabOptions
     * @param  array  $invoiceOptions
     * @return \Laravel\Cashier\Invoice|bool
     */
public function invoiceFor($description, $amount, array $tabOptions = [], array $invoiceOptions = [])
sandervanhooft commented 4 years ago

As I understand it (Cashier for Stripe):

sandervanhooft commented 4 years ago

Ok, the laravel docs state that the difference is just charging with or without an invoice... 😕

sandervanhooft commented 4 years ago

Checking this with Dries.

On another note, I'd like to either return a RedirectToCheckout, an Order (or an OrderItemCollection), depending on whether the customer has registered a valid payment mandate.

This behavior is similar to starting a new subscription.

driesvints commented 4 years ago

charge: single charge without an invoice tab add a line to the upcoming invoice invoice create a new one-off invoice invoiceFor create a new one-off invoice with the specified amount

sandervanhooft commented 4 years ago

Thanks @driesvints !

rabol commented 4 years ago

any ETA on the one-off feature ?

Hesesses commented 4 years ago

Thank you very much for creating the cashier package for mollie 🙏

For our service, one-off feature is required, would be nice to hear any ETA.

jelleroorda commented 4 years ago

@rabol @Hesesses

I (re)started working on it this morning, since I'm currently having a little more free time. Since it has been a while since I initially started working on it I simply dropped everything, and created a new fork from development. I'm not sure when it will mergable, but I'm aiming to get the biggest part done in around 2 weeks (~17 May).

After that it will depend on feedback and Sander, so I can't really give an ETA.

Hesesses commented 4 years ago

Thanks for quick update!

JordiBaguette commented 4 years ago

Thank you for this awesome package! Any updates on this feature?

jelleroorda commented 4 years ago

Hi @JordiBaguette, you can read up on the actual status in the associated pull request. The code in the pull request works, but the final version still needs some work (especially the part of the “open tab”).

After Sander finds more time to have a look at it and reviews it, I can check if I can find some more time to process his feedback. I’m also kind of busy though at the moment, so it’s also fine with me if someone else will finish it.

JorisDebonnet commented 4 years ago

Great to see the progress on this. I, too, am hoping for a resolution soonish... 😊

marijnbent commented 3 years ago

Let me know if I can help test!