android 如何在 React Native 中自动验证 OTP?

How to auto verify OTP in React Native on android?

我正在尝试在 android devices 上使用 react-native-sms-retriever 自动验证 otp。 我尝试了以下方式来实现。

 import SmsRetriever from 'react-native-sms-retriever';

 // Get the phone number (first gif)
 _onPhoneNumberPressed = async () => {
 try {
 const phoneNumber = await SmsRetriever.requestPhoneNumber();
 } catch (error) {
 console.log(JSON.stringify(error));
 }
 };

 // Get the SMS message (second gif)
 _onSmsListenerPressed = async () => {
 try {
 const registered = await SmsRetriever.startSmsRetriever();
 if (registered) {
 SmsRetriever.addSmsListener(event => {
 console.log(event.message);
 SmsRetriever.removeSmsListener();
 }); 
 }
 } catch (error) {
 console.log(JSON.stringify(error));
 }
 };

以下是我的OTP格式

OTP for your login to Orgpick is 3242. Please enter OTP  within 10 minutes.

我还创建了 sms 格式,如下虚拟键-SZ3KPh5voKE 请指导我使用以下 sms 格式。

我需要从服务器端获取相同的格式吗?

服务器端需要做哪些更改?

<#>OTP for your login to Orgpick is 3242. Please enter OTP  within 10 minutes.SZ3KPh5voKE

在尝试上述解决方案时它显示 time out exception

请帮我摆脱它。

这基本上是一个关键问题。您在消息中发送的十六进制代码密钥可能不正确,这是导致此问题的原因。尝试生成一个完美的密钥并将其发送到消息中。

注意生产密钥和调试密钥是不同的。你的看起来像调试密钥。

https://github.com/Bruno-Furtado/react-native-sms-retriever/issues/4

这个问题的回答会对你有所帮助。

我已经尝试了两个用于自动 otp 验证的库,但是 none 它们对我有用然后我尝试使用以下库它的工作 fine.Please 检查我在这里上传的答案

请检查您的播放服务是否是最新的。我遇到了同样的问题并通过更新播放服务解决了它。