Exemple #1
0
        private void PrepareRestClient(PaymentChangeRequest paymentRequest, out RestRequest restsharpRequest, out RestClient restClient)
        {
            var typeOfTransactionPartOfUrl = "";

            if (transactionType == TransactionType.Capture)
            {
                typeOfTransactionPartOfUrl = "capture";
            }
            else if (transactionType == TransactionType.Refund)
            {
                typeOfTransactionPartOfUrl = "refund";
            }
            else if (transactionType == TransactionType.Void)
            {
                typeOfTransactionPartOfUrl = "void";
            }
            restsharpRequest = new RestRequest
            {
                Method        = Method.POST,
                Resource      = "/transactions/" + paymentRequest.Transaction.OrderNumber + "/" + typeOfTransactionPartOfUrl + ".xml",
                XmlSerializer = new RestSharp.Serializers.DotNetXmlSerializer(),
                RequestFormat = DataFormat.Xml
            };
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
            restsharpRequest.AddBody(paymentRequest.Transaction);
            restClient = new RestClient(rootUrl);
        }
Exemple #2
0
 /// <summary>
 /// Changes the request payer value for the specified bucket
 /// </summary>
 public String PaymentChange(String bucketName, PaymentChangeRequest.Payer payer)
 {
     using (PaymentChangeRequest paymentChangeRequest = new PaymentChangeRequest(bucketName, payer))
         using (PaymentChangeResponse paymentChangeResponse = this.service.PaymentChange(paymentChangeRequest))
         {
             return(paymentChangeResponse.StreamResponseToString());
         }
 }
Exemple #3
0
        public async Task <TransactionResult> MakeTransactionAsync(decimal amount, Currency currency, string orderNumber, Language language, IRequestValidator <PaymentChangeRequest> validator, IPaymentChangeClient client)
        {
            if (client.transactionType != TransactionType.Void)
            {
                throw new TransactionTypeMismatchException("Void transation cannot accept client that was initialized with transactionType" + client.transactionType);
            }
            PaymentChangeRequest paymentRequest = requestBuilder.Build(amount, currency, orderNumber, wbpayIntegration, language);

            return(await DoTransactionAsync(paymentRequest, language, validator, client));
        }
Exemple #4
0
        public Response <PaymentResponse, SecureMessage> Send(PaymentChangeRequest paymentRequest)
        {
            RestRequest restsharpRequest;
            RestClient  restClient;

            PrepareRestClient(paymentRequest, out restsharpRequest, out restClient);
            IRestResponse response = restClient.Execute(restsharpRequest);

            return(HandleResponse <PaymentResponse, SecureMessage>(response, () => response.Content.Contains("<secure-message")));
        }
Exemple #5
0
        public PaymentChangeRequest Build(decimal amount, Currency currency, string orderNumber, WebPayIntegration integration, Language language)
        {
            Request.PaymentChangeRequest paymentRequest = new PaymentChangeRequest();
            var transaction = new TransactionSimple();

            transaction.Amount            = MakeCleanLongIntFromDecimal(amount);
            transaction.OrderNumber       = orderNumber;
            transaction.Currency          = currency;
            transaction.AuthenticityToken = integration.ConfigurationSettings.AuthenticityToken;
            transaction.Digest            = CreateDigest(integration.ConfigurationSettings.Key, orderNumber, amount, currency);
            paymentRequest.Transaction    = transaction;
            return(paymentRequest);
        }
Exemple #6
0
        public Task <Response <PaymentResponse, SecureMessage> > SendAsync(PaymentChangeRequest paymentRequest)
        {
            RestRequest restsharpRequest;
            RestClient  restClient;
            var         taskCompletionSource = new TaskCompletionSource <Response <PaymentResponse, SecureMessage> >();

            PrepareRestClient(paymentRequest, out restsharpRequest, out restClient);

            restClient.ExecuteAsync(restsharpRequest, (r) =>

                                    taskCompletionSource.SetResult(HandleResponse <PaymentResponse, SecureMessage>(r, () => r.Content.Contains("<secure-message")))
                                    );
            return(taskCompletionSource.Task);
        }
