Untitled

mail@pastecode.io avatar
unknown
vbscript
20 days ago
4.4 kB
2
Indexable
Never
<HttpPost>
Public Function SendOTP(ByVal phoneNumber As String, ByVal mailstr As String, ByVal channel As String) As JsonResult
    Dim accountSid As String = ConfigurationManager.AppSettings("TwilioAccountSID")
    Dim authToken As String = ConfigurationManager.AppSettings("TwilioAuthToken")
    Dim serviceSid As String = ConfigurationManager.AppSettings("TwilioVerifyServiceSID")
    Dim _db As New passusEntitieslocal
    Dim tempPhoneNumber = Replace(Replace(Replace(phoneNumber, "-", ""), "(", ""), ")", "")
    Dim phoneNumberPrefix = chkPhoneNumber(tempPhoneNumber, "")
    Dim db = "", fdid = "", usrwebPhone = "", phoneToSend = ""
    Dim usr As List(Of usrweb) = _db.usrweb.Where(Function(u) u.email = mailstr).ToList
    If usr.Count = 0 Then
        Return Json(New With {.status = "failed", .message = "Failed to send OTP."}, JsonRequestBehavior.AllowGet)
    End If
    For Each oneUsrweb In usr
        usrwebPhone = chkPhoneNumber(oneUsrweb.PhoneNum, oneUsrweb.EmailToText)
        If phoneNumberPrefix = usrwebPhone Then
            db = oneUsrweb.dname
            fdid = oneUsrweb.fdid
            phoneToSend = usrwebPhone
        End If
    Next
    If phoneToSend = "" Then
        Return Json(New With {.status = "failed", .message = "Failed to send OTP."}, JsonRequestBehavior.AllowGet)
    End If

    TwilioClient.Init(accountSid, authToken)
    Try
        Dim verification = VerificationResource.Create(
        to:=IIf(channel = "sms", phoneToSend, mailstr),
        channel:=IIf(channel = "sms", "sms", "email"),
        pathServiceSid:=serviceSid
    )
        If verification.Status = "pending" Then
            logSMS(db, fdid, "Your FireWorks verification code is: SECRET_CODE. This code will expire in 10 minutes.", IIf(channel = "sms", phoneToSend, mailstr), "Request OTP Twilio Verify")
            Return Json(New With {.status = "success", .message = "OTP sent successfully."}, JsonRequestBehavior.AllowGet)
        Else
            Return Json(New With {.status = "failed", .message = "Failed to send OTP."}, JsonRequestBehavior.AllowGet)
        End If
    Catch ex As Exception
        If ex.Message = "Max send attempts reached" Then
            Return Json(New With {.status = "success", .message = ex.Message}, JsonRequestBehavior.AllowGet)
        End If
        Return Json(New With {.status = "error", .message = ex.Message}, JsonRequestBehavior.AllowGet)
    End Try
End Function
<HttpPost>
Public Function VerifyOTP(ByVal phoneNumber As String, ByVal mailstr As String, ByVal channel As String, ByVal code As String) As ActionResult
    Dim accountSid As String = ConfigurationManager.AppSettings("TwilioAccountSID")
    Dim authToken As String = ConfigurationManager.AppSettings("TwilioAuthToken")
    Dim serviceSid As String = ConfigurationManager.AppSettings("TwilioVerifyServiceSID")
    Dim _db As New passusEntitieslocal
    Dim tempPhoneNumber = Replace(Replace(Replace(phoneNumber, "-", ""), "(", ""), ")", "")
    Dim phoneNumberPrefix = chkPhoneNumber(tempPhoneNumber, "")
    Dim db = "", fdid = "", usrwebPhone = "", phoneToSend = ""

    Dim usr As List(Of usrweb) = _db.usrweb.Where(Function(u) u.email = mailstr).ToList
    If usr.Count = 0 Then
        Return Json(New With {.status = "failed", .message = "Failed to send OTP."}, JsonRequestBehavior.AllowGet)
    End If
    TwilioClient.Init(accountSid, authToken)
    Try
        Dim verificationCheck = VerificationCheckResource.Create(
        to:=IIf(channel = "sms", phoneNumberPrefix, mailstr),
        code:=code,
        pathServiceSid:=serviceSid
    )
        If verificationCheck.Status = "approved" Then
            For Each oneUsrweb In usr

                usrwebPhone = chkPhoneNumber(oneUsrweb.PhoneNum, oneUsrweb.EmailToText)
                oneUsrweb.tempPass = MD5Hash(CStr(code))
                oneUsrweb.dtforpass = Now()
            Next
            _db.SaveChanges()
            Dim log As New login With {.usernameotp = mailstr, .passotp = code, .remme = "on"}
            Return RedirectToAction("IndexV3", log)
        Else
            Return Json(New With {.status = "failed", .message = "Verification failed."}, JsonRequestBehavior.AllowGet)
        End If
    Catch ex As Exception
        Return Json(New With {.status = "error", .message = ex.Message}, JsonRequestBehavior.AllowGet)
    End Try
End Function
Leave a Comment