예제 #1
0
        public IActionResult Verify()
        {
            VerifyData verifyData = Payment.GetFormVerifyData(Request.Form);

            try
            {
                VerifyResponse paymentResponse = Payment.Verify(new VerifyRequest
                {
                    api     = myApi,
                    transId = verifyData.transId
                });

                if (paymentResponse.status == 1)
                {
                    ViewBag.transId = verifyData.transId;
                    ViewBag.amount  = paymentResponse.amount;
                    return(View(true));
                }

                ViewBag.Error = "خطای \"" + paymentResponse.errorCode + "\": " + paymentResponse.errorMessage;
            }
            catch
            {
                ViewBag.Error = "متاسفانه پرداخت ناموفق بوده است.";
            }

            return(View(false));
        }
예제 #2
0
        public override async Task <VerifyResponse> VerifyPhone(VerifyPhoneRequest request, ServerCallContext context)
        {
            var result = new VerifyResponse();

            var response = await _walletApiV1Client.VerifyPhoneAsync(new VerifyPhoneModel
            {
                PhoneNumber = request.Phone,
                Code        = request.Code,
                Token       = request.Token
            });

            if (response.Result != null)
            {
                result.Body = new VerifyResponse.Types.Body {
                    Passed = response.Result.Passed
                };
            }

            if (response.Error != null)
            {
                result.Error = response.Error.ToApiError();
            }

            return(result);
        }
예제 #3
0
        /// <summary>
        /// Первый шаг авторизации - отправка номера на сервер
        /// </summary>
        /// <returns></returns>
        public async Task FirstStepAuth()
        {
            if (string.IsNullOrWhiteSpace(ClientSettings.Phone))
            {
                throw new AuthMailException("Не задан номер телефона");
            }

            var request = new VerifyUriRequest(ClientSettings.Phone);

            request.LocationLat = ClientSettings.UserLat > 0.01 ? request.LocationLat : ClientSettings.UserLat;
            request.LocationLon = ClientSettings.UserLon > 0.01 ? request.LocationLon : ClientSettings.UserLon;
            request.SystemId    = string.IsNullOrWhiteSpace(ClientSettings.SystemId)
                ? request.SystemId
                : ClientSettings.SystemId;

            request.ApplicationId = Guid.NewGuid().ToString();
            var response = await _client.GetStringAsync(_url + request.CreateUri());

            _verifyResponse = JsonConvert.DeserializeObject <VerifyResponse>(response);

            if (_verifyResponse.Status != "OK")
            {
                throw new AuthMailException(_verifyResponse.Description);
            }

            _verifyUriRequest       = request;
            _sessionId              = request.SessionId;
            ClientSettings.SystemId = request.SystemId;
        }
예제 #4
0
        public VerifyResponse VerifyUserRegistration(int id, string token)
        {
            VerifyResponse response = new VerifyResponse();

            UserToken token2Verify = new UserToken();

            token2Verify.UserId    = id;
            token2Verify.Token     = new Guid(token);
            token2Verify.TokenType = TokenType.Verify;

            UserTokensData tokenData   = new UserTokensData(CurrentDataContext);
            UserToken      returnToken = tokenData.ReadTokenForRegistration(token2Verify);

            if (returnToken != null)
            {
                // Update user to be verified
                UsersData uData   = new UsersData(CurrentDataContext);
                User      theUser = uData.ReadUserById(id);
                theUser.Verified = true;
                uData.UpdateUser(theUser);

                // Delete the registration token
                tokenData.DeleteTokenById(returnToken.Id);

                response.Success = true;
                response.User    = theUser.StripSecurity();
            }

            return(response);
        }
예제 #5
0
        public async Task <ActionResult <VerifyResponse> > Verify([FromBody] VerifyRequest query)
        {
            await Task.Run(() => this.Fsm.Verify(query.Accesscode));

            var response = new VerifyResponse(this.State)
            {
                Phonenumber = _pnonenumber,
            };

            return(new ActionResult <VerifyResponse>(response));
        }
