#thamoddya-rashmitha_code

1 messages ยท Page 1 of 1 (latest)

frail nimbusBOT
#

๐Ÿ‘‹ 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/1437616113323348099

๐Ÿ“ Have more to share? Add more details, code, screenshots, videos, etc. below.

indigo narwhal
#

Backend Code

if (!connectedAccountId) {
const account = await this.stripePayGate.stripe.accounts.create({
type: 'custom',
country: 'AU', // or user.country
email: user.email,
business_type: 'individual', // or "company"
capabilities: {
card_payments: { requested: true },
transfers: { requested: true },
},
default_currency: 'AUD',
individual: {
email: user.email,
},
business_profile: {
mcc: '7399', // Miscellaneous Business Services
url: 'https://taskbear.com.au',
},
tos_acceptance: {
date: Math.floor(Date.now() / 1000),
ip: user.ip || '0.0.0.0',
},
metadata: { app_user_id: user.id },
});
connectedAccountId = account.id;
}

real rampart
#

Hi, looking into your question!

indigo narwhal
#

Get Keys for Frontend SKD ID Verification - React Native SDK

private async createStripeIdentityVerificationSession(
user: any,
badge: any,
submissionId: number
) {

const verificationSession =
  await this.stripePayGate.stripe.identity.verificationSessions.create({
    // verification_flow: 'vf_1S2shAK7Wv3rEitIL9iEGkvj',
    type: 'document',
    options: {
      document: {
        require_id_number: true,
        require_live_capture: true,
        require_matching_selfie: true,
        allowed_types: ['driving_license', 'passport', 'id_card'],
      },
    },
    metadata: {
      user_id: user.id.toString(),
      badge_id: badge.id.toString(),
      submission_id: submissionId.toString(),
      email: user.email,
    },
  });

const ephemeralKeySecret = await this.stripePayGate.createEphemeralKey({
  verificationSessionId: verificationSession.id,
});

return {
  client_secret: verificationSession.client_secret,
  ephemeral_key_secret: ephemeralKeySecret,
  id: verificationSession.id,
  url: verificationSession.url,
};

}

#

The Customer Account is Created As Australia but, It required SSN

real rampart
#

Can I get the connected account's account ID please?

indigo narwhal
#

sure

#

acct_1QOuUWGUycOy8ruI

indigo narwhal
real rampart
#

I am looking into the account. I will need some time.

indigo narwhal
#

In React Native

const [options, setOptions] = useState<VerificationSessionOptions>({
verificationType: VerificationType.DOCUMENT,
requireMatchingSelfie: true,
requireIdNumber: true,
allowedTypes: {
[AllowedTypes.DRIVING_LICENSE]: true,
[AllowedTypes.ID_CARD]: true,
[AllowedTypes.PASSPORT]: true,
},
requireLiveCapture: true,
requireAddress: false,
phoneFallbackToDocument: false,
phoneOtpCheckType: PhoneOtpCheckTypes.ATTEMPT,
});

const fetchOptions = useCallback(async () => {
const credentials = await getTestCredentials(options);
console.log('====================================');
console.log('Credentials: ', credentials);
console.log('====================================');
return {
sessionId: credentials.id,
ephemeralKeySecret: credentials.ephemeral_key_secret,
brandLogo: Image.resolveAssetSource(logo),
};
}, [options, setOptions]);

     fetchOptions();
     present();
real rampart
#

In your screenshot is that the first step that you see? Did you attempt to upload any document before that?

indigo narwhal
#

After this Step

real rampart
#

And what document did you scan?

indigo narwhal
#

Driving License - AU

#

The SSN reaquire in the Last Step, We have give the Selfy Also.

real rampart
#

Can I have the verification session object ID please?

indigo narwhal
#

We have tried different times , But I will send the last 2 ok

real rampart
#

Thanks!

indigo narwhal
#

A VerificationSession with ID vs_1SS6y1GUycOy8ruICZeYySnL was created

A VerificationSession with ID vs_1SRywVGUycOy8ruIYvqVNq4v was created

real rampart
#

Give me a moment to look at them.

indigo narwhal
#

Okay.

#

Hi

real rampart
#

I am still investigating. Will come back to your shortly.

indigo narwhal
#

ok. Thanks

real rampart
indigo narwhal
#

Yes

#

const [options, setOptions] = useState<VerificationSessionOptions>({
verificationType: VerificationType.DOCUMENT,
requireMatchingSelfie: true,
requireIdNumber: true,
allowedTypes: {
[AllowedTypes.DRIVING_LICENSE]: true,
[AllowedTypes.ID_CARD]: true,
[AllowedTypes.PASSPORT]: true,
},
requireLiveCapture: true,
requireAddress: false,
phoneFallbackToDocument: false,
phoneOtpCheckType: PhoneOtpCheckTypes.ATTEMPT,
});

Fetching

const fetchOptions = useCallback(async () => {
const credentials = await getTestCredentials(options);
console.log('====================================');
console.log('Credentials: ', credentials);
console.log('====================================');
return {
sessionId: credentials.id,
ephemeralKeySecret: credentials.ephemeral_key_secret,
brandLogo: Image.resolveAssetSource(logo),
};
}, [options, setOptions]);

#

const handleVerificationPress = useCallback(async () => {
if (Platform.OS === 'ios') {
console.log('๐ŸŽ Starting iOS verification with Stripe Identity');
fetchOptions();
present();
} else {
setVerificationLoading(true);
try {
// Generate fresh access token for Android web verification
const freshToken = await generateFreshAccessToken();
if (!freshToken) {
Alert.alert('Error', 'Failed to generate access token. Please try again.');
return;
}
const verificationUrl = ${AppSettings.WebUrl}/stripe-verification?token=${freshToken.accessToken};

        console.log('Opening verification URL:', verificationUrl);

        // Open in Swan browser
        try {
           await openBrowser(verificationUrl, {
              barTintColor: theme.colors.primary,
              controlTintColor: 'white',
           });

           // The useFocusEffect will handle refreshing when user returns to the screen
           console.log('๐Ÿ”„ Browser closed - badges will refresh when screen regains focus');
        } catch (browserError) {
           console.error('Swan browser error:', browserError);
           await Linking.openURL(verificationUrl);
        }
     } catch (error) {
        console.error('Error opening verification:', error);
        Alert.alert('Error', 'Failed to start verification process. Please try again.');
     } finally {
        setVerificationLoading(false);
     }
  }

}, [present, generateFreshAccessToken]);

In android, app crashing in latest stripe versions so i decide to use my web implementation to here for android

real rampart
indigo narwhal
#

THis is i see in the log, when i click on Submit Verification

{
"client_secret": "vs_1SS7cWGUycOy8ruIzuQK2lbL_secret_live_YWNjdF8xUU91VVdHVXljT3k4cnVJLF9UT3ZUU2J3NUtnWk43TjRCZG5CQ0NQSEFHRVJjODd40100784DG50H",
"ephemeral_key_secret": "ek_live_YWNjdF8xUU91VVdHVXljT3k4cnVJLFJqbXdYbE1laFlTYTVlRHc1MWxPV2l3RlhDdXdoM2s_00luD8Ul9L",
"id": "vs_1SS7cWGUycOy8ruIzuQK2lbL",
"url": "https://verify.stripe.com/start/live_YWNjdF8xUU91VVdHVXljT3k4cnVJLF9UT3ZUU2J3NUtnWk43TjRCZG5CQ0NQSEFHRVJjODd40100784DG50H"
}

real rampart
#

We will likely need to move this conversation to a ticket to investigate this further. I will be dropping a note to you on how you can create the ticket. Please remove the video from here and add it to the ticket when you create it.

frail nimbusBOT
#

Hello @indigo narwhal, we have sent you a direct message, please check it at https://discord.com/channels/@me/1437635677612146842

  • ๐Ÿ”—The message has instructions on how to open a direct support case with our Developer Support team, in order to help you more effectively.
indigo narwhal
#

I don't see to create ticket

real rampart
#

What happens when you clicked on the link in the DM?

indigo narwhal
#

It navigate to this page shoiwn in the image

real rampart
#

You can click on Contact support. You will need to mention you want to create a ticket and on the form you will need to indicate you are a developer.

indigo narwhal
#

Done.
Thanks

#

WHat's next?

real rampart
#

Just saw you ticket! Thanks!

#

Will reply to you via the ticket on any updates,

indigo narwhal
#

From Email or DIscord ?

real rampart
#

Email

frail nimbusBOT
#

โ›”๏ธ Stripe developers have stepped away for a short while

Please leave your questions here, and weโ€™ll respond as soon as we're back! If you need help urgently, you can contact Stripe support for help.