Avideo: Stripe module SCA ready?

Created on 5 Oct 2020  路  24Comments  路  Source: WWBN/AVideo

My Stripe account was informed about SCA. I麓m not familiar with this. So is there something that has to be done for Stripe plugin to get it SCA ready?

Here麓s some information:

"Important: Update your integration for SCA
While European regulation mandates that full enforcement of Strong Customer Authentication (SCA) begins on Dec 31, 2020, some banks are now declining a portion of payments that aren't SCA-ready. To make sure your payments are approved, please update your integration."

https://stripe.com/en-fi/payments/strong-customer-authentication

question wontfix

Most helpful comment

please do not update yet.

I am still working on it.

All 24 comments

Hi

as long as we do not hold any customer information, like credit cards numbers, address and others, I guess this rule does not affect us

I see.

In Stripe I noticed that there are payments using an SCA-ready product and payments using the Charges API (these are PPV and Wallet payments) The charges API payments are in risk. Stripe is recommending an integration change .

Hi

I do not understand what integrations is missing

I don't know. Maybe i could investigate a little more. As far as I understand, the integration should be just updated...

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Hey @DanielnetoDotCom, can we continue on this? I think this is very important!

I found SCA migration guide. Is this helpful for you?

https://stripe.com/docs/strong-customer-authentication/connect-platforms

As I understand the authentication is built on the Stripe side.

there is nothing to do on our side.

did you get any screen error?

I get notices from Stripe that my integration is not ready for SCA. I have tried to figure out what should I do with the integration, but it's not totally clear for me..

Stripe: "we estimate that you would have lost as much as $** in revenue in the past 4 weeks due to declines because your Stripe integration is not yet SCA-ready. This can require frontend, backend, and client bindings version changes, so we recommend that you take action on these updates as soon as possible."

I just update the Stripe API library, maybe they have some update related to the SCA integration

I know that for Wordpress websites, when linking a payment gateway using Gravity Forms it refers me to stripe to login and authorize the payment gateway.
So on the website side, there is something that sends you to stripe to login and authorize the api connection to that account.

I think this might be what to look for: https://stripe.com/docs/connect/authentication

Thoughts?

currently, all the payment process happen on the stripe side.

we do not authenticate or request any information from the customer.

as I read now, looks like this is required if you hold the customer's information. (I guess)

I still not sure if I have to change something on my side.

I think if it has these things:

Use the Payment Intents API together with the Setup Intents and Payment Methods APIs.

Then it's good? Will keep an eye on it and research a bit.

Ok, I made some updates based on what I have read,

FYI, the payments are made/approved now based on the webhook so make sure you add the correct webhook Signing secret

image

This is great! I will update. Thank you!

please do not update yet.

I am still working on it.

Hi, I guess it is all set now.

Feel free to update.

Update me is there is a bug or it still complaining on the SCA

Hey thanks for the update but unfortunately something is wrong now.. I can make the payment and I can see payment active on plugin page, but subscription doesn't activate.

Here's log file