예제 #6
0
        /// <summary>
        ///     手机号认证
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Task&lt;System.Boolean&gt;.</returns>
        public async Task <bool> VerifyCellPhone(VerifyRequest request)
        {
            try
            {
                string url = $"{vailcodeBaseUrl}api/ValidateCodes/Verify";
                HttpResponseMessage responseMessage = await Client.PostAsJsonAsync(url, request);

                VerifyResponse response = await responseMessage.Content.ReadAsAsync <VerifyResponse>();

                return(responseMessage.StatusCode == HttpStatusCode.OK && response.Success);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #7
0
파일: Security.cs 프로젝트: niv/catflap
        public VerifyResponse VerifySignature(string sigFile, string dataFile)
        {
            VerifyResponse ret = new VerifyResponse();

            var keyring = Repository.TrustDBFile;

            if (!File.Exists(AppPath + "/" + keyring))
            {
                ret.Status = VerifyResponse.VerifyResponseStatus.NO_LOCAL_PUBKEY;
                Logger.Info("VerifySignature(\"" + dataFile + "\") = " + ret.Status);
                return ret;
            }

            if (!File.Exists(AppPath + "/" + sigFile) || !File.Exists(AppPath + "/" + dataFile))
            {
                ret.Status = VerifyResponse.VerifyResponseStatus.NO_LOCAL_SIGNATURE;
                Logger.Info("VerifySignature(\"" + dataFile + "\") = " + ret.Status);
                return ret;
            }

            var pProcess = new System.Diagnostics.Process();
            pProcess.StartInfo.FileName = AppPath + "\\bin\\minisign.exe";
            pProcess.StartInfo.EnvironmentVariables.Add("CYGWIN", "nodosfilewarning");

            pProcess.StartInfo.Arguments = "-Q -V " +
                " -p \"" + keyring.ShellEscape() + "\" " +
                " -x \"" + sigFile.ShellEscape() + "\" " +
                " -m \"" + dataFile.ShellEscape() + "\" ";

            pProcess.StartInfo.CreateNoWindow = true;
            pProcess.StartInfo.UseShellExecute = false;
            pProcess.StartInfo.WorkingDirectory = AppPath;
            pProcess.StartInfo.RedirectStandardOutput = true;
            pProcess.StartInfo.RedirectStandardError = true;
            pProcess.Start();
            pProcess.WaitForExit();

            var stdout = pProcess.StandardOutput.ReadToEnd();
            var stderr = pProcess.StandardError.ReadToEnd();

            if (pProcess.ExitCode == 0)
            {
                ret.Status = VerifyResponse.VerifyResponseStatus.OK;
                ret.trustedComment = stdout.Trim();

            } else {
                Match mr;
                if ((mr = RegexKeyMismatch.Match(stderr)).Success)
                {
                    /*var rxdataFile = mr.Groups[0].Value;
                    var curKey = mr.Groups[1].Value;
                    var rxsigFile = mr.Groups[2].Value;
                    var newKey = mr.Groups[3].Value;*/
                    ret.Status = VerifyResponse.VerifyResponseStatus.PUBKEY_MISMATCH;

                } else
                ret.Status = VerifyResponse.VerifyResponseStatus.SIGNATURE_DOES_NOT_VERIFY;
            }

            byte[] keyringData = Convert.FromBase64String(System.IO.File.ReadAllLines(AppPath + "/" + keyring)[1]);
            keyringData = keyringData.Skip(2).Take(8).Reverse().ToArray();
            ret.signingKey = BitConverter.ToString(keyringData).ToUpperInvariant();

            Logger.Info("VerifySignature(\"" + dataFile + "\") = " + ret.Status +
                ", key: " + ret.signingKey +
                ", comment: " + ret.trustedComment);

            return ret;
        }