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); }
/// <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()); } }
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)); }
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"))); }
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); }
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); }
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))); }
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); }
/// <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(); }