예제 #1
0
        public GSTNResult <TokenResponseModel> RequestToken(string otp)
        {
            dicParams.Clear();
            OtpTokenRequestModel model = new OtpTokenRequestModel {
                action   = "AUTHTOKEN",
                username = this.username
            };

            model.app_key = EncryptionUtils.RsaEncrypt(this.GetAppKeyBytes(), credential.cert_file_rsa);
            byte[] dataToEncrypt = UTF8Encoding.UTF8.GetBytes(otp);
            model.otp = EncryptionUtils.AesEncrypt(dataToEncrypt, this.GetAppKeyBytes());
            string finalJson = this.Serialize(model);

            this.LogMessage(finalJson);
            dicParams.Add("RequestPayload", finalJson);
            var output = this.Post <OtpTokenRequestModel, TokenResponseModel>(model);

            try
            {
                this.token        = output.Data;
                this.DecryptedKey = EncryptionUtils.AesDecrypt(token.sek, this.GetAppKeyBytes());
                this.LogMessage(this.token.auth_token);
            }
            catch (Exception ex)
            {
                output = this.BuildExceptionResult <TokenResponseModel>(ex);
            }

            return(output);
        }
예제 #2
0
        public GSTNResult <OTPResponseModel> RequestOTP()
        {
            OTPRequestModel model = new OTPRequestModel {
                action   = "OTPREQUEST",
                username = userid,
                app_key  = EncryptionUtils.RsaEncrypt(GSTNConstants.GetAppKeyBytes())
            };
            var output = this.Post <OTPRequestModel, OTPResponseModel>(model);

            return(output);
        }
예제 #3
0
        public GSTNResult <OTPResponseModel> RequestOTP()
        {
            dicParams.Clear();
            OTPRequestModel model = new OTPRequestModel {
                action   = "OTPREQUEST",
                username = this.username,
                app_key  = EncryptionUtils.RsaEncrypt(this.GetAppKeyBytes(), credential.cert_file_rsa)
            };
            string finalJson = this.Serialize(model);

            this.LogMessage(finalJson);
            dicParams.Add("RequestPayload", finalJson);
            var output = this.Post <OTPRequestModel, OTPResponseModel>(model);

            return(output);
        }
예제 #4
0
        public virtual GSTNResult <TokenResponseModel> RequestToken(string otp)
        {
            PwdTokenRequestModel model = new PwdTokenRequestModel {
                action   = "ACCESSTOKEN",
                username = credential.username
            };

            model.app_key = EncryptionUtils.RsaEncrypt(this.GetAppKeyBytes(), credential.cert_file_rsa);
            byte[] dataToEncrypt = UTF8Encoding.UTF8.GetBytes(credential.password);
            model.password = EncryptionUtils.RsaEncrypt(dataToEncrypt, credential.cert_file_rsa);
            var output = this.Post <PwdTokenRequestModel, TokenResponseModel>(model);

            token             = output.Data;
            this.DecryptedKey = EncryptionUtils.AesDecrypt(token.sek, this.GetAppKeyBytes());

            return(output);
        }
예제 #5
0
        public GSTNResult <OTPResponseModel> Logout()
        {
            dicParams.Clear();
            RefreshTokenModel model = new RefreshTokenModel
            {
                action   = "LOGOUT",
                username = this.username
            };

            model.app_key    = EncryptionUtils.RsaEncrypt(this.GetAppKeyBytes(), credential.cert_file_rsa);
            model.auth_token = this.AuthToken();
            string finalJson = this.Serialize(model);

            dicParams.Add("RequestPayload", finalJson);
            var output = this.Post <RefreshTokenModel, OTPResponseModel>(model);

            return(output);
        }
예제 #6
0
        public GSTNResult <TokenResponseModel> RequestToken(string otp)
        {
            TokenRequestModel model = new TokenRequestModel {
                action   = "AUTHTOKEN",
                username = userid
            };

            model.app_key = EncryptionUtils.RsaEncrypt(GSTNConstants.GetAppKeyBytes());
            byte[] dataToEncrypt = UTF8Encoding.UTF8.GetBytes(otp);
            model.otp = EncryptionUtils.AesEncrypt(dataToEncrypt, GSTNConstants.GetAppKeyBytes());
            var output = this.Post <TokenRequestModel, TokenResponseModel>(model);

            this.userid       = userid;
            token             = output.Data;
            this.AuthToken    = token.auth_token;
            this.DecryptedKey = EncryptionUtils.AesDecrypt(token.sek, GSTNConstants.GetAppKeyBytes());
            var Decipher = System.Text.Encoding.UTF8.GetString(DecryptedKey);

            return(output);
        }
예제 #7
0
        public GSTNResult <TokenResponseModel> RequestToken(string otp)
        {
            dicParams.Clear();
            PwdTokenRequestModel model = new PwdTokenRequestModel()
            {
                app_key  = EncryptionUtils.RsaEncrypt(this.GetAppKeyBytes(), credential.cert_file_rsa),
                action   = "ACCESSTOKEN",
                username = this.username,
                password = EncryptionUtils.RsaEncrypt(UTF8Encoding.UTF8.GetBytes(this.password), credential.cert_file_rsa)
            };
            string finalJson = this.Serialize(model);

            this.LogMessage(finalJson);
            dicParams.Add("RequestPayload", finalJson);
            var output = this.Post <PwdTokenRequestModel, TokenResponseModel>(model);

            try
            {
                if (output.Data != null)
                {
                    output.Data.auth_token = output.Data.authtoken;
                    this.token             = output.Data;
                    this.DecryptedKey      = EncryptionUtils.AesDecrypt(token.sek, this.GetAppKeyBytes());
                    this.LogMessage(this.token.auth_token);

                    if (myUtils.cValTN(output.Data.expiry) == 0 && output.Data.auth_token_expires_at.HasValue)
                    {
                        output.Data.expiry = (int)((output.Data.auth_token_expires_at.Value - DateTime.Now).TotalMinutes);
                    }
                    if (output.Data.expiry <= 0)
                    {
                        output.Data.expiry = 360;
                    }
                }
            }
            catch (Exception ex)
            {
                output = this.BuildExceptionResult <TokenResponseModel>(ex);
            }
            return(output);
        }