How do I send an OTP to certain mobile number I put in Input Field, if I put correct OTP then it should move to the next screen?

138288-contact-no.png

An OTP should be sent to the contact number I input in the inputfield . If the OTP is correct then the
phone number is validated and the Next page should load.

Update: Since the documentation to use Firebase along with Unity is really unclear I had to find an alternative. I found the solution. I am using TextLocal as a SMS gateway provider. Here’s the tutorial I followed on Youtube: How to Generate and Send OTP SMS For Free using C#.NET?[With Source Code] - YouTube

The tutorial is in C# but is not meant for Unity. I modified the code to suit Unity and here’s my code:

using System; using System.Collections.Generic; using System.Net; using System.Collections.Specialized; using System.IO; using System.Text; using UnityEngine; using System.Collections.Generic; using System.Net; using System.Collections.Specialized; using System.Threading.Tasks; using System.Linq; using Random = System.Random; using UnityEngine.UI;

public class OTPSMS : MonoBehaviour { // public string txtPhone; // public string txtName; string randomNumber; public GameObject MessageBox; public GameObject MessageBox2; public GameObject MessageBox3; public GameObject MessageBox4; public InputField txtPhone; public InputField txtName; public InputField txtVerOTP;

// Start is called before the first frame update
void Start()
{
MessageBox.SetActive(false);
MessageBox2.SetActive(false);
MessageBox3.SetActive(false);
MessageBox4.SetActive(false);
}
// Update is called once per frame
void Update()
{
}
public void login()
{
String result;
string apiKey = “YOUR API KEY”; //The one which you get on TextLocal after registering . Follow the youtube tutorial
string numbers = txtPhone.text; // in a comma seperated list

 string sender = "TXTLCL";
 string name = txtName.text;
 var rnd = new Random();
 randomNumber = (rnd.Next(100000, 999999)).ToString();
 string message = "Hey " +name+ " Your OTP is " +randomNumber ;
 String url = "https://api.textlocal.in/send/?apikey=" + apiKey + "&numbers=" + numbers + "&message=" + message + "&sender=" + sender;
 //refer to parameters to complete correct url string
 StreamWriter myWriter = null;
 HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
 objRequest.Method = "POST";
 objRequest.ContentLength = Encoding.UTF8.GetByteCount(url);
 objRequest.ContentType = "application/x-www-form-urlencoded";
 try
 {
     myWriter = new StreamWriter(objRequest.GetRequestStream());
     myWriter.Write(url);
 }
 catch (Exception e)
 {
     MessageBox.SetActive(true);
 }
 finally
 {
     myWriter.Close();
 }
 HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
 using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
 {
     result = sr.ReadToEnd();
     // Close and clean up the StreamReader
     sr.Close();
 }
 MessageBox2.SetActive(true);

}
public void Verify()
{
if(txtVerOTP.text ==randomNumber)
{
MessageBox3.SetActive(true);
}
else
{
MessageBox4.SetActive(true);
}
}
}

And this is what the UI and hierarchy looks like: