#Vincent_92-3DS
1 messages · Page 1 of 1 (latest)
Hi! There is the payment_method_options.card.request_three_d_secure option to force 3D Secure for SetupIntents https://stripe.com/docs/api/setup_intents/create#create_setup_intent-payment_method_options-card-request_three_d_secure
Note that the documentation states:
We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and other requirements.
And we have some additional information about this here: https://stripe.com/docs/payments/3d-secure#manual-three-ds
Thank you, also when the user setup his card, he is prompted with google pay to pay 0$ (dollar )
and I dlike to be 0€ (Euro)
how can I do please ?
I try to add currency "eur" in setup but this fail
$paymentIntent = \Stripe\SetupIntent::create([
'customer' => $customerId,
'currency' => "eur" <===== if I add this line, all fail
'description' => 'setup_card',
'usage' => 'off_session',
'payment_method_types' => ['card'],
I don't see any currency parameter for the SetupIntent, so I'm not sure that's possible... give me a few minutes to investigate.
Do you have a screenshot of the "0$" UI?
yes please wait i give you that
As you see, all is in dollar USD
But my customer are EUR
I d'like to be € instead of $
Thanks for the additional information, I'm looking into this...
ok thanks
And how are you creating the SetupIntent? With Checkout, Stripe Elements, something else?
Stripe element
html :
<div id="payment-element"><!--Stripe.js injects the Payment Element--></div>
javascript :
const {error} = await stripe.confirmSetup({
//Elements instance that was used to create the Payment Element
elements,
confirmParams: {
payment_method_data: {
billing_details: {
email: document.getElementById("email").value,
phone: document.getElementById("phone").value,
address: {
city: document.getElementById("city").value,
line1: document.getElementById("line1").value ,
line2: 'Prenom + Nom : '+document.getElementById("prenom").value+' '+document.getElementById("nom").value,
postal_code:document.getElementById("postal_code").value,
// country: 'auto'
}
} },
return_url:
PHP :
$paymentIntent = \Stripe\PaymentIntent::create([
'amount' => ((($json_decode[0]->price + $taxe_sejour_vbro)*100)+$frais_service_apply),
'currency' => 'eur',
'payment_method_types' => ['card'],
'description' => $_GET['mode'],
'setup_future_usage' => 'off_session',
'customer' => $customerId,
]);
$output = ['clientSecret' => $paymentIntent->client_secret,];
sorry PHP is :
$paymentIntent = \Stripe\SetupIntent::create([
'customer' => $customerId,
'description' => 'setup_card',
'usage' => 'off_session',
'payment_method_types' => ['card'],
]);
$output = ['clientSecret' => $paymentIntent->client_secret,];
By the way, the parameter : payment_method_options.card.request_three_d_secure <= do I have to configure that on the javascript side, or the create setup in the php side ?
Would stripe dev team will do that in the future ?
I'm suprise that they do not handle that
This parameter is when you create the SetupIntent, so it's on the backend (PHP).
I don't know, but I can raise that feedback to the team.
Can you please show me how to write it ?
yes please
This is my current code , can you add the line to force 3d secure please ?
$paymentIntent = \Stripe\SetupIntent::create([
'customer' => $customerId,
'description' => 'setup_card',
'usage' => 'off_session',
'payment_method_types' => ['card'],
It should be something like this (not tested)
'payment_method_options' => [ 'card' => [ 'request_three_d_secure' => 'any' ]]
Ok thank you , gonna try. If you can raise my request about curreny to dev team I d be gratful
Could you share a SetupIntent ID (si_xxx) that displayed the "0$" amount?
Can you copy paste the ID in the top right that looks like seti_xxxx
req_I8pNylKSRLwi9Z
oh sorry
wait
seti_1KQTxYLpthC0ShbPmuioWweQ
I don't know if it has an influence or not but I have also in the client.js configured stripe with "locale" set to fr (French) but seems payment element do not care about this with the pop up screen shot I showed you
var stripe = Stripe(' stripe_client_api_key ##### >',{locale: fr});
Could you try to complete the payment in Google Pay for that SetupIntent?
ok
So did you do it? If so do you have a new SetupIntent ID, or it's the same?
ok!
Thanks! Could you try one last time, but by using this test card: 4000002500000003
And let me know if that changes anything for the currency
ok
hum
In fact the popup that show $ dollar only appear when you choose to pay with google pay. If I enter card number, there is no popup that appear, so there is no problem with card. The problem appear only with google pay (and apple pay I guess)
Oh right. But like I said there's no way to customize the amount in the popup. Sorry!
Yes but can you tell this to the dev team, so they can find a solution to be able to customise that ?
can you ?