[DBTech] DragonByte Stripe Checkout

[DBTech] DragonByte Stripe Checkout 2.0.1

No permission to download
Recurring payments don't work if the item currency isn't supported by the chosen gateway (because you can't use adaptive pricing for a subscription)

Maybe there needs be a separate checkbox list for allowed gateways when recurring?
I think the most appropriate action here is to setup a separate payment profile. Having two checkboxes would make the UX worse IMO.
 
This only works when products are specifically defined as either single or recurring.

If a product can be dynamically set, then there's no option to choose different payment profiles.

For example, theme house donate, there's just a checkbox, it wouldn't make sense to also click a payment profile here.

Screenshot_20240507_132130_Edge.webp
 
Just had my first recurring payment and it failed.

The reason seems to be there is no "request_key" (or any other field) in the "metadata" array passed through to the webhook.

Single payment:
Screenshot_20240702_212356_Edge.webp

Recurring:
Screenshot_20240702_212431_Edge.webp

Ah it seems recurring use the callback to invoice.payment_succeeded instead of charge.succeeded which xen gives error "Event data received from Stripe does not contain the expected values."
 
I'm on my phone now, but browsing the xf2.3 code shows the callback does handle invoice.payment_succeeded callbacks, does your add-on?
 
I'm on my phone now, but browsing the xf2.3 code shows the callback does handle invoice.payment_succeeded callbacks, does your add-on?
My addon doesn’t add any event hook handler. It was not needed in my test against their testing API. I don’t know what 2.2 handles by default.
 
Ok I've found the issue - for a subscription, in the xf_purchase_request table, the provider_metadata records needs to be the subscription ID - which starts sub_.

However in my table, all the records (both subscription and normal all start with cs_live_al) - before I was using your add-on, they all start pi_ - is that a clue?

Oh and also which webhook events do you listen to? I just use the ones advised by XF, but do I need extra now?
 
Last edited:
Ok I've found the issue - for a subscription, in the xf_purchase_request table, the provider_metadata records needs to be the subscription ID - which starts sub_.

However in my table, all the records (both subscription and normal all start with cs_live_al) - before I was using your add-on, they all start pi_ - is that a clue?

Oh and also which webhook events do you listen to? I just use the ones advised by XF, but do I need extra now?
As I said, this is an extension to the existing Stripe payment profile. It is not a replacement, so I don’t listen to any webhook events.

As for the different subscription IDs, I have no idea. This addon exists only because I needed Stripe Checkout for my own website, and the recurring payment addition is flagged as experimental because I have no need for it at this time.

As mentioned previously, in XF 2.3 the Stripe implementation natively supports subscriptions, and this add-on will only function to allow you to choose what payment processors are enabled.
 
DragonByte Tech updated [DBTech] DragonByte Stripe Checkout with a new update entry:

2.0.0 Release Candidate 1

Update highlights​

!!!This version requires PHP 8.0+!!!

This version removes the "Recurring" support, as this is now natively added to XenForo 2.3. This add-on has also been updated with support for the updated Stripe payment profile handler.


Complete Change Log​

Change: Update for compatibility with XF 2.3's built-in Stripe Checkout
Change: Remove "Recurring" flag
Change: Updated macros to XF 2.3 format...

Read the rest of this update entry...
 
Back
Top Bottom