Exemple #7
0
        public async Task <TransactionResult> MakeTransactionAsync(decimal amount, Currency currency, string orderNumber, Language language, IRequestValidator <PaymentChangeRequest> validator)
        {
            PaymentChangeRequest paymentRequest = requestBuilder.Build(amount, currency, orderNumber, wbpayIntegration, language);

            return(await DoTransactionAsync(paymentRequest, language, validator, new PaymentChangeClient(wbpayIntegration.ConfigurationSettings.WebPayRootUrl, TransactionType.Void)));
        }
Exemple #8
0
        public TransactionResult MakeTransaction(decimal amount, Currency currency, string orderNumber, Language language)
        {
            PaymentChangeRequest paymentRequest = requestBuilder.Build(amount, currency, orderNumber, wbpayIntegration, language);

            return(DoTransaction(paymentRequest, language, new  PaymentChangeRequestValidator(), new PaymentChangeClient(wbpayIntegration.ConfigurationSettings.WebPayRootUrl, TransactionType.Void)));
        }
 protected Task <TransactionResult> DoTransactionAsync(PaymentChangeRequest paymentRequest, Language language, IPaymentChangeClient paymentClient)
 {
     return(DoTransactionInternal(() => paymentClient.SendAsync(paymentRequest), paymentRequest, language, new PaymentChangeRequestValidator()));
 }
 protected TransactionResult DoTransaction(PaymentChangeRequest paymentRequest, Language language, IPaymentChangeClient paymentClient)
 {
     return(DoTransactionInternal(() => Task.FromResult(paymentClient.Send(paymentRequest)), paymentRequest, language, new PaymentChangeRequestValidator()).Result);
 }
