XF 2.3 Introducing Stripe Checkout, PayPal's REST API and more!

Brand new in XenForo 2.3.0 Beta 2 is support for a few long overdue enhancements related to our payment and purchasable system. Let's look at each of these below!

Stripe Checkout​


Stripe Checkout is Stripe's native and hosted checkout page which not only brings with it some powerful customisability, it also makes accepting new payment methods completely trivial and available in an instant. Allow user upgrades and other purchasables to be purchased with options for "Buy Now Pay Later" (e.g. Klarna, ClearPay), popular region-specific bank redirects (such as iDEAL and Sofort), and popular online wallets (such as Alipay and Revolut). You can even accept payments through PayPal! Through Stripe! 😲

You can enable and configure as many payment methods as you like, and you do this directly through your Stripe Dashboard with zero additional code or configuration required in XenForo. Stripe intelligently and dynamically displays the enabled payment methods they feel will most likely lead to a conversion based on the customer's previous purchases, their geographic location and currency.

This new purchase experience is a drop in replacement for the existing implementation and requires no additional setup or configuration and is available automatically.

PayPal (REST API)​


Our existing PayPal implementation - while absolutely functional - is at least 2-3 generations behind so today is the day we make available a new implementation based on PayPal's current REST API. While functionally this will still be the same as the existing implementation, it is the right time to support PayPal's latest development experience which will continue to receive new functionality and enhancements long in to the future, as well as being more secure and actively maintained by PayPal.

We have implemented this as a brand new payment provider and marked the existing one as deprecated. We are not aware of any immediate plans for PayPal to sunset the legacy Checkout/IPN system we have been using for a long time, so you are free to continue using it. There is no known migration path to move existing customers (particularly recurring payments) to the new APIs but you can enable the new one for new purchases at any time.

The PayPal REST API being available in XenForo should allow developers to implement new, advanced functionality that previously wasn't available.

Ability to update payment details for subscriptions​

Starting with Stripe only, initially, we've added the ability for purchasables and payment providers to be able to "Change payment" for existing recurring payments. In the case of Stripe, clicking "Change payment" takes you to a Stripe Checkout session which allows you to update your payment method.

b7cbwt8dnt.sharedwithexpose.com_account_upgrades.webp


This is a potentially frequently needed piece of functionality which will allow users to, for example, change their payment card after changing banks or having received new card details due to expiry of the previous card. Previously it was not possible for users to update their card details, and usually required the subscription to be cancelled before signing up with new card details.

This is an asynchronous process so once the user provides updated payment details, they will later receive an email confirmation once the new payment details have been applied.

Improved experience for cancelling subscriptions​

It has always been possible for a user to be able to cancel their recurring payment but we didn't do the best job of reflecting that change in the UI. The cancel button would still be displayed after cancellation, and would simply error if you tried to use it again. We now track the cancellation state within the purchasable record and adjust the UI accordingly:

23x.test_account_upgrades.webp


This should hopefully be a much less confusing experience.


That's it for new features in Beta 2. We've got more to come very soon! Thank you to everyone who has helped identify issues and provide feedback for XenForo 2.3 so far.
 
This is really nice! Thank you! It will save quite a bit of hassle if members can cancel their payment or update their payment method.

It would also be really good if members would get alerted if their subscription is expiring and they have no active renewal or no valid payment method. That would increase site income we can use to buy Xf licenses.

@Chris D
In the past I have contacted a number of major Payment Service Providers and asked them to provide an integration. At first several were very willing. After they looked at what was needed, they all declined. Do you feel that you have made it much easier now for such parties to create an integration with their platform and its worth asking again?
 
Will the stripe api keys in XF be encrypted?
I refer to a scary story:

Interesting article, it seems some wordpress plugins are now encrypting keys.

Although you can take action yourself now and restrict the key by IP address.

1711492694283.webp


You could create a restricted key too, but would probably need a docs article from XF to let us know what permissions need to be enabled.

1711492853576.webp
 
Another great addition, the beta's are coming fast... I like it! From what I've seen on the forum, I'm a bit worried about spam, how are you guys going to try / fix this?

My forum is not running yet, but it's still worrying for once I do open it.
 
So I just signed up to a WP related subscription service, and it looks like they use Stripe Checkout session urls to manage their 'Plans'.

eg. https://billing.stripe.com/p/session

This page does allow you to upgrade and downgrade your subscription easily.

1711496761407.webp



So it seems plan switching is available, just not sure how easy it may/may not be to sync those plans with XF user upgrades.

Especially if plan prices change or increase over years in the XF ACP.

Thinking about it now, I think Midjourney does the same thing with their plan switching, using Stripe checkout.

Let me know if I need to turn this plan switching into to a separate suggestion.
 
No it uses Stripe Checkout and Setup Intents.
Then why reinvent the wheel? Stripe Customer Portal is compatible with Checkout.
If a user updates their payment details in Stripe Customer Portal, then the recurring payment will fail if they don't also do the same within XF.
Users won't expect to have to do it in both places, that defeats the whole purpose of Stripe's Customer Portal.
 
Have not reinvented the wheel. Setup mode in Checkout is recommended for this.
Disagree. Subscriptions are just as easy to establish/implement as SetupIntents during the checkout process. Subscriptions allowing usage of their Customer Portal for hosted payment method updates and cancellations, with just a hyperlink from XF. Subscriptions would also allow usage of Trials functionality as suggested by @digitalpoint

Would also enable usage of Stripe's Products functionality and embedding their products table, as well as using coupons etc. Subscriptions also makes it potentially easier to perform migrations from existing processors (aka PP).

Your call of course, either way I'm very happy and excited to have both updated PP and Stripe. Subscriptions and Customer Portal would have made it so much more better and easier, moving functionality requirements from XF and onto Stripe.
 
Top Bottom