cashier-mollie icon indicating copy to clipboard operation
cashier-mollie copied to clipboard

one off charge (invoiceFor)

Open Tjoosten opened this issue 4 years ago • 17 comments

Hi,

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

Tjoosten avatar Sep 01 '19 13:09 Tjoosten

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

marijnbent avatar Sep 02 '19 18:09 marijnbent

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.

sandervanhooft avatar Sep 03 '19 07:09 sandervanhooft

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

jelleroorda avatar Sep 06 '19 16:09 jelleroorda

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 avatar Oct 03 '19 10:10 sandervanhooft

As I understand it (Cashier for Stripe):

  • charge() and tab() result in charges to be processed in the upcoming bill, so the billing cycle is left intact.
  • invoice() and invoiceFor() trigger payments directly, without delay.

sandervanhooft avatar Oct 03 '19 10:10 sandervanhooft

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

sandervanhooft avatar Oct 03 '19 10:10 sandervanhooft

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.

sandervanhooft avatar Oct 03 '19 11:10 sandervanhooft

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

driesvints avatar Mar 14 '20 13:03 driesvints

Thanks @driesvints !

sandervanhooft avatar Mar 14 '20 13:03 sandervanhooft

any ETA on the one-off feature ?

rabol avatar Apr 29 '20 10:04 rabol

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.

Hesesses avatar May 03 '20 16:05 Hesesses

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

jelleroorda avatar May 04 '20 07:05 jelleroorda

Thanks for quick update!

Hesesses avatar May 05 '20 04:05 Hesesses

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

JordiBaguette avatar Jun 19 '20 12:06 JordiBaguette

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.

jelleroorda avatar Jun 19 '20 17:06 jelleroorda

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

JorisDebonnet avatar Sep 16 '20 17:09 JorisDebonnet

Let me know if I can help test!

marijnbent avatar Oct 09 '20 08:10 marijnbent