#cadu-paymentintent-3ds

1 messages ยท Page 1 of 1 (latest)

fierce lionBOT
kindred ivy
#

req_aiT3NvSJAvxHkl this is the ID from request of creation the payment intention

agile seal
#

HI ๐Ÿ‘‹

requires_action usually means the customer needs to provide some sort of authentication

kindred ivy
#

this is the ID of confirmation request req_GHjsAz5mXQRpl2

#

and it failed at capture action: req_1df6xYV11HydPA

agile seal
#

Yup, you need 3D secure

kindred ivy
#

what is the 3D secure?

agile seal
#

The issuing bank for this card has requested additional authentication from the card holder and you cannot process the payment intent further until the card holder authenticates

kindred ivy
#

is there any way to active a flag in payment intent creation to pass through this?

fierce lionBOT
wary vapor
#

@kindred ivy what do you mean "active a flag"

#

cadu-paymentintent-3ds

kindred ivy
#

like in payment intent creation i choose to pass throught this or not

#

or that's a security protocol that cannot be skiped?

wary vapor
#

pass through what?

#

3DS is required by banks in many countries

#

So really, if you want to accept online payments you have to handle 3DS

kindred ivy
#

because after the 3DS step I'll need to capture this payment intent

#

but it comes with status "requires_action"

#

and capture method just accepted "requires_capture" to work properly

wary vapor
#

I understand that part but you can't do something after 3DS if you haven't done 3DS yet

#

What you need to do is when you call the Confirm PaymentIntent, if 3DS is required then you need to go and get your Customer back on your app/website to properly handle 3DS

kindred ivy
#

hmmmm

#

i'm reading the docs

#

whats the url to three_d_secure that i provide to the client?

wary vapor
#

You don't provide any URL

kindred ivy
wary vapor
#

You're supposed to use one of our hosted UIs like PaymentElement to handle all of this

kindred ivy
#

redirect_to_url.url

wary vapor
kindred ivy
#

nope

#

i got it

#

in my system I create all payment flows

#

payment intent creation, confirmation and captured methods

#

but some cards do not pass into 3DS

#

so it raised an exception

wary vapor
#

sure which means you didn't get it right?

kindred ivy
#

when its passed because i do not treat this

wary vapor
#

Or do you mean you already do 3DS on card collection?

#

I don't think you do since you use the Attach PaymentMethod API which is rarely used

kindred ivy
#

for the cards

#

i create a payment method type card

#

after that I attach this card to an customer

#

and used this payment method id at confirmation of an payment intent

wary vapor
#

yeah that's what I am saying

#

you are not following any of our guides if you do that, and it'll never handle 3DS properly

#

1/ Create a PaymentIntent (to accept a payment immediately) or SetupIntent (to collect card details for future usage)
2/ Use PaymentElement to confirm the PaymentIntent or SetupIntent
^ this does 3DS and will properly attach the card if you configure it properly
That's why I shared our detailed docs which you aren't following

kindred ivy
#

is there any way to do wihtout using elements?

#

i want to do it at server side of my application

wary vapor
#

How are you collecting card details without Elements? Are you doing all of PCI yourself as a large company?

kindred ivy
#

i work at a software house that's developing an app to a big company

#

and migrate it to stripe recently

#

that's it, i do not want to retrieve the details, i create an payment method that give me back its id, so I use the id to create confirm a payment intent that was created for that client that had the card (payment method)

wary vapor
#

that's it, i do not want to retrieve the details, i
what does that mean though? Who created that PaymentMethod? With which code? Are they doing 3DS? If they aren't then you will have to

kindred ivy
#

that is an ID from an purchase that worked, could you check if its pass through 3DS?

request id: req_WOZFnmmUJ49pXm

wary vapor
#

you can check all of this yourself as the developer. All the details are in the Dashbord and the API

kindred ivy
#

for this request, i received this field at the response:

"three_d_secure": null,

wary vapor
#

okay so taht means 3DS didn't happen right?

kindred ivy
#

right

wary vapor
#

I'm sorry I'm worried we're running a little bit in circles here due to an overall misunderstanding

#

3DS is required in many countries (like most of Europe). In other countries, it's up to the bank. Some bank will require it, and you, as the developer, have to handle this

kindred ivy
#

my english is not so good, i'm trying to keep up ๐Ÿ˜…

#

my bad

wary vapor
#

ah no worries, your English reads totally fine at least

#

whenever a bank requires 3DS (or we do), you get to status: 'requires_action and you have to make sure your Customer comes back to your website/app so that they can do 3DS as required.
Does that part make sense?

wary vapor
#

Okay, so in theory, what should happen is that you do 3DS when you collect card details upfront. But you mentioned you don't collect card details, a "partner" does?

kindred ivy
wary vapor
#

Sorry that part I don't understand what that means. That card you shared earlier was collected on Aug 10.

kindred ivy
#

That was collected for a partner

#

we just migrate the data to stripe

wary vapor
#

Ah gotcha

#

hmmmm that's not what I'm seeing though

kindred ivy
#

That app works in other plataform(vtex), and now we're creating an custom solution for them

#

we have that from them and created at our plataform

#

if the PM id prefix starts with card_ that's migrate data

wary vapor
#

yeah that doesn't really makes sense

kindred ivy
#

if its start with pm_ that's the new one

wary vapor
#

card_123 work totally fine

#

I'm a bit worried you're mixing up everything with our API unfortunately

#

https://dashboard.stripe.com/logs/req_CBHUWNGAGUBf6Y this is you writing code and creating that card PaymentMethod object with raw card details in Node.js on your server, right?
This means you have the raw card details. This also means you broke PCI compliance rules by doing this yourself

kindred ivy
#

but we do not store at our database

#

any data from customer

#

just the payment method id

wary vapor
#

I mean you did have it, you broke the rules, this is quite bad in theory

#

you should never have raw card details on your server, whether you store them or not

kindred ivy
#

and we do not have it

wary vapor
#

you did at the time you made that request

#

which the rules forbid

kindred ivy
#

and how can I register an card at stripe?

#

its not using payment method?

#

still don't get it

#

because at the application database we only store this:
"id": "pm_XXXXXXX",

and use it to confirm a payment intent

wary vapor
#

@kindred ivy PCI rules govern what you can do as a company with card details. One of the rules is that card details should be collected securely client-side and never on your server

kindred ivy
#

so i have to do this request at the frontend

#

and did a patch to update my databse with stripeId

wary vapor
#

you have to ask your customer to enter their own card details in the browser, yes. You should never do this for them

kindred ivy
#

the customer write his card number, cvc and whatever about his card.. we did not do this, we just migrate data from other company. And at our database we just have id from payment method id

#

its a checkout screen

wary vapor
#

yeah sorry again we're going in circles

#

Who entered those card details? The customer that owns the card? Or your own team during the migration?

kindred ivy
#

let me ask my collegue about migration but i guess it was handled by you guys, bring card info from pagar.me to stripe, i guess we not participate from that

wary vapor
#

@kindred ivy you might be better off talking to our support team at this point