[03-Dec-2020 21:55:57 Europe/Helsinki] AVideoLog::ERROR: [sqlDAL::readSql] (mysqlnd) Prepare failed again return false SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:57 Europe/Helsinki] AVideoLog::ERROR: MySQL ERROR: [{"file":"\/var\/www\/html\/AVideo\/objects\/mysql_dal.php","line":139,"function":"log_error","args":["[sqlDAL::readSql] (mysqlnd) Prepare failed again return false"]},{"file":"\/var\/www\/html\/AVideo\/objects\/Object.php","line":107,"function":"readSql","class":"sqlDAL","type":"::","args":["SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%toni%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%toni%' OR sp.name LIKE '%toni%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%toni%' )"]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code(1) : eval()'d code","line":11,"function":"getTotal","class":"ObjectYPT","type":"::","args":[]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code","line":1,"function":"eval"},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php","line":14,"function":"eval"}] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:57 Europe/Helsinki] AVideoLog::ERROR: [sqlDAL::readSql] trying close and reconnect SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:57 Europe/Helsinki] AVideoLog::ERROR: MySQL ERROR: [{"file":"\/var\/www\/html\/AVideo\/objects\/mysql_dal.php","line":135,"function":"log_error","args":["[sqlDAL::readSql] trying close and reconnect"]},{"file":"\/var\/www\/html\/AVideo\/objects\/Object.php","line":107,"function":"readSql","class":"sqlDAL","type":"::","args":["SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%toni%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%toni%' OR sp.name LIKE '%toni%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%toni%' )"]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code(1) : eval()'d code","line":11,"function":"getTotal","class":"ObjectYPT","type":"::","args":[]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code","line":1,"function":"eval"},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php","line":14,"function":"eval"}] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:57 Europe/Helsinki] AVideoLog::ERROR: [sqlDAL::readSql] (mysqlnd) Prepare failed: (1054) Unknown column 'u.name' in 'where clause' (SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%toni%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%toni%' OR sp.name LIKE '%toni%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%toni%' )) - format=() values=[] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:57 Europe/Helsinki] AVideoLog::ERROR: MySQL ERROR: [{"file":"\/var\/www\/html\/AVideo\/objects\/mysql_dal.php","line":134,"function":"log_error","args":["[sqlDAL::readSql] (mysqlnd) Prepare failed: (1054) Unknown column 'u.name' in 'where clause' (SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%toni%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%toni%' OR sp.name LIKE '%toni%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%toni%' )) - format=() values=[]"]},{"file":"\/var\/www\/html\/AVideo\/objects\/Object.php","line":107,"function":"readSql","class":"sqlDAL","type":"::","args":["SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%toni%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%toni%' OR sp.name LIKE '%toni%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%toni%' )"]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code(1) : eval()'d code","line":11,"function":"getTotal","class":"ObjectYPT","type":"::","args":[]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code","line":1,"function":"eval"},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php","line":14,"function":"eval"}] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:56 Europe/Helsinki] AVideoLog::ERROR: [sqlDAL::readSql] (mysqlnd) Prepare failed again return false SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:56 Europe/Helsinki] AVideoLog::ERROR: MySQL ERROR: [{"file":"\/var\/www\/html\/AVideo\/objects\/mysql_dal.php","line":139,"function":"log_error","args":["[sqlDAL::readSql] (mysqlnd) Prepare failed again return false"]},{"file":"\/var\/www\/html\/AVideo\/objects\/Object.php","line":107,"function":"readSql","class":"sqlDAL","type":"::","args":["SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%t%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%t%' OR sp.name LIKE '%t%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%t%' )"]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code(1) : eval()'d code","line":11,"function":"getTotal","class":"ObjectYPT","type":"::","args":[]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code","line":1,"function":"eval"},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php","line":14,"function":"eval"}] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:56 Europe/Helsinki] AVideoLog::ERROR: [sqlDAL::readSql] trying close and reconnect SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:56 Europe/Helsinki] AVideoLog::ERROR: MySQL ERROR: [{"file":"\/var\/www\/html\/AVideo\/objects\/mysql_dal.php","line":135,"function":"log_error","args":["[sqlDAL::readSql] trying close and reconnect"]},{"file":"\/var\/www\/html\/AVideo\/objects\/Object.php","line":107,"function":"readSql","class":"sqlDAL","type":"::","args":["SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%t%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%t%' OR sp.name LIKE '%t%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%t%' )"]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code(1) : eval()'d code","line":11,"function":"getTotal","class":"ObjectYPT","type":"::","args":[]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code","line":1,"function":"eval"},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php","line":14,"function":"eval"}] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:56 Europe/Helsinki] AVideoLog::ERROR: [sqlDAL::readSql] (mysqlnd) Prepare failed: (1054) Unknown column 'u.name' in 'where clause' (SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%t%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%t%' OR sp.name LIKE '%t%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%t%' )) - format=() values=[] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

[03-Dec-2020 21:55:56 Europe/Helsinki] AVideoLog::ERROR: MySQL ERROR: [{"file":"\/var\/www\/html\/AVideo\/objects\/mysql_dal.php","line":134,"function":"log_error","args":["[sqlDAL::readSql] (mysqlnd) Prepare failed: (1054) Unknown column 'u.name' in 'where clause' (SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%t%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%t%' OR sp.name LIKE '%t%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%t%' )) - format=() values=[]"]},{"file":"\/var\/www\/html\/AVideo\/objects\/Object.php","line":107,"function":"readSql","class":"sqlDAL","type":"::","args":["SELECT id FROM subscriptions WHERE 1=1 AND ( u.name LIKE '%t%' OR CONVERT(CAST(u.name as BINARY) USING utf8) LIKE '%t%' OR sp.name LIKE '%t%' OR CONVERT(CAST(sp.name as BINARY) USING utf8) LIKE '%t%' )"]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code(1) : eval()'d code","line":11,"function":"getTotal","class":"ObjectYPT","type":"::","args":[]},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php(14) : eval()'d code","line":1,"function":"eval"},{"file":"\/var\/www\/html\/AVideo\/plugin\/Subscription\/page\/subscriptions.json.php","line":14,"function":"eval"}] SCRIPT_NAME: /plugin/Subscription/page/subscriptions.json.php

Please make sure your plugins are up to date

Especially the Subscription plugin.

also on what page are you getting those errors?

can you please screenshot?

Subscription plugin is up to date.

I tried to make a subscription with paypal also but it doesn't activate subscription either.. These problems are maybe more related to subscription plugin than stripe or paypal..

I made another issue

https://github.com/WWBN/AVideo/issues/4116

There's still problem with the updated plugin. The payment went through but subscription was set to expire at the same time stamp when created.

image

Only error was:

[03-Dec-2020 23:33:19] AVideoLog::ERROR: StripeIPN: something went wrong: {

I will send you the rest of the log via email, there might be something suspicious.

When trying to purchase PPV. It doesn't work.

(Payment succeed on Stripe.)

[04-Dec-2020 12:24:58 Europe/Helsinki] PHP Fatal error: Uncaught Stripe\Exception\SignatureVerificationException: No signatures found matching the expected signature for payload in path/to/my/streamer/site/plugin/StripeYPT/lib/Exception/SignatureVerificationException.php:28

...
[04-Dec-2020 12:24:56 Europe/Helsinki] PHP Fatal error: Uncaught Stripe\Exception\SignatureVerificationException: No signatures found matching the expected signature for payload in path/to/my/streamer/site/plugin/StripeYPT/lib/Exception/SignatureVerificationException.php:28

...
[04-Dec-2020 12:24:41 Europe/Helsinki] PHP Fatal error: Uncaught Stripe\Exception\SignatureVerificationException: No signatures found matching the expected signature for payload in path/to/my/streamer/site/plugin/StripeYPT/lib/Exception/SignatureVerificationException.php:28

...
[04-Dec-2020 12:24:41 Europe/Helsinki] PHP Fatal error: Uncaught Stripe\Exception\SignatureVerificationException: No signatures found matching the expected signature for payload in path/to/my/streamer/site/plugin/StripeYPT/lib/Exception/SignatureVerificationException.php:28

@tonuzo make sure you have the correct webhook sign in secret

Regarding the dates, I could not reproduce it.

Also, I just sent a new update, maybe it resolves the problem

It seems to work, Thank You!

I also updated endpoint version on Stripe. I'm not sure but I think it also has to be updated.

All the best wishes,
T

Was this page helpful?
0 / 5 - 0 ratings

Related issues

syldri picture syldri  路  3Comments

matthall1998 picture matthall1998  路  4Comments

Powerbock picture Powerbock  路  3Comments

alejandrolidon picture alejandrolidon  路  3Comments

moses268 picture moses268  路  3Comments