public async Task <TransactionQueryResponse> QueryAsync(TransactionQueryRequest innerRequest) { var request = BuildRequest(innerRequest); var response = await PostAsync <SecureTradingRequest <TransactionQueryRequest>, SecureTradingResponse <TransactionQueryResponse> >(request); return(response.Response); }
static async Task MainAsync() { System.Console.WriteLine("Hello World!"); var configuration = GetConfiguration(); var secureTradingConfig = new SecureTradingConfiguration { Alias = configuration["SecureTrading:Alias"], SiteReference = configuration["SecureTrading:SiteReference"], Endpoint = configuration["SecureTrading:Endpoint"], Username = configuration["SecureTrading:Username"], Password = configuration["SecureTrading:Password"], Version = "1.00" }; var httpClient = new HttpClient(); var service = new SecureTradingClient(httpClient, secureTradingConfig); var byteArray = Encoding.ASCII.GetBytes($"{secureTradingConfig.Username}:{secureTradingConfig.Password}"); httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); #if false var orderReference = Guid.NewGuid().ToString(); var cacheToken = await service.CacheTokeniseAsync(new CacheTokeniseRequest { CardNumber = "4111111111111111", ExpiryDate = "12/2024", OrderReference = orderReference, PaymentTypeDescription = "VISA", SecurityCode = "123", SiteReference = secureTradingConfig.SiteReference }); var refund = await service.PayoutAsync(new PayoutRequest { CacheToken = cacheToken.CacheToken, BaseAmount = "100", CurrencyIso3a = "GBP", SiteReference = secureTradingConfig.SiteReference }); var query = await service.QueryAsync(new TransactionQueryRequest { Filter = new TransactionQueryFilter { AccountTypeDescription = BuildValueList(AccountTypeDescription.CFT.ToString()) } }); #endif #if true var orderReference = Guid.NewGuid().ToString(); var cacheToken = await service.CacheTokeniseAsync(new CacheTokeniseRequest { CardNumber = "4111111111111111", ExpiryDate = "12/2024", OrderReference = orderReference, PaymentTypeDescription = "VISA", SecurityCode = "123", SiteReference = secureTradingConfig.SiteReference }); var auth = await service.AuthAsync(new AuthRequest { BaseAmount = "1050", CacheToken = cacheToken.CacheToken, CurrencyIso3a = "GBP", OrderReference = orderReference, CredentialsOnFile = CredentialsOnFile.Store, SiteReference = secureTradingConfig.SiteReference }); var queryRequest = new TransactionQueryRequest { Filter = new TransactionQueryFilter { OrderReference = BuildValueList(orderReference), SiteReference = BuildValueList(secureTradingConfig.SiteReference) } }; Thread.Sleep(1000); var query = await service.QueryAsync(queryRequest); var parentTransaction = query.Records.First(r => r.OrderReference == orderReference); var orderReference2 = Guid.NewGuid().ToString(); Thread.Sleep(1000); var auth2 = await service.AuthAsync(new AuthRequest { BaseAmount = "1050", CurrencyIso3a = "GBP", OrderReference = orderReference2, CredentialsOnFile = CredentialsOnFile.UseStored, ParentTransactionReference = parentTransaction.TransactionReference, SiteReference = secureTradingConfig.SiteReference }); var orderReference3 = Guid.NewGuid().ToString(); var refund = await service.PayoutAsync(new PayoutRequest { BaseAmount = "2100", CurrencyIso3a = "GBP", OrderReference = orderReference3, CredentialsOnFile = CredentialsOnFile.UseStored, ParentTransactionReference = parentTransaction.TransactionReference, SiteReference = secureTradingConfig.SiteReference }); Thread.Sleep(1000); var query2 = await service.QueryAsync(new TransactionQueryRequest { Filter = new TransactionQueryFilter { OrderReference = BuildValueList(orderReference, orderReference2, orderReference3), SiteReference = BuildValueList(secureTradingConfig.SiteReference) } }); var query3 = await service.QueryAsync(new TransactionQueryRequest { Filter = new TransactionQueryFilter { OrderReference = BuildValueList(orderReference, orderReference2, orderReference3), RequestTypeDescription = new [] { RequestTypeDescription.AUTH } } }); #endif }