示例#1
0
        static async Task MainAsync()
        {
            var configuration = GetConfiguration();
            SecureTradingConfigurationModel secureTradingConfig = new SecureTradingConfigurationModel
            {
                Alias         = configuration["SecureTrading:Alias"],
                SiteReference = configuration["SecureTrading:SiteReference"],
                Endpoint      = configuration["SecureTrading:Endpoint"],
                Username      = configuration["SecureTrading:Username"],
                Password      = configuration["SecureTrading:Password"],
                Version       = "1.00"
            };
            SecureTradingClient service = new SecureTradingClient(secureTradingConfig);

            var orderReference     = Guid.NewGuid().ToString();
            AuthResponseModel auth = await service.AuthAsync(new AuthRequestModel
            {
                BaseAmount     = "1050",
                PAN            = "4111111111111111",
                CVV            = "123",
                Expiry         = "12/2020",
                Currency       = "GBP",
                OrderReference = orderReference,
            });

            System.Console.WriteLine("Hello World!");
        }
示例#2
0
        static async Task MainAsync()
        {
            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));

            var cacheToken = "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI2LWI3MTUwMzRjNTQ0ZGRmOWVkNDI2MGYxNmNmYTgzYzA1YjQwM2UxNDAyN2FjZTRlNjlmOWRjN2RlNGIzMDA2MDEifQ==";

            var orderReference = Guid.NewGuid().ToString();

#if false
            // AUTH a payment
            var auth = await service.AuthAsync(new AuthRequest()
            {
                BaseAmount     = "1050",
                CacheToken     = cacheToken,
                CurrencyIso3a  = "GBP",
                OrderReference = orderReference,
                SiteReference  = secureTradingConfig.SiteReference
            });

            // Find that payment in queries
            var query = await service.QueryAsync(new TransactionQueryRequest
            {
                Filter = new TransactionQueryFilter
                {
                    CurrencyIso3a  = BuildValueList("GBP"),
                    OrderReference = BuildValueList(orderReference)
                }
            });

            var transaction = query.Records.First();

            // Use that payment as parent for a payout
            var refund = await service.PayoutAsync(new PayoutRequest
            {
                ParentTransactionReference = transaction.TransactionReference,
                BaseAmount    = "1050",
                CurrencyIso3a = "GBP",
                SiteReference = secureTradingConfig.SiteReference
            });
#endif

#if false
            var refund = await service.PayoutAsync(new PayoutRequest
            {
                CacheToken    = cacheToken,
                BaseAmount    = "1050",
                CurrencyIso3a = "GBP",
                SiteReference = secureTradingConfig.SiteReference
            });
#endif

            var query = await service.QueryAsync(new TransactionQueryRequest
            {
                Filter = new TransactionQueryFilter
                {
                    CurrencyIso3a = BuildValueList("GBP")
                }
            });
        }
示例#3
0
        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
        }