#usm-seong_unexpected
1 messages ยท Page 1 of 1 (latest)
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.
- usm-seong_code, 15 hours ago, 63 messages
- usm_googlepay-3ds, 22 hours ago, 15 messages
- usm-seong_unexpected, 23 hours ago, 12 messages
- usm-seong_code, 1 day ago, 13 messages
- usm-seong_code, 1 day ago, 22 messages
- usm-seong_react-native-payment-sheet, 5 days ago, 46 messages
๐ 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/1275830511629242524
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
this is my code
const handleOnSubmit = async () => {
const priceNumber = addPlatformPayToAccount ? 0 : Number(price || 0);
try {
let addedNewCard = selectedCard;
try {
const platformPayResult = await handlePlatformPay({
paymentIntent: { ...paymentIntent, amount: priceNumber },
cartItemSummary: [
{
label: 'US Mobile',
amount: priceNumber.toString(),
paymentType: PlatformPay.PaymentType.Immediate,
},
],
poolId,
});
// if user closes the payment sheet - do not display any error
if (platformPayResult?.isCanceled) {
return;
}
if (!platformPayResult || !platformPayResult?.id) {
throw new Error('Something went wrong');
}
// if (priceNumber > 0 && !forceSetupIntent) {
console.log('platformPayResult = l ', platformPayResult);
await onPlatformPaymentSuccess?.(platformPayResult);
return;
} catch (e) {
if (e?.message) {
throw e;
}
}
if (!selectedCard) {
setAddingCard(true);
const { payload, error } = await dispatch(addNewCard(form));
if (error?.message) {
throw payload;
}
addedNewCard = last(payload);
}
setAddingCard(false);
onSubmit(addedNewCard.token);
} catch (error: any) {
}
};
i think the issue happens when I call cofnirmPlatformPayment Stripe sdk function
for Google Pay flow
Hello, looking in to this. Is 3DS otherwise working properly on that page? For example, if you use our 3DS test cards in test mode does it appear properly?
It looks like 3DS succeeded on both payments. One thing to keep in mind is that 3DS2 supports a frictionless flow where the full modal doesn't show. Is that potentially what you are seeing when you test these out?
https://support.stripe.com/questions/frictionless-flow-for-charges-created-using-3d-secure-2-(3ds2)
Find help and support for Stripe. Our support site provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
hmm I see
so it could be just the diffrence between Web and Mobile app?
it's just that the "frictionless" option doesn't display on web and does on RN.
?
also, is it expected that frictionless flow on browser behaves differently than on React Native in terms of UX? for browser we're not seeing any modal at all for 3DS whereas for RN we are seeing a modal that pops up and than dismisses itself after a few seconds
As far as I know yes. I'm not really sure what exactly is collected to calculate risk for frictionless 3DS, but I have seen a number of situations where the subtleties between device setups or even app vs browser on the same device caused different risk calculations for other things.
I'm honestly not sure about the expected behavior UI-wise but our UIs do differ that much in other circumstances. Are either of the flows erroring out in your code or preventing the website or app from knowing that the payment succeeded?
no it doesn't show errors nor preventing anything. It's just strange UX due to the modal that shows up and dismisses itself after a few seconds. and discrepancy betwewn web and mobile '
also
The risk scores in the stripe dashboards are very similar and all fall into the "Normal" range for "Risk Evaluation" score. They're not erroring out and the payment is succeeding, it's more of a UX discrepancy in that RN is always auto re-directing to 3DS screen and web app seems to bypass this screen if 3DS challenge is frictionless.
Gotcha, testing this myself just now in our test mode I also see the UIs that you are describing. Unfortunately I'm not finding anything documented about the UI so I am not 100% sure what is expected behavior. If you write in to our support team they can raise this with the team that is more familiar with this UI and/or file feedback if this is expected https://support.stripe.com/?contact=true
Find help and support for Stripe. Our support site provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.