/// <summary> /// Initial when user login + create token key to verify /// </summary> /// <param name="_key">Key generated and add to block</param> /// <param name="_username">User username</param> /// <returns>Redirect to Candidates view + token key</returns> public ActionResult create_BC(string _key, string _username) { var user = db.Users.FirstOrDefault(x => x.Username.Equals(_username)); var block = new BlockChainModel(); if (user.Public_key == null) { block.initialBlock(_key, user); } //Generate a token Random rnd = new Random(); int _num = rnd.Next(0, 9); string _token = Membership.GeneratePassword(24, _num); //Encrypt token and send with random key to AR server string _keyToken = Guid.NewGuid().ToString("N"); var _encryptToken = TokenModel.encryptToken(_token, _keyToken); var _encryptKey = TokenModel.CreateKey(Encoding.Unicode.GetBytes(_keyToken)); // 64 bytes Session["UserSession"] = new UserSession { Username = _username }; Session["TokenSession"] = new TokenSession { Token = _encryptToken, TokenKey = _encryptKey }; Session["user_TokenSession"] = new UserSession { Token = _token }; return(RedirectToAction("Index", "Candidates")); }
public string Capture(GridMPGSConfig mpgsConfig, TokenSession tokenSession) { GatewayApiConfig config = new GatewayApiConfig(mpgsConfig); GatewayApiRequest gatewayApiRequest = new GatewayApiRequest(config) { OrderId = tokenSession.MPGSOrderID, ApiOperation = MPGSAPIOperation.CAPTURE.ToString(), TransactionAmount = tokenSession.Amount.ToString(), TransactionId = PaymentHelper.GenerateOrderId(), TransactionCurrency = config.Currency, Token = tokenSession.Token, SourceType = tokenSession.SourceOfFundType }; gatewayApiRequest.buildRequestUrl(); gatewayApiRequest.buildPayload(); string request = JsonConvert.SerializeObject(gatewayApiRequest); LogInfo.Information(JsonConvert.SerializeObject(gatewayApiRequest)); GatewayApiClient gatewayApiClient = new GatewayApiClient(config); string response = gatewayApiClient.SendTransaction(gatewayApiRequest); LogInfo.Information(response); return(TokenResponse.GetResponseResult(response)); }
public void Login(string email, string password) { view.Progress(true); User user = new User() { email = email, password = password }; var subscribe = AuthService.Login(user) .Subscribe(data => { view.Progress(false); Auth auth = JsonConvert.DeserializeObject <Auth>(data); UserSession.StoreUserAccess(auth.user); TokenSession.StoreAuthToken(auth.token); view.ConfirmAPIResponse(auth); }, error => { view.Progress(false); view.ShowMessage(error.ToString()); }); subscriptions.Add(subscribe); }
public static ApiClientOneVoucherRedeemResponse GetOneVoucher(ApiClientUser user, long sequenceNumber, string voucherPin, ApiClientAcquirer acquirer) { try { var accessToken = ""; var refreshToken = ""; var token = HttpContext.Current.Application["TokenSession"] as TokenSession; if (token != null) { accessToken = token.accessToken; if (Convert.ToDateTime(token.ExpDate) <= DateTime.Now) { var refreshTokenFlash = JukeBox.BLL.ExternalApi.Voucher.GetTokenAsync(); accessToken = refreshTokenFlash.access_token; refreshToken = refreshTokenFlash.refresh_token; var date = DateTime.Now.AddMinutes(55); HttpContext.Current.Application.Remove("TokenSession"); var tokenSession = new TokenSession { accessToken = accessToken, refreshToken = refreshToken, ExpDate = date }; HttpContext.Current.Application["TokenSession"] = tokenSession; } } else { var tokenFlash = JukeBox.BLL.ExternalApi.Voucher.GetTokenAsync(); accessToken = tokenFlash.access_token; refreshToken = tokenFlash.refresh_token; var date = DateTime.Now.AddMinutes(55); var tokenSession = new TokenSession { accessToken = accessToken, refreshToken = refreshToken, ExpDate = date }; HttpContext.Current.Application["TokenSession"] = tokenSession; } var data = JukeBox.BLL.ExternalApi.Voucher.GetApiClientOneVoucher(new ApiClientOneVoucherRedeemFilter() { user = user, sequenceNumber = sequenceNumber, voucherPin = voucherPin, acquirer = acquirer, amountRequested = 0, currency = "ZAR" }, accessToken); return(data); } catch (Exception e) { throw e; } }
public TokenResponse Tokenize(GridMPGSConfig mpgsConfig, TokenSession tokenSession) { try { GatewayApiConfig config = new GatewayApiConfig(mpgsConfig); GatewayApiRequest gatewayUpdateSessionRequest = new GatewayApiRequest(config); GatewayApiClient gatewayApiClient = new GatewayApiClient(config); //generate token GatewayApiRequest gatewayGenerateTokenRequest = new GatewayApiRequest(config); gatewayGenerateTokenRequest.SessionId = tokenSession.CheckOutSessionID; gatewayGenerateTokenRequest.ApiMethod = GatewayApiClient.POST; gatewayGenerateTokenRequest.buildPayload(); gatewayGenerateTokenRequest.buildTokenUrl(); string request = JsonConvert.SerializeObject(gatewayGenerateTokenRequest); LogInfo.Information(JsonConvert.SerializeObject(gatewayGenerateTokenRequest)); String response = gatewayApiClient.SendTransaction(gatewayGenerateTokenRequest); LogInfo.Information(response); TokenResponse tokenResponse = TokenResponse.ToTokenResponse(response); LogInfo.Information($"Tokenize response : {response}"); return(tokenResponse); } catch (Exception ex) { LogInfo.Error(new ExceptionHelper().GetLogString(ex, ErrorLevel.Critical)); throw ex; } }