Exemple #11
0
 /// <summary>
 /// Changes a payment request configuration
 /// </summary>
 public PaymentChangeResponse PaymentChange(PaymentChangeRequest request)
 {
     return(Invoke <PaymentChangeResponse>(request));
 }
        static void DemonstrateThreeSharp()
        {
            Console.WriteLine("===========================================");
            Console.WriteLine("Demonstrating the ThreeSharp Library");
            Console.WriteLine("===========================================");

            ThreeSharpConfig config = new ThreeSharpConfig();

            config.AwsAccessKeyID     = awsAccessKeyId;
            config.AwsSecretAccessKey = awsSecretAccessKey;
            config.IsSecure           = false;

            IThreeSharp service = new ThreeSharpQuery(config);

            // Convert the bucket name to lowercase for vanity domains.
            // the bucket must be lower case since DNS is case-insensitive.
            Random r = new Random();
            string testBucketName  = awsAccessKeyId.ToLower() + "-test-bucket" + r.Next(50000).ToString();;
            string testBucketName2 = awsAccessKeyId.ToLower() + "-test-bucket" + r.Next(50000).ToString();;
            string stringKeyName   = "StringObject";


            Console.WriteLine("\n----- Creating Bucket " + testBucketName + " -----");
            using (BucketAddRequest request = new BucketAddRequest(testBucketName))
                using (BucketAddResponse response = service.BucketAdd(request))
                { }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing Bucket " + testBucketName + " -----");
            using (BucketListRequest request = new BucketListRequest(testBucketName))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Creating Bucket " + testBucketName2 + " -----");
            using (BucketAddRequest request = new BucketAddRequest(testBucketName2))
                using (BucketAddResponse response = service.BucketAdd(request))
                { }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing Bucket " + testBucketName2 + " -----");
            using (BucketListRequest request = new BucketListRequest(testBucketName2))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Adding String Object to " + testBucketName + " -----");
            using (ObjectAddRequest request = new ObjectAddRequest(testBucketName, stringKeyName))
            {
                request.LoadStreamWithString("This is a string object.");
                using (ObjectAddResponse response = service.ObjectAdd(request))
                { }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Getting String Object -----");
            using (ObjectGetRequest request = new ObjectGetRequest(testBucketName, stringKeyName))
            {
                using (ObjectGetResponse response = service.ObjectGet(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Copying String Object to " + testBucketName2 + " -----");
            using (ObjectCopyRequest request = new ObjectCopyRequest(testBucketName, stringKeyName, testBucketName2, stringKeyName + "Copy"))
                using (ObjectCopyResponse response = service.ObjectCopy(request))
                { }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing Bucket " + testBucketName2 + " -----");
            using (BucketListRequest request = new BucketListRequest(testBucketName2))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Getting RequestPaymentConfiguration for " + testBucketName2 + " -----");
            using (PaymentGetRequest request = new PaymentGetRequest(testBucketName2))
                using (PaymentGetResponse response = service.PaymentGet(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Changing RequestPaymentConfiguration for " + testBucketName2 + " -----");
            using (PaymentChangeRequest request = new PaymentChangeRequest(testBucketName2, PaymentChangeRequest.Payer.Requester))
                using (PaymentChangeResponse response = service.PaymentChange(request))
                { }

            Console.WriteLine("\n----- Getting RequestPaymentConfiguration (again) for " + testBucketName2 + " -----");
            using (PaymentGetRequest request = new PaymentGetRequest(testBucketName2))
                using (PaymentGetResponse response = service.PaymentGet(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Changing RequestPaymentConfiguration for " + testBucketName2 + " -----");
            using (PaymentChangeRequest request = new PaymentChangeRequest(testBucketName2, PaymentChangeRequest.Payer.BucketOwner))
                using (PaymentChangeResponse response = service.PaymentChange(request))
                { }

            Console.WriteLine("\n----- Getting Copied String Object -----");
            using (ObjectGetRequest request = new ObjectGetRequest(testBucketName2, stringKeyName + "Copy"))
            {
                using (ObjectGetResponse response = service.ObjectGet(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();


            Console.WriteLine("\n----- Streaming File Object -----");
            using (ObjectAddRequest request = new ObjectAddRequest(testBucketName, uploadFile))
            {
                request.LoadStreamWithFile(uploadPath + uploadFile);
                using (ObjectAddResponse response = service.ObjectAdd(request))
                { }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Streaming/Encrypting File Object -----");
            using (ObjectAddRequest request = new ObjectAddRequest(testBucketName, uploadFile + "Encrypted"))
            {
                request.LoadStreamWithFile(uploadPath + uploadFile);
                request.EncryptStream(encryptionKey, encryptionIV);
                using (ObjectAddResponse response = service.ObjectAdd(request))
                { }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing Bucket " + testBucketName + " -----");
            using (BucketListRequest request = new BucketListRequest(testBucketName))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Streaming File to Disk -----");
            using (ObjectGetRequest request = new ObjectGetRequest(testBucketName, uploadFile))
                using (ObjectGetResponse response = service.ObjectGet(request))
                {
                    response.StreamResponseToFile(downloadPath + uploadFile);
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Streaming/Decrypting File to Disk -----");
            using (ObjectGetRequest request = new ObjectGetRequest(testBucketName, uploadFile + "Encrypted"))
                using (ObjectGetResponse response = service.ObjectGet(request))
                {
                    response.DecryptStream(encryptionKey, encryptionIV);
                    response.StreamResponseToFile(downloadPath + "decrypted-" + uploadFile);
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Query String Authorization Example -----");
            using (UrlGetRequest request = new UrlGetRequest(testBucketName, uploadFile))
            {
                request.ExpiresIn = 60 * 1000;
                using (UrlGetResponse response = service.UrlGet(request))
                {
                    Console.WriteLine("Try this url in your web browser (it will only work for 60 seconds)\n");
                    Console.WriteLine(response.StreamResponseToString());
                }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Adding String Object with Metadata and Public Read ACL -----");
            using (ObjectAddRequest request = new ObjectAddRequest(testBucketName, stringKeyName + "Public"))
            {
                request.LoadStreamWithString("This is a publicly readable test.");
                request.MetaData.Add("blah", "foo");
                request.Headers.Add("x-amz-acl", "private");
                //request.Headers.Add("x-amz-acl", "public-read");
                //request.Headers.Add("x-amz-acl", "public-read-write");
                //request.Headers.Add("x-amz-acl", "authenticated-read");
                using (ObjectAddResponse response = service.ObjectAdd(request))
                { }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Getting Object's ACL -----");
            using (ACLGetRequest request = new ACLGetRequest(testBucketName, stringKeyName + "Public"))
                using (ACLGetResponse response = service.ACLGet(request))
                {
                    string output = response.StreamResponseToString();
                    Console.WriteLine(output);
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Changing Object's ACL -----");
            using (ACLChangeRequest request = new ACLChangeRequest(testBucketName, stringKeyName + "Public", "public-read"))
                using (ACLChangeResponse response = service.ACLChange(request))
                { }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Getting Object's ACL -----");
            using (ACLGetRequest request = new ACLGetRequest(testBucketName, stringKeyName + "Public"))
                using (ACLGetResponse response = service.ACLGet(request))
                {
                    string output = response.StreamResponseToString();
                    Console.WriteLine(output);
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Deleting Objects -----");
            using (ObjectDeleteRequest request = new ObjectDeleteRequest(testBucketName, stringKeyName))
                using (ObjectDeleteResponse response = service.ObjectDelete(request))
                { }
            using (ObjectDeleteRequest request = new ObjectDeleteRequest(testBucketName2, stringKeyName + "Copy"))
                using (ObjectDeleteResponse response = service.ObjectDelete(request))
                { }
            using (ObjectDeleteRequest request = new ObjectDeleteRequest(testBucketName, uploadFile))
                using (ObjectDeleteResponse response = service.ObjectDelete(request))
                { }
            using (ObjectDeleteRequest request = new ObjectDeleteRequest(testBucketName, uploadFile + "Encrypted"))
                using (ObjectDeleteResponse response = service.ObjectDelete(request))
                { }
            using (ObjectDeleteRequest request = new ObjectDeleteRequest(testBucketName, stringKeyName + "Public"))
                using (ObjectDeleteResponse response = service.ObjectDelete(request))
                { }

            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing Bucket " + testBucketName + " -----");
            using (BucketListRequest request = new BucketListRequest(testBucketName))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing Bucket " + testBucketName2 + " -----");
            using (BucketListRequest request = new BucketListRequest(testBucketName2))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing All My Buckets -----");
            using (BucketListRequest request = new BucketListRequest(null))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Deleting Bucket " + testBucketName + " -----");
            using (BucketDeleteRequest request = new BucketDeleteRequest(testBucketName))
                using (BucketDeleteResponse response = service.BucketDelete(request))
                { }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Deleting Bucket " + testBucketName2 + " -----");
            using (BucketDeleteRequest request = new BucketDeleteRequest(testBucketName2))
                using (BucketDeleteResponse response = service.BucketDelete(request))
                { }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\n----- Listing All My Buckets -----");
            using (BucketListRequest request = new BucketListRequest(null))
                using (BucketListResponse response = service.BucketList(request))
                {
                    Console.WriteLine(response.StreamResponseToString());
                }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();

            Console.WriteLine("\nTotal data transfers: " + service.GetTransferInfos().Length.ToString());
            Console.WriteLine("Total bytes uploaded: " + service.GetTotalBytesUploaded().ToString());
            Console.WriteLine("Total bytes downloaded: " + service.GetTotalBytesDownloaded().ToString());
            Console.WriteLine("\npress enter >");
            Console.ReadLine();
        }