#H2O-charges-paymentmethod
1 messages · Page 1 of 1 (latest)
@polar dirge I'm happy to help but I'll be honest I didn't understand any of what you described in details
If a partner uses the Charge API, you basically can not use PaymentIntent and SetupIntent. Those create a PaymentMethod (not a Token) and they are completely incompatible
What are you really trying to do, who creates what object, who uses what object, etc.
Thanks!
I am actually not really sure if they use Charges API, i am just assuming this because their Event starts with ch_
They asked us to send us a token https://stripe.com/docs/js/tokens_sources/create_token?type=cardElement
I will be super nitpicky with words because it's really crucial to be aligned I hope it's okay
An Event is an object that represent something sent to your webhook endpoint about what happened. Like a PAyout failing, a Customer being created, etc. It's called Event and has an id evt_123. It does not have a ch_123 id
Legacy integrations from years ago, collected card details and created a Card Token tok_123 and then could create a Charge via the /v1/charges API and you get a ch_123
Now newer integration create PaymentIntents pi_123 and PaymentMethods pm_123 but those still create Charges under the hood
Okay with that said: what is your blocker?
Okay this is the legacy integration, they create a card token tok_123, and charge that card with the legacy step, that's it.
Now what are you trying to do, and who are you in that step?
We are the frontend. We collect the card details with Elements
Perfect, so today you create a Token right?
But I need to verify the card details. Either with confirmCardPayment in a Payment Intent or a confirmCardSetup in a Setup Intent
Yes the Token works well
This happens with a Payment Intent
that is mostly impossible
my guess is you do this
1/ Create a PAymentIntent
2/ Confirm it client-side => charge 35€
3/ create a Token for the same card
4/ Send it to your partner who also charges that card 35€
is this what happens?
Yes, but we use 1/ https://stripe.com/docs/payments/capture-later
capture_method: 'manual' in the Payment Intent
So my guess was that i must use Setup Intent for this?
yeah basically this flow is still showing asa double charge even if you don't capture and you absolutely shouldn't do this
but really the flow you are trying will never work
Well I would adapt to another flow. But they told us to do so
I just try to make it work
Is there another way to make a Token?
They use this v1/charges and need a token, and told us to use Elements
really trying to do this won't work and they are misunderstanding, they, the partner, absolutely need to move to PaymentIntents
nothing else will work
They are really bad
It goes over a year now
Lul
I mean
Looks like it gets the job done in a hacky way
No double charge is created
And we can make a Token while use Elements with SCA
But there is one problem. If we use Setup Intent, the amount of what we want to charge is not available in the authorization process with the bank. Its left blank »0,00«€. Do you know if I can change that?
Its so crazy, because I told them this in the first place. But they always said: No our service works in Europe with SCA. Just use elements. Now we went live and have double charges, because they didn't offer dev / test environments.
But I am not here to whine.
Do you have any recommendations for me to do? Tipps?
Oh and one more question. Is it possible to send the token without doing confirmCardPayment / confirmCardSetup? Probably the charge will fail if it requires authentification, no?
I'm sorry you're really approaching it wrong
Its problematic because its such a niche
And they are most likely the only service
But thanks
I really appreciate your time and honesty
May I ask your paypal to offer you a coffee?
You don't need to do that, I work for Stripe so it's my job to help people here
Do you know if this partner is able to charge "saved cards"?
like if you take the Token tok_123 and attach the Token to a Customer cus_123 can they then charge that card?
I am not 100% sure but they have an /cardsonfile endpoint and accept a Stripe Token
You can either charge it once via /v1/charges + source: 'tok_123
Or you can add it to a customer to save that card and later charge the customer/card via /v1/charges + customer: 'cus_123 + source: 'card_123'
ah cool
okay so you have a really hacky path forward I think
it won't be enough but it could help
I am happy to hear about every bit
1/ Create a Card Token tok_123
2/ Create a Customer and save that card on it tok_123 -> Customer cus_123 and Card card_123
Now that card is saved and can be charged/re-used at will
What this lets you is
3/ Do a SetupIntent for that saved card to try and do 3D Secure for SCA and get it completed successfully. That works with a saved Card object even though they are legacy
4/ After that, ask them to charge the save card, don't use the tok_123 since it's consumed, but use the card_123 + cus_123
the advantage is that this charge might use the 3DS set up for the card because it was already done successfully and it could help with conversions
I am not sure it's really viable but it's worth a shot
Thanks
I already used a SetupIntent
It works
Also the token
The problem is
That SetupIntent does not show money
I know that's just impossible to do the perfect flow
and you don't use SetupIntent properly today
you likely create a completely separate pm_123456 that is unrelated and won't work
but yeah everyone will see that 0,00€ there is no alternative
But we lost customers to that
They get confused
Just to clarify
In any possible way: A Setup Intent always shows 0,00€?
Maybe we just use it
And tell our clients not to get confused
Haha
We need Payment Intent Captures
Would solve everything
not sure what that could mean, we support payment intent captures