public async Task InitPayment_SpecifiedRequestEncodingAndReturnType_Succeeds( HttpRequestEncodingType encodingType, InitPaymentResponseType responseType) { var connection = new Connection(PlatronClient.PlatronUrl, SettingsStorage.Credentials, encodingType); var client = new PlatronClient(connection); // To find out what really happens enable proxy (thru fiddler) // and use custom connection over http to watch plain requests //.EnableProxy(new WebProxy("http://localhost:8888", false)); var initPayment = new InitPaymentRequest(1.Rub(), "Money first"); initPayment.InTestMode(); initPayment.OrderId = Guid.NewGuid().ToString("N"); switch (responseType) { case InitPaymentResponseType.RedirectLink: var response = await client.InitPaymentAsync(initPayment); Assert.NotNull(response); break; case InitPaymentResponseType.HtmlForm: var html = await client.InitPaymentAsHtmlAsync(initPayment); Assert.NotNull(html); break; default: throw new ArgumentOutOfRangeException(nameof(responseType), responseType, null); } }
public async Task InitPayment_ValidMerchant_Succeeds() { var initPayment = new InitPaymentRequest(1.Rub(), "sample description"); var client = new PlatronClient(SettingsStorage.Credentials); initPayment.InTestMode(); var response = await client.InitPaymentAsync(initPayment); Assert.NotNull(response); Assert.NotNull(response.RedirectUrl); }
public async Task InitPayment_ValidMerchant_Succeeds() { var initPayment = new InitPaymentRequest(1.Usd(), "sample description"); var client = new PlatronClient(SettingsStorage.Credentials); initPayment.InTestMode(); var response = await client.InitPaymentAsync(initPayment); Assert.NotNull(response); Assert.NotNull(response.RedirectUrl); }
public async Task InitPaymentAsHtml_InvalidMerchant_ReturnsHtml() { var initPayment = new InitPaymentRequest(1.Rub(), "sample description"); initPayment.Language = PlatronLanguage.English; // doesn't work. still in russian var client = new PlatronClient("0000", "secret"); initPayment.InTestMode(); var html = await client.InitPaymentAsHtmlAsync(initPayment); Assert.True(html.Content.Contains("Incorrect merchant")); }
public async Task InitPaymentAsHtml_ValidMerchant_ReturnsHtml() { var initPayment = new InitPaymentRequest(1.Eur(), "sample description"); var client = new PlatronClient(SettingsStorage.Credentials); initPayment.InTestMode(); var html = await client.InitPaymentAsHtmlAsync(initPayment); // requestUri contains redirect uri: https://www.platron.ru/payment_params.php?customer=f00e1b48ea91013cc7a40242f218e68821586740 Assert.NotNull(html.RequestUri); // and requestUri contains 'customer' which hides inside html too: // <input type="hidden" name="customer" value="f00e1b48ea91013cc7a40242f218e68821586740"> var customer = html.RequestUri.Query.Split('=').Last(); Assert.True(html.Content.Contains(customer)); }
public async Task InitPaymentAsHtml_InvalidMerchant_ReturnsHtml() { var initPayment = new InitPaymentRequest(1.Rur(), "sample description"); initPayment.Language = PlatronLanguage.English; // doesn't work. still in russian var client = new PlatronClient("0000", "secret"); initPayment.InTestMode(); var html = await client.InitPaymentAsHtmlAsync(initPayment); Assert.True(html.Content.Contains("Incorrect merchant")); }
public async Task InitPayment_SpecifiedRequestEncodingAndReturnType_Succeeds( HttpRequestEncodingType encodingType, InitPaymentResponseType responseType) { var connection = new Connection(PlatronClient.PlatronUrl, SettingsStorage.Credentials, encodingType); var client = new PlatronClient(connection); // To find out what really happens enable proxy (thru fiddler) // and use custom connection over http to watch plain requests //.EnableProxy(new WebProxy("http://localhost:8888", false)); var initPayment = new InitPaymentRequest(1.Rur(), "Money first"); initPayment.InTestMode(); initPayment.OrderId = Guid.NewGuid().ToString("N"); switch (responseType) { case InitPaymentResponseType.RedirectLink: var response = await client.InitPaymentAsync(initPayment); Assert.NotNull(response); break; case InitPaymentResponseType.HtmlForm: var html = await client.InitPaymentAsHtmlAsync(initPayment); Assert.NotNull(html); break; default: throw new ArgumentOutOfRangeException(nameof(responseType), responseType, null); } }