#andrew_best-practices
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1402207605702529115
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- andrew_best-practices, 2 hours ago, 6 messages
Hi there. I'll take a look for you!
Do you have an ID I can take a look at? either a pi_โฆ or a req_โฆ?
Note that the 3155 test card says that subsequent "on-session payments with this card always require authentication".
After setting up the card, are you sending off_session: true in the PaymentIntent?
Yes one second
If you can give me a moment, I will try to recreate the scenario.
If not, will you be able to keep this open for me to come back in the next 24hrs (it's currently out of business hours where I am, so I may need to wait for an engineer to come online)
Discord threads will be closed after a while, but you're always free to start a new one.
If you prefer, you can also open a ticket via the form here, and it will come to our team: https://support.stripe.com/contact/email?topic=api_integration
Thank you
I'm just testing now so let me see if I can get you that ID
pi_3Rsgn6HugnJkF8aj1nG2c441
So I used the 3155 card
And the stripe component, which correctly presented the 3DS challenge
I am using a 3rd party subscription management service, Maxio to store the card information, and I went into Maxio to simulate ending of the trial period and activating the subscription
๐ taking over for my colleague. Let me catch up.
I will now do a quick test, rather than manually activating, I will change the trial end-date to be in the next 15 min, so it will automatically try to bill the card and activate the subscription
ok so the PI you shared is the one where you're setting up the PM for future usage
That's correct
Is there anything in the stripe dashboard that says the card is setup for off-session?
the PI didn't go through 3DS though
so the PM hasn't been attached to the customer for future usage
Just to make sure we're on the same page, when you say PM you mean the Mandate?
PaymentMethod
Right - can you point me in the right direction for documentation of this setup for my engineers to look at?
It sounds like it would have not worked regardless of the card
before I do that, would you mind elaborating on your use case? let's forget about the implementation details for a second
Yes - so we're a SaaS company, with a subscription service. It has a 30 day trial, and during the trial, customers can enter payment details (so we store it in Stripe). We utilise Maxio to manage subscriptions (https://docs.maxio.com/hc/en-us/articles/24176099326605-Gateway-Overview) and we pass in the Stripe IDs to Maxio when we configure the subscription.
Once the trial ends, Maxio then tries to charge the customer for their subscription (this is where we get the 3DS error)
A payment gateway processes the payment requests submitted on your behalf by Advanced Billing as specified for each of your customer subscriptions. The payment gateway notifies Advanced Billing if ...
so you're not using Stripe Subscriptions/Invoices but rather always charging with PaymentIntents?
We are not using Stripe billing
We are just setting up the customer with the card manually in stripe via the API
The reason we chose this route is because Maxio's out-of-the-box javascript library for capturing the credit card has a slightly different flow for handling 3DS, and we thought it would be more straightforward to go direct to Stripe, and pass in the IDs to Maxio (which they support in their API)
I'm really having trouble understanding the flow of your implementation
are you using SetupIntents?
to collect the PaymentDetails?
We are using SetupIntents
or are you doing this on your own?
yes ok, I can see it now
ok so for example you attached this PM pm_1Rsgl5HugnJkF8ajd0d7uKyq to this customer cus_SoJNaL4zL7BcP7 using this SI seti_1Rsgl4HugnJkF8ajNd4MFIxC
what do you do next?
ok so this PI pi_3Rsgn6HugnJkF8aj1nG2c441 was then created by Maxio?
if you look at ther request https://dashboard.stripe.com/test/logs/req_9Zlk0zoAQwuphI
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
you can see that they haven't used off_session: true
but rather setup_future_usage: "off_session"
and the 3155 card always authenticate on setup
Ahh ok - I think this will be a question for my developer then
they can join discord and we can have multiple people discuss in the same thread if it's easier for you
Yes it's out of business hours at the moment. If we come back tomorrow, will I be able to reference this conversation?
yes sure
Will I just paste teh discord chat link to a new request?
if you're opening the thread we automatically link the newest threads you were in as you can see at the end of the StripeBot welcome message
Ah I see it! Thank you.
That might be easiest, if I talk to the developer to double check the API calls. So it looks like we've used the wrong parameter in the original request
your SI integration is not wrong
it's the request that Maxio is generating on your behalf https://dashboard.stripe.com/test/logs/req_9Zlk0zoAQwuphI
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Ahh - ok so I may need to raise a support ticket to Maxio
whether you're initiating that or they are, I can't tell. but yes it's in that request where you need to have the off_session: true instead of setup_future_usage: 'off_session'
Thank you so much - this is enough for me to go off for now, and I will have a chat to my team and raise a ticket with Maxio as well. It sounds like they need both parameters?
I want to make sure I word this correctly to Maxio support.
It sounds like they need both parameters?
no they only needoff_session: true
since you are setting up the future usage
Ok - does setup_future_usage do anything then, or is it redundant in both the 3DS and non-3DS use-case?
setup_future_usage is not needed when the PM is already created using SetupIntents with usage: 'off_session'
Ok thank you very much. We can finish here for today, this is enough for me to go on from here.