New European regulation for online payments with Stripe

Sorry - for me it’s still not there. It seems like my version is always one version older than yours. Because now it shows up at the customer but not at the billing_details.

Payment Method - still empty:

Event data - still empty billing address:

Charge succeeded - also empty billing address:

Here we go - customer profile has address added under Billing Information:

Quaderno.io does not find it this way (also on real payments - was just easier to use the identical format from the test data.

Size: 2950300 bytes (2881 KiB)
SHA256: C8550871C1B46D646DEB3F03EF4D0AF860DF46B34E191A8726FE130C3D5B2ED2

I do think I’m one version behind yours.

It looks like the link I sent you before was wrong. I copied it from the browser, but it didn’t copy, so I was left in the clipboard with the URL to an older version… Very sorry about that.

I just sent you a link to a new one, v191011. I polished and tested how the postal code fields interact when both, the Stripe zip code verification and s2’s tax billing address, are enabled in the form.

:slight_smile:

1 Like

Thanks - just tried it out in test-mode and all looks perfect AFAI can see. Also nice to have the Zip automatically added for zip code verification.

I was kinda pulling my hair out with the old version… (still haven’t had any new user pay using Stripe to see if autoptimize problem is gone or not with the API emails).

2 Likes

Looks like we are getting close to the finish line with the update.
Thanks again Cristian,
Trojan effort!

Im looking forward to getting my hands on it so that I can rebuild my customer base again.
I have been holding off for a while now until the update comes out.

PS:
I have noticed that alot of other payment plugins are having the same delays and frustrations with getting up to speed with the new regulations.
You may be one of the first to get your platform on line with the new regs.
Well done,
sounds like it could be a selling point for you for a while at least.

Thanks Cristian.
Enda.

2 Likes

please see here - I think there are some more bugs with the current beta:

Also I think the lazy load is not working correctly anymore. Stripe resources should only be loaded on checkout page - not on every page… This really slows down loading times (even though page is fully visible before…)

1 Like

That’s the recommendation from Stripe, that stripe.js is added to the head of every page of the site, not just the checkout one. See: https://stripe.com/docs/web/setup#setup

Well, they may recommend it but that is horrible from a privacy perspective! ublock origin and other adblockers already have loads of stripe stuff on their blacklists.
Also chrome will block this soon:

A cookie associated with a cross-site resource at http://stripe.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://stripe.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://checkout.stripe.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://checkout.stripe.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://m.stripe.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

8 more Stripe resources are already blocked by ublock origin.

At least with s2member lazy load enabled they should only be loaded if a pro-form is present. This way Stripe is becoming as bad as facebook and google about data crunching. Also for a website selling e-services - you usually have no people ordering accounts with fake credit cards - which could be the only reason to have this everywhere (let stripe analyze suspicious buyer patterns)

Besides I’m pretty sure if you load stripe.js on every page - this is not in accordance with EU privacy rules without putting lengthy statements in your privacy policy - and will require people surfing your website to first accept a checkbutton before loading…

I’m open to other arguments but for me running stripe.js on every page is really a red flag with the only purpose of sending lots of data to stripe without any use for either me or my website users - but hundreds of reasons why it should only load on pages where you can actually check out!

I understand what you mean. I’m looking into it.

1 Like

Just sent you a new beta. It now loads stripe.js respecting s2’s lazy loading setting. And removed the checkout.js include from the previous integration. I also fixed the error you mentioned in the other thread.

Let me know how it goes. :slight_smile:

1 Like

as written in the PM - it looks much better now. Only 3 Stripe cookies loaded - if s2member is loaded.
Full Stripe loaded on checkout page - but calling stripe.js even if no checkout page is requested could still be optimised. Otherwise it’s still Stripe getting the data.
If no s2 shortcode is present - then everything is fine now.

Errors are gone now.

2 Likes

BTW - another optimization that would be great but I don’t know at all if it’s easy or not - is not to reload the page when selecting a different amount on checkout page.
This is really pretty bad - as input data is lost if the customer first inputs data and then clicks on another amount

(in case of wrapped pro-form checkout with multiple options).

I’m very glad that solved the errors you were seeing. Thanks for the feedback!

another optimization that would be great but I don’t know at all if it’s easy or not - is not to reload the page when selecting a different amount on checkout page.

The way it was implemented, this one is harder to improve. I may not touch the current implementation in this regard, but it’s something I’m taking into account for the new pro-forms.

:slight_smile:

2 Likes

well thanks for the feedback. The only thing lost on reload is the credit card information - rest of the fields are okay.
(and in the same aspect - proforms for wrapping paypal buttons would be a nice touch too. You could integrate my plugin if you like).

Plus of course preselect country on the checkout pro forms based on IP would also always be a nice touch. In general I think the pro-form now looks pretty good (except not possible to adjust which address fields to show. For EU VATMOSS rules zipcode, city and country (preselected country by IP) would be the ideal solution for amounts <400€ in most countries. Over 400€ usually a full invoice is needed - hence full address. City is not really needed either - but in case all three factors of location are different - you can look at the city and take that country then if city is unique. Zipcode is good because it is also used for Stripe zip code verification).

Compared to the old pro-form the new one is miles ahead now (especially when address is needed which usually everyone who follows VAT rules without breaking laws everywhere needs nowadays).

1 Like

BTW - just for my page the average pageload times more or less - with 191015.1 beta:
no s2member content 0.5-0.8sec
s2member if shortcodes 1.8 on first load, 1.2sec on reload. Page fully visible after 1.5 seconds, 1 seconds on reload. Removing the stripe stuff saved about 0.3 seconds for page fully visible.

s2member checkout 2.5-3sec on each load. Page fully visible after about 2 seconds. No change on reload because page is excluded from page caching.

This is pretty well to reproduce. So enabling lazy load in s2member makes a lot of sense. And not loading the checkout on pages with s2if or similar shortcodes is also a great improvement. Yes pages where s2member needs to load are clearly slower (however in my case also contain more text content).

So definitely the fastest s2member version so far. I also believe CPU time will be lower (but my server is so overequipped that I will never know - but for people on tight budget hosting - this could mean a big difference. IMHO lazy load should be enabled by default (right now I think it’s disabled by default). Maybe even enable it with an update once - and add it to the changelog that it was enabled. Besides debugging I cannot see any reason not to use the lazy load function of s2member (and no minifying and caching is way less effective than not loading it at all)!

2 Likes

Found another bug on the new Stripe form. The success url is not working anymore.
First I tried using a slug sucess="/success/" which gave an error,
then I entered the full url - and after payment I was not forwarded.

1 Like

I tried the success redirection just now after reading your post, and it worked fine for me… Could you show me the shortcode you’re using? And what error did you get?

Thanks. :slight_smile:

see here (you can use test credit cards): https://openmtbmap.org/test3/stripe-test/

Instead of being redirected, just end up on the same page

[s2Member-Pro-Stripe-Form]
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“1Euro_One_Time_Payment_for_1_year_Openmtbmap_access_no_subscription” cc=“EUR” custom=“openmtbmap.org/test3/” ta=“0” tp=“0” tt=“D” ra=“1” rp=“1” rt=“Y” rr=“BN” coupon="" accept_coupons=“0” captcha=“0” success=“success” /]
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“1 Euro_One_Time_Payment_for_2_years_Openmtbmap_access_no_subscription” cc=“EUR” custom=“openmtbmap.org/test3/” ta=“0” tp=“0” tt=“D” ra=“1” rp=“2” rt=“Y” rr=“BN” coupon="" accept_coupons=“0” captcha=“0” success=“success/” /]
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“1 Euro_One_Time_Payment_for_3_years_Openmtbmap_access_no_subscription” cc=“EUR” custom=“openmtbmap.org/test3/” ta=“0” tp=“0” tt=“D” ra=“1” rp=“3” rt=“Y” rr=“BN” coupon="" accept_coupons=“0” captcha=“0” success="/success/" /]
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“1 Euro_One_Time_Payment_for_4_years_Openmtbmap_access_no_subscription” cc=“EUR” custom=“openmtbmap.org/test3/” ta=“0” tp=“0” tt=“D” ra=“1” rp=“4” rt=“Y” rr=“BN” coupon="" accept_coupons=“0” captcha=“0” success=“https://openmtbmap.org/test3/success/” /]
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“1Euro_One_Time_Payment_for_8_years_Openmtbmap_access_no_subscription” cc=“EUR” custom=“openmtbmap.org/test3/” ta=“0” tp=“0” tt=“D” ra=“1” rp=“8” rt=“Y” rr=“BN” coupon="" accept_coupons=“0” captcha=“0” success=“https://openmtbmap.org/test3/success/” /]
[s2Member-Pro-Stripe-Form level=“1” ccaps="" desc=“1 Euro_One_Time_Payment_for_25_years_Openmtbmap_access(Lifetime)_no_subscription” cc=“EUR” custom=“openmtbmap.org/test3/” ta=“0” tp=“0” tt=“D” ra=“1” rp=“25” rt=“Y” rr=“BN” coupon="" accept_coupons=“0” captcha=“0” success=“https://openmtbmap.org/test3/success/” /]
[s2Member-Pro-Stripe-Form update=“1” desc=“Update_your_billing_information.” captcha=“0” /]
[/s2Member-Pro-Stripe-Form]