public void NewPreAuthorizationUrl_ExcOptionalParams_GeneratesCorrectUrl() { var request = new PreAuthorizationRequest("0190G74E3J", 15m, 1, "month"); GoCardless.Environment = GoCardless.Environments.Sandbox; GoCardless.AccountDetails.AppId = "test_id"; GoCardless.AccountDetails.AppSecret = "test_secret"; GoCardless.GenerateNonce = () => "Q9gMPVBZixfRiQ9VnRdDyrrMiskqT0ox8IT+HO3ReWMxavlco0Fw8rva+ZcI"; GoCardless.GetUtcNow = () => new DateTimeOffset(new DateTime(2012, 03, 21, 08, 55, 56)); var url = GoCardless.Connect.NewPreAuthorizationUrl(request); var expected = "https://sandbox.gocardless.com/connect/pre_authorizations/new?client_id=test_id&nonce=Q9gMPVBZixfRiQ9VnRdDyrrMiskqT0ox8IT%2BHO3ReWMxavlco0Fw8rva%2BZcI&pre_authorization%5Binterval_length%5D=1&pre_authorization%5Binterval_unit%5D=month&pre_authorization%5Bmax_amount%5D=15.00&pre_authorization%5Bmerchant_id%5D=0190G74E3J&signature=40792b67ff99a474c2db08b870842bd5b3b82003206e4ab003a69860bbb0a30e×tamp=2012-03-21T08%3A55%3A56Z"; Assert.AreEqual(expected, url); }
/// <summary> /// Generate the URL for creating a new pre authorization. The parameters /// passed in define various attributes of the pre authorization. Redirecting /// a user to the resulting URL will show them a page where they can approve /// or reject the pre authorization described by the parameters. Note that /// this method automatically includes the nonce, timestamp and signature. /// </summary> /// <param name="requestResource">the request values</param> /// <param name="redirectUri">optional override URI on success</param> /// <param name="cancelUri">optional override URI on cancel</param> /// <param name="state">optional state, gets passed back with the successful payload</param> /// <returns>the generated URL</returns> public string NewPreAuthorizationUrl(PreAuthorizationRequest requestResource, string redirectUri = null, string cancelUri = null, string state = null) { return GenerateNewLimitUrl("pre_authorization", requestResource, redirectUri, cancelUri, state); }
public void NewPreAuthorizationUrl_IncOptionalParams_GeneratesCorrectUrl() { var request = new PreAuthorizationRequest("0190G74E3J", 15m, 1, "month") { ExpiresAt = new DateTimeOffset(new DateTime(2013, 03, 24, 19, 32, 22)), Name = "Premium Account", Description = "Test preauthorization", IntervalCount = 12, CalendarIntervals = true, User = new UserRequest { Name = "John Smith", FirstName = "John", LastName = "Smith", Email = "*****@*****.**", BillingAddress1 = "Flat 1", BillingAddress2 = "100 Main Street", BillingTown = "Townville", BillingCounty = "Countyshire", BillingPostcode = "N1 1AB", } }; GoCardless.Environment = GoCardless.Environments.Sandbox; GoCardless.AccountDetails.AppId = "test_id"; GoCardless.AccountDetails.AppSecret = "test_secret"; GoCardless.GenerateNonce = () => "Q9gMPVBZixfRiQ9VnRdDyrrMiskqT0ox8IT+HO3ReWMxavlco0Fw8rva+ZcI"; GoCardless.GetUtcNow = () => new DateTimeOffset(new DateTime(2012, 03, 21, 08, 55, 56)); var url = GoCardless.Connect.NewPreAuthorizationUrl(request); var expected = "https://sandbox.gocardless.com/connect/pre_authorizations/new?client_id=test_id&nonce=Q9gMPVBZixfRiQ9VnRdDyrrMiskqT0ox8IT%2BHO3ReWMxavlco0Fw8rva%2BZcI&pre_authorization%5Bcalendar_intervals%5D=True&pre_authorization%5Bdescription%5D=Test%20preauthorization&pre_authorization%5Bexpires_at%5D=2013-03-24T19%3A32%3A22Z&pre_authorization%5Binterval_count%5D=12&pre_authorization%5Binterval_length%5D=1&pre_authorization%5Binterval_unit%5D=month&pre_authorization%5Bmax_amount%5D=15.00&pre_authorization%5Bmerchant_id%5D=0190G74E3J&pre_authorization%5Bname%5D=Premium%20Account&pre_authorization%5Buser%5D%5Bbilling_address1%5D=Flat%201&pre_authorization%5Buser%5D%5Bbilling_address2%5D=100%20Main%20Street&pre_authorization%5Buser%5D%5Bbilling_county%5D=Countyshire&pre_authorization%5Buser%5D%5Bbilling_postcode%5D=N1%201AB&pre_authorization%5Buser%5D%5Bbilling_town%5D=Townville&pre_authorization%5Buser%5D%5Bemail%5D=john.smith%40example.com&pre_authorization%5Buser%5D%5Bfirst_name%5D=John&pre_authorization%5Buser%5D%5Blast_name%5D=Smith&pre_authorization%5Buser%5D%5Bname%5D=John%20Smith&signature=d28979ca9f0a515b06636777edfaec8c3b80bca6c783517a35ac4ed499a456ff×tamp=2012-03-21T08%3A55%3A56Z"; Assert.AreEqual(expected, url); }
/// <summary> /// Generate the URL for creating a new pre authorization. The parameters /// passed in define various attributes of the pre authorization. Redirecting /// a user to the resulting URL will show them a page where they can approve /// or reject the pre authorization described by the parameters. Note that /// this method automatically includes the nonce, timestamp and signature. /// </summary> /// <param name="requestResource">the request values</param> /// <param name="redirectUri">optional override URI on success</param> /// <param name="cancelUri">optional override URI on cancel</param> /// <param name="state">optional state, gets passed back with the successful payload</param> /// <returns>the generated URL</returns> public string NewPreAuthorizationUrl(PreAuthorizationRequest requestResource, string redirectUri = null, string cancelUri = null, string state = null) { return(GenerateNewLimitUrl("pre_authorization", requestResource, redirectUri, cancelUri, state)); }