public override void Start() { Debug.WriteLine("Ping operation started"); WillChangeValue("IsExecuting"); isExecuting = true; DidChangeValue("IsExecuting"); if (IsCancelled) { Finish(false); return; } Debug.WriteLine("UrlSession request created"); var request = CreatePingRequest(); dataTask = session.CreateDataTask(request, new NSUrlSessionResponse((data, response, error) => { if (error != null) { Debug.WriteLine($"Error: {error.DebugDescription}"); Finish(false); } Debug.WriteLine("UrlSession request completed"); Finish(true); })); }
public void Search(string searchText, EventHandler handler) { NSUrl url = GetUrl(searchText); NSUrlSessionDataTask dataTask = session.CreateDataTask(url, (data, response, error) => { NSError er; NSDictionary dict = (NSDictionary)NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.AllowFragments, out er); string status = dict["stat"].ToString(); Console.WriteLine("stat = " + dict["stat"]); NSArray arr = (NSArray)((NSDictionary)dict["photos"])["photo"]; List <FlickrPhoto> photosList = new List <FlickrPhoto>(); for (nuint i = 0; i < arr.Count; i++) { //Console.WriteLine(arr.GetItem<NSDictionary>(i)); NSDictionary elemt = arr.GetItem <NSDictionary>(i); FlickrPhoto photo = new FlickrPhoto(elemt["id"].ToString(), elemt["farm"].ToString(), elemt["server"].ToString(), elemt["secret"].ToString(), elemt["title"].ToString()); photosList.Add(photo); } //Console.WriteLine("photos = " + ((NSDictionary)dict["photos"])["photo"]); var arg = new PhotosDounloadEventArg(); arg.PhotosList = photosList; //FinishHandler(this, arg); handler(this, arg); Console.WriteLine("dict = " + dict); Console.WriteLine("data = " + data); Console.WriteLine("error = " + error); }); dataTask.Resume(); }
/// <summary> /// Starts the discovery of the Access Worldpay Verified Tokens Session service. /// </summary> /// <param name="urlSession">A `URLSession` object</param> /// <param name="onComplete">Callback upon discovery completion, successful or otherwise</param> public void Discover(NSUrlSession urlSession, Action onComplete) { // Check for existing tasks running if (_accessRootDiscoveryTask?.State == NSUrlSessionTaskState.Running || _verifiedTokensDiscoveryTask?.State == NSUrlSessionTaskState.Running) { return; } // Discovers the root end-point in verified tokens service _accessRootDiscoveryTask = urlSession.CreateDataTask(_baseUrl, (data, response, error) => { if (data is NSData jsonData) { var vtsRootEndPoint = FetchServiceUrl(VerifiedTokensServiceLinkId, jsonData); if (vtsRootEndPoint != null) { DiscoverSessionsEndPoint(urlSession, vtsRootEndPoint, onComplete); } else { onComplete.Invoke(); } } else { onComplete.Invoke(); } }); _accessRootDiscoveryTask?.Resume(); }
partial void SendNetworkReqClickedAsync(NSObject sender) { NSUrl url = new NSUrl("https://developer.huawei.com"); NSUrlSession session = NSUrlSession.SharedSession; NSUrlSessionDataTask task = session.CreateDataTask(url, completionHandler); task.Resume(); }
/// <summary> /// Establece conexion con el servidor para obtener los datos. /// </summary> /// <param name="uri">URI.</param> /// <param name="complete">Action conexion finalizada.</param> private void Connection(URIData uri, Action <bool, string> complete) { using (NSUrlSession session = NSUrlSession.FromConfiguration(NSUrlSessionConfiguration.DefaultSessionConfiguration, (INSUrlSessionDelegate) new DataDelegate(complete), null)) { NSUrlSessionDataTask task = session.CreateDataTask(CreateRequest(uri)); task.Resume(); } }
/// <inheritdoc /> protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (_session == null) { InitSession(); } var headers = request.Headers as IEnumerable <KeyValuePair <string, IEnumerable <string> > >; var body = default(NSData); if (request.Content != null) { var bytes = await request.Content.ReadAsByteArrayAsync().ConfigureAwait(false); if (bytes.Length > 0 || request.Method != HttpMethod.Get) { body = NSData.FromArray(bytes); headers = headers.Union(request.Content.Headers).ToArray(); } } var rq = new NSMutableUrlRequest { AllowsCellularAccess = true, Body = body, CachePolicy = NSUrlRequestCachePolicy.UseProtocolCachePolicy, Headers = headers.Aggregate(new NSMutableDictionary(), (acc, x) => { acc.Add(new NSString(x.Key), new NSString(string.Join(x.Key == "User-Agent" ? " " : ",", x.Value))); return(acc); }), HttpMethod = request.Method.ToString().ToUpperInvariant(), Url = NSUrl.FromString(request.RequestUri.AbsoluteUri), }; var op = _session.CreateDataTask(rq); cancellationToken.ThrowIfCancellationRequested(); var ret = new TaskCompletionSource <HttpResponseMessage>(); cancellationToken.Register(() => ret.TrySetCanceled()); lock (InflightRequests) { InflightRequests[op] = new InflightOperation { FutureResponse = ret, Request = request, ResponseBody = new ByteArrayListStream(), CancellationToken = cancellationToken, }; } op.Resume(); return(await ret.Task.ConfigureAwait(false)); }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var headers = request.Headers as IEnumerable <KeyValuePair <string, IEnumerable <string> > >; var ms = new MemoryStream(); if (request.Content != null) { await request.Content.CopyToAsync(ms).ConfigureAwait(false); headers = headers.Union(request.Content.Headers).ToArray(); } var rq = new NSMutableUrlRequest() { AllowsCellularAccess = true, Body = NSData.FromArray(ms.ToArray()), CachePolicy = (!this.DisableCaching ? NSUrlRequestCachePolicy.UseProtocolCachePolicy : NSUrlRequestCachePolicy.ReloadIgnoringCacheData), Headers = headers.Aggregate(new NSMutableDictionary(), (acc, x) => { acc.Add(new NSString(x.Key), new NSString(String.Join(getHeaderSeparator(x.Key), x.Value))); return(acc); }), HttpMethod = request.Method.ToString().ToUpperInvariant(), Url = NSUrl.FromString(request.RequestUri.AbsoluteUri), }; var op = session.CreateDataTask(rq); cancellationToken.ThrowIfCancellationRequested(); var ret = new TaskCompletionSource <HttpResponseMessage>(); cancellationToken.Register(() => ret.TrySetCanceled()); lock (inflightRequests) { inflightRequests[op] = new InflightOperation() { FutureResponse = ret, Request = request, Progress = getAndRemoveCallbackFromRegister(request), ResponseBody = new ByteArrayListStream(), CancellationToken = cancellationToken, }; } op.Resume(); return(await ret.Task.ConfigureAwait(false)); }
public void getPayementID(Boolean subscription) { NSUrl url = new NSUrl(paymentIdUrl); NSMutableUrlRequest request = new NSMutableUrlRequest(url); NSUrlSession session = null; NSUrlSessionConfiguration myConfig = NSUrlSessionConfiguration.DefaultSessionConfiguration; session = NSUrlSession.FromConfiguration(myConfig); var dictionary = new NSDictionary( "Content-Type", "application/json", "Authorization", secretKey ); if (subscription) { var date = NSDate.FromTimeIntervalSinceNow((3 * 12 * 30) * 24 * 3600); NSDateFormatter dateFormat = new NSDateFormatter(); dateFormat.DateFormat = "yyyy-MM-dd'T'HH:mm:ss"; var dateString = dateFormat.ToString(date); String data = "{\"subscription\":{\"endDate\":\"{dateString}\",\"interval\":0},\"order\":{\"currency\":\"SEK\",\"amount\":1000,\"reference\":\"MiaSDK-iOS\",\"items\":[{\"unit\":\"pcs\",\"name\":\"Lightning Cable\",\"reference\":\"MiaSDK-iOS\",\"quantity\":1,\"netTotalAmount\":800,\"unitPrice\":800,\"taxRate\":0,\"grossTotalAmount\":800,\"taxAmount\":0},{\"unitPrice\":200,\"quantity\":1,\"grossTotalAmount\":200,\"taxAmount\":0,\"taxRate\":0,\"reference\":\"MiaSDK-iOS\",\"name\":\"Shipping Cost\",\"unit\":\"pcs\",\"netTotalAmount\":200}]},\"checkout\":{\"consumerType\":{\"default\":\"B2C\",\"supportedTypes\":[\"B2C\",\"B2B\"]},\"returnURL\":\"https:\\/\\/127.0.0.1\\/redirect.php\",\"cancelURL\":\"https:\\/\\/127.0.0.1\\/cancel.php\",\"integrationType\":\"HostedPaymentPage\",\"shippingCountries\":[{\"countryCode\":\"SWE\"},{\"countryCode\":\"NOR\"},{\"countryCode\":\"DNK\"}],\"termsUrl\":\"http:\\/\\/localhost:8080\\/terms\"}}"; request.Body = data.Replace("{dateString}", dateString); } else { request.Body = "{\"order\":{\"currency\":\"SEK\",\"amount\":1000,\"reference\":\"MiaSDK-iOS\",\"items\":[{\"unit\":\"pcs\",\"name\":\"Lightning Cable\",\"reference\":\"MiaSDK-iOS\",\"quantity\":1,\"netTotalAmount\":800,\"unitPrice\":800,\"taxRate\":0,\"grossTotalAmount\":800,\"taxAmount\":0},{\"unitPrice\":200,\"quantity\":1,\"grossTotalAmount\":200,\"taxAmount\":0,\"taxRate\":0,\"reference\":\"MiaSDK-iOS\",\"name\":\"Shipping Cost\",\"unit\":\"pcs\",\"netTotalAmount\":200}]},\"checkout\":{\"consumerType\":{\"default\":\"B2C\",\"supportedTypes\":[\"B2C\",\"B2B\"]},\"returnURL\":\"https:\\/\\/127.0.0.1\\/redirect.php\",\"cancelURL\":\"https:\\/\\/127.0.0.1\\/cancel.php\",\"integrationType\":\"HostedPaymentPage\",\"shippingCountries\":[{\"countryCode\":\"SWE\"},{\"countryCode\":\"NOR\"},{\"countryCode\":\"DNK\"}],\"termsUrl\":\"http:\\/\\/localhost:8080\\/terms\"}}"; } request.HttpMethod = "POST"; request.Headers = dictionary; NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => { var json = NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.FragmentsAllowed, out error); if ((Foundation.NSString)json.ValueForKey((Foundation.NSString) "hostedPaymentPageUrl") != null && (Foundation.NSString)json.ValueForKey((Foundation.NSString) "paymentId") != null) { InvokeOnMainThread(() => { presentMiaSDK((Foundation.NSString)json.ValueForKey((Foundation.NSString) "paymentId"), (Foundation.NSString)json.ValueForKey((Foundation.NSString) "hostedPaymentPageUrl")); }); } }); task.Resume(); }
// line: 62 private void DiscoverSessionsEndPoint(NSUrlSession urlSession, NSUrl startUrl, Action onComplete) { _verifiedTokensDiscoveryTask = urlSession.CreateDataTask(startUrl, (data, response, error) => { if (data is NSData jsonData) { var vtsSessionUrl = FetchServiceUrl(VerifiedTokensSessionLinkId, jsonData); if (vtsSessionUrl != null) { VerifiedTokensSessionEndpoint = vtsSessionUrl; } } onComplete.Invoke(); }); _verifiedTokensDiscoveryTask?.Resume(); }
private void UpdateImage(Experience Ex) { NSUrlSession session = NSUrlSession.SharedSession; var dataTask = session.CreateDataTask(new NSUrlRequest(Ex.GetNSUrl()), (data, response, error) => { if (response != null) { DispatchQueue.MainQueue.DispatchAsync(() => { imageView.Image = UIImage.LoadFromData(data); }); } }); dataTask.Resume(); }
// line: 58 private static void CreateSession(NSUrlRequest request, NSUrlSession urlSession, Action <Result <string, Exception> > completionHandler) { urlSession.CreateDataTask(request, (data, response, error) => { var result = Result.Null <string, Exception>(); if (data is NSData sessionData) { var verifiedTokensResponse = Decoder.DecodeJson <AccessCheckoutResponse>(sessionData); if (verifiedTokensResponse != null && verifiedTokensResponse.Links != null) { var link = verifiedTokensResponse.Links.Endpoints.GetValueOrDefault("verifiedTokens:session"); if (link != null && link.Href is string href) { completionHandler(result.Success(href)); return; } } var accessCheckoutClientError = Decoder.DecodeJson <AccessCheckoutClientError>(sessionData); if (accessCheckoutClientError != null) { completionHandler(result.Failure(accessCheckoutClientError)); } else { completionHandler(result.Failure(new AccessCheckoutClientError( "Failed to decode response data", AccessCheckoutClientErrors.Unknown))); } } else { var ex = error == null ? new AccessCheckoutClientError( "Unexpected response: no data or error returned", AccessCheckoutClientErrors.Unknown) : (Exception) new NSErrorException(error); completionHandler(result.Failure(ex)); } }).Resume(); }
private void PubliceRequestMethod(NSMutableUrlRequest request) { NSError err; // 设置header NSMutableDictionary header = new NSMutableDictionary(); header.SetValueForKey((NSString)"application/json; charset=utf-8", (NSString)"Content-Type"); request.Headers = header; NSUrlSession session = NSUrlSession.FromConfiguration(NSUrlSessionConfiguration.DefaultSessionConfiguration, (INSUrlSessionDelegate)this, NSOperationQueue.CurrentQueue); NSUrlSessionDataTask task = session.CreateDataTask(request, (data, response, error) => { if (error != null) { Console.WriteLine(error.Description); } else { NSHttpUrlResponse resp = (NSHttpUrlResponse)response; NSDictionary dicData = (NSDictionary)NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.MutableLeaves, out err); if (dicData == null) { return; } NSObject code = dicData.ValueForKey((NSString)"code"); if (resp.StatusCode == 200 && code.ToString().Equals("0")) { NetworkHelperRDelegate(dicData, resp, null); Console.WriteLine(resp.Description); } else { NetworkHelperRDelegate(dicData, resp, err); string message = dicData.ValueForKey((NSString)"message").ToString(); Console.WriteLine(dicData.Description); } } }); task.Resume(); }
public void TestSessionConfiguration() { EventWaitHandle ewh = new EventWaitHandle(false, EventResetMode.AutoReset); Exec(() => { Controller.GetSessionConfiguration((NSUrlSessionConfiguration configuration) => { NSUrlSession session = NSUrlSession.FromConfiguration(configuration); session.CreateDataTask(NSUrl.FromString("https://facebookcorewwwi.onion/"), (NSData data, NSUrlResponse response, NSError error) => { Assert.Equal(((NSHttpUrlResponse)response).StatusCode, 200); Assert.True(error is null); ewh.Set(); }).Resume(); }); }); ewh.WaitOne(); }
void NSUrlSessionButton_TouchUpInside(object sender, EventArgs args) { NSUrlSessionConfiguration sessionConfig = NSUrlSessionConfiguration.DefaultSessionConfiguration; sessionConfig.AllowsCellularAccess = true; sessionConfig.TimeoutIntervalForRequest = 30.0; sessionConfig.TimeoutIntervalForResource = 60.0; sessionConfig.HttpMaximumConnectionsPerHost = 1; NSUrl url = NSUrl.FromString(URLRequestBin); NSMutableUrlRequest urlRequest = new NSMutableUrlRequest(url, NSUrlRequestCachePolicy.ReloadIgnoringLocalCacheData, 60.0); urlRequest.HttpMethod = "POST"; urlRequest.Body = NSData.FromString("data=This is some NSURLSession data"); NSUrlSession session = NSUrlSession.FromConfiguration(sessionConfig); NSUrlSessionDataTask dataTask = session.CreateDataTask(urlRequest); dataTask.Resume(); }
private MPMediaItemArtwork GetImageFromUrl(string url) { UIImage image = null; NSUrlSession session = NSUrlSession.SharedSession; NSUrlSessionDataTask dataTask = session.CreateDataTask(new NSUrlRequest(new NSUrl(url)), (data, response, error) => { if (response != null) { image = GetImageFromUrl(data); } }); dataTask.Resume(); if (image != null) { return(new MPMediaItemArtwork(image)); } return(null); }
public void registerCardPaymnet(bool payWithPayPal, Action completionHandler) { var merchantURL = @"YOUR MERCHANT BACKEND URL HERE"; NSMutableDictionary jsonDictionary = new NSMutableDictionary(); if (payWithPayPal == false) { NSMutableDictionary amount = new NSMutableDictionary(); amount.SetValueForKey(new NSNumber(1000), new NSString(@"totalAmount")); amount.SetValueForKey(new NSNumber(0), new NSString(@"vatAmount")); amount.SetValueForKey(new NSString(@"EUR"), new NSString(@"currencyCode")); jsonDictionary.SetValueForKey(amount, new NSString(@"amount")); } else { NSMutableDictionary amount = new NSMutableDictionary(); amount.SetValueForKey(new NSNumber(1000), new NSString(@"totalAmount")); amount.SetValueForKey(new NSNumber(0), new NSString(@"vatAmount")); amount.SetValueForKey(new NSString(@"DKK"), new NSString(@"currencyCode")); jsonDictionary.SetValueForKey(amount, new NSString(@"amount")); } jsonDictionary.SetValueForKey(new NSString(@"000011"), new NSString(@"customerId")); jsonDictionary.SetValueForKey(new NSString(@"PiaSDK-iOS-xamarin"), new NSString(@"orderNumber")); jsonDictionary.SetValueForKey(new NSNumber(true), new NSString(@"storeCard")); if (payWithPayPal) { NSMutableDictionary method = new NSMutableDictionary(); method.SetValueForKey(new NSString(@"PayPal"), new NSString(@"id")); method.SetValueForKey(new NSString(@"PayPal"), new NSString(@"displayName")); method.SetValueForKey(new NSNumber(0), new NSString(@"fee")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); } if (isPayingWithToken) { isPayingWithToken = false; // Make sure you have a saved card in your backend. NSMutableDictionary method = new NSMutableDictionary(); method.SetValueForKey(new NSString(@"EasyPayment"), new NSString(@"id")); method.SetValueForKey(new NSString(@"Easy Payment"), new NSString(@"displayName")); method.SetValueForKey(new NSNumber(0), new NSString(@"fee")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); jsonDictionary.SetValueForKey(new NSString(@"492500******0004"), new NSString(@"cardId")); } if (isPaytrail) { isPaytrail = false; NSMutableDictionary method = new NSMutableDictionary(); method.SetValueForKey(new NSString(@"PaytrailNordea"), new NSString(@"id")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); // dummy customer details jsonDictionary.SetValueForKey(new NSString(getPaytrailOrderNumber()), new NSString(@"orderNumber")); jsonDictionary.SetValueForKey(new NSString(@"*****@*****.**"), new NSString(@"customerEmail")); jsonDictionary.SetValueForKey(new NSString(@"Bill"), new NSString(@"customerFirstName")); jsonDictionary.SetValueForKey(new NSString(@"Buyer"), new NSString(@"customerLastName")); jsonDictionary.SetValueForKey(new NSString(@"Testaddress"), new NSString(@"customerAddress1")); jsonDictionary.SetValueForKey(new NSString(@"00510"), new NSString(@"customerPostCode")); jsonDictionary.SetValueForKey(new NSString(@"Helsinki"), new NSString(@"customerTown")); jsonDictionary.SetValueForKey(new NSString(@"FI"), new NSString(@"customerCountry")); jsonDictionary.Remove(new NSString(@"storeCard")); } if (NSJsonSerialization.IsValidJSONObject(jsonDictionary)) { NSError error1 = null; NSData jsonData = NSJsonSerialization.Serialize(jsonDictionary, NSJsonWritingOptions.PrettyPrinted, out error1); NSUrl url = new NSUrl(merchantURL); NSMutableUrlRequest request = new NSMutableUrlRequest(url, NSUrlRequestCachePolicy.UseProtocolCachePolicy, 30.0); request.HttpMethod = @"POST"; NSMutableDictionary dic = new NSMutableDictionary(); dic.Add(new NSString("Content-Type"), new NSString("application/json;charset=utf-8;version=2.0")); dic.Add(new NSString("Accept"), new NSString("application/json;charset=utf-8;version=2.0")); request.Headers = dic; request.Body = jsonData; NSError error2 = null; NSUrlSession session = NSUrlSession.SharedSession; NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => { if (data.Length > 0 && error == null) { NSDictionary resultsDictionary = (Foundation.NSDictionary)NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.MutableLeaves, out error2); if (resultsDictionary[@"transactionId"] != null && resultsDictionary[@"redirectOK"] != null) { NSString transactionId = (Foundation.NSString)resultsDictionary[@"transactionId"]; NSString redirectOK = (Foundation.NSString)resultsDictionary[@"redirectOK"]; transactionInfo = new NPITransactionInfo(transactionId, redirectOK); completionHandler(); } else { transactionInfo = null; registrationError = error; completionHandler(); } } else { transactionInfo = null; registrationError = error; completionHandler(); } }); task.Resume(); } }
public void getTransactionInfo(bool payWithPayPal, Action completionHandler) { //#internal_code_section_start var merchantURL = new String(@""); if (payWithPayPal) { merchantURL = @"https://api-gateway-pp.nets.eu/pia/merchantdemo/v2/payment/493809/register"; } else { merchantURL = @"https://api-gateway-pp.nets.eu/pia/test/merchantdemo/v2/payment/12002835/register"; } //#internal_code_section_end /*#external_code_section_start * var merchantURL = @"YOUR MERCHANT BACKEND URL HERE"; #external_code_section_end*/ NSMutableDictionary jsonDictionary = new NSMutableDictionary(); if (payWithPayPal == false) { NSMutableDictionary amount = new NSMutableDictionary(); amount.SetValueForKey(new NSNumber(1000), new NSString(@"totalAmount")); amount.SetValueForKey(new NSNumber(200), new NSString(@"vatAmount")); amount.SetValueForKey(new NSString(@"EUR"), new NSString(@"currencyCode")); jsonDictionary.SetValueForKey(amount, new NSString(@"amount")); } else { NSMutableDictionary amount = new NSMutableDictionary(); amount.SetValueForKey(new NSNumber(1000), new NSString(@"totalAmount")); amount.SetValueForKey(new NSNumber(0), new NSString(@"vatAmount")); amount.SetValueForKey(new NSString(@"DKK"), new NSString(@"currencyCode")); jsonDictionary.SetValueForKey(amount, new NSString(@"amount")); } jsonDictionary.SetValueForKey(new NSString(@"000011"), new NSString(@"customerId")); jsonDictionary.SetValueForKey(new NSString(@"PiaSDK-iOS-xamarin"), new NSString(@"orderNumber")); jsonDictionary.SetValueForKey(new NSNumber(true), new NSString(@"storeCard")); if (payWithPayPal) { NSMutableDictionary method = new NSMutableDictionary(); method.SetValueForKey(new NSString(@"PayPal"), new NSString(@"id")); method.SetValueForKey(new NSString(@"PayPal"), new NSString(@"displayName")); method.SetValueForKey(new NSNumber(0), new NSString(@"fee")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); } if (isPayingWithToken) { // Make sure you have a saved card in your backend. NSMutableDictionary method = new NSMutableDictionary(); method.SetValueForKey(new NSString(@"EasyPayment"), new NSString(@"id")); method.SetValueForKey(new NSString(@"Easy Payment"), new NSString(@"displayName")); method.SetValueForKey(new NSNumber(0), new NSString(@"fee")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); jsonDictionary.SetValueForKey(new NSString(@"492500******0004"), new NSString(@"cardId")); } if (NSJsonSerialization.IsValidJSONObject(jsonDictionary)) { NSError error1 = null; NSData jsonData = NSJsonSerialization.Serialize(jsonDictionary, NSJsonWritingOptions.PrettyPrinted, out error1); NSUrl url = new NSUrl(merchantURL); NSMutableUrlRequest request = new NSMutableUrlRequest(url, NSUrlRequestCachePolicy.UseProtocolCachePolicy, 30.0); request.HttpMethod = @"POST"; NSMutableDictionary dic = new NSMutableDictionary(); dic.Add(new NSString("Content-Type"), new NSString("application/json;charset=utf-8;version=2.0")); dic.Add(new NSString("Accept"), new NSString("application/json;charset=utf-8;version=2.0")); request.Headers = dic; request.Body = jsonData; NSError error2 = null; NSUrlSession session = NSUrlSession.SharedSession; NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => { if (data.Length > 0 && error == null) { NSDictionary resultsDictionary = (Foundation.NSDictionary)NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.MutableLeaves, out error2); if (resultsDictionary[@"transactionId"] != null && resultsDictionary[@"redirectOK"] != null) { NSString transactionId = (Foundation.NSString)resultsDictionary[@"transactionId"]; NSString redirectOK = (Foundation.NSString)resultsDictionary[@"redirectOK"]; transactionInfo = new NPITransactionInfo(transactionId, redirectOK); } else { transactionInfo = null; } completionHandler(); } else { transactionInfo = null; completionHandler(); } }); task.Resume(); } }
public void registerCallForWallets(int wallet, Action completionHandler) { //#internal_code_section_start var merchantURL = new String(@"https://api-gateway-pp.nets.eu/pia/test/merchantdemo/v2/payment/12002835/register"); //#internal_code_section_end /*#external_code_section_start * var merchantURL = @"YOUR MERCHANT BACKEND URL HERE"; #external_code_section_end*/ NSMutableDictionary jsonDictionary = new NSMutableDictionary(); NSMutableDictionary amount = new NSMutableDictionary(); NSMutableDictionary method = new NSMutableDictionary(); amount.SetValueForKey(new NSNumber(1000), new NSString(@"totalAmount")); amount.SetValueForKey(new NSNumber(200), new NSString(@"vatAmount")); method.SetValueForKey(new NSNumber(0), new NSString(@"fee")); switch (wallet) { case (int)MobileWallet.Vipps: { amount.SetValueForKey(new NSString(@"NOK"), new NSString(@"currencyCode")); method.SetValueForKey(new NSString(@"Vipps"), new NSString(@"id")); method.SetValueForKey(new NSString(@"Vipps"), new NSString(@"displayName")); //#internal_code_section_start jsonDictionary.SetValueForKey(new NSString(@"+4748059560"), new NSString(@"phoneNumber")); //#internal_code_section_end /*#external_code_section_start * jsonDictionary.SetValueForKey(new NSString(@"+471111..."), new NSString(@"phoneNumber")); #external_code_section_end*/ break; } case (int)MobileWallet.Swish: { amount.SetValueForKey(new NSString(@"SEK"), new NSString(@"currencyCode")); method.SetValueForKey(new NSString(@"SwishM"), new NSString(@"id")); method.SetValueForKey(new NSString(@"Swish"), new NSString(@"displayName")); break; } default: break; } jsonDictionary.SetValueForKey(amount, new NSString(@"amount")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); jsonDictionary.SetValueForKey(new NSString(@"000011"), new NSString(@"customerId")); jsonDictionary.SetValueForKey(new NSString(@"PiaSDK-iOS-xamarin"), new NSString(@"orderNumber")); jsonDictionary.SetValueForKey(new NSNumber(false), new NSString(@"storeCard")); //#internal_code_section_start jsonDictionary.SetValueForKey(new NSString("eu.nets.pia.xamarin://piasdk"), new NSString(@"redirectUrl")); //#internal_code_section_end /*#external_code_section_start * jsonDictionary.SetValueForKey(new NSString("YOUR_APP_SCHEME_URL://piasdk"), new NSString(@"redirectUrl")); #external_code_section_end*/ if (NSJsonSerialization.IsValidJSONObject(jsonDictionary)) { NSError error1 = null; NSData jsonData = NSJsonSerialization.Serialize(jsonDictionary, NSJsonWritingOptions.PrettyPrinted, out error1); NSUrl url = new NSUrl(merchantURL); NSMutableUrlRequest request = new NSMutableUrlRequest(url, NSUrlRequestCachePolicy.UseProtocolCachePolicy, 30.0); request.HttpMethod = @"POST"; NSMutableDictionary dic = new NSMutableDictionary(); dic.Add(new NSString("Content-Type"), new NSString("application/json;charset=utf-8;version=2.0")); dic.Add(new NSString("Accept"), new NSString("application/json;charset=utf-8;version=2.0")); request.Headers = dic; request.Body = jsonData; NSError error2 = null; NSUrlSession session = NSUrlSession.SharedSession; NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => { if (data.Length > 0 && error == null) { NSDictionary resultsDictionary = (Foundation.NSDictionary)NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.MutableLeaves, out error2); if (resultsDictionary[@"transactionId"] != null && resultsDictionary[@"walletUrl"] != null) { NSString transactionId = (Foundation.NSString)resultsDictionary[@"transactionId"]; NSString walletURL = (Foundation.NSString)resultsDictionary[@"walletUrl"]; transactionInfo = new NPITransactionInfo(walletURL); } else { transactionInfo = null; } completionHandler(); } else { transactionInfo = null; completionHandler(); } }); task.Resume(); } }
public void registerCallForWallets(MobileWallet wallet, WalletCallbackCompletionHandler callback) { var merchantURL = @"YOUR MERCHANT BACKEND URL HERE"; NSMutableDictionary jsonDictionary = new NSMutableDictionary(); NSMutableDictionary amount = new NSMutableDictionary(); NSMutableDictionary method = new NSMutableDictionary(); amount.SetValueForKey(new NSNumber(1000), new NSString(@"totalAmount")); amount.SetValueForKey(new NSNumber(200), new NSString(@"vatAmount")); method.SetValueForKey(new NSNumber(0), new NSString(@"fee")); switch (wallet) { case MobileWallet.Vipps: { amount.SetValueForKey(new NSString(@"NOK"), new NSString(@"currencyCode")); method.SetValueForKey(new NSString(@"Vipps"), new NSString(@"id")); method.SetValueForKey(new NSString(@"Vipps"), new NSString(@"displayName")); jsonDictionary.SetValueForKey(new NSString(@"+471111..."), new NSString(@"phoneNumber")); break; } case MobileWallet.Swish: { amount.SetValueForKey(new NSString(@"SEK"), new NSString(@"currencyCode")); method.SetValueForKey(new NSString(@"SwishM"), new NSString(@"id")); method.SetValueForKey(new NSString(@"Swish"), new NSString(@"displayName")); break; } case MobileWallet.MobilePay: { amount.SetValueForKey(new NSString(@"EUR"), new NSString(@"currencyCode")); method.SetValueForKey(new NSString(@"MobilePay"), new NSString(@"id")); method.SetValueForKey(new NSString(@"MobilePay"), new NSString(@"displayName")); break; } default: break; } jsonDictionary.SetValueForKey(amount, new NSString(@"amount")); jsonDictionary.SetValueForKey(method, new NSString(@"method")); jsonDictionary.SetValueForKey(new NSString(@"000011"), new NSString(@"customerId")); jsonDictionary.SetValueForKey(new NSString(@"PiaSDK-iOS-xamarin"), new NSString(@"orderNumber")); jsonDictionary.SetValueForKey(new NSNumber(false), new NSString(@"storeCard")); jsonDictionary.SetValueForKey(new NSString("YOUR_APP_SCHEME_URL://piasdk"), new NSString(@"redirectUrl")); if (NSJsonSerialization.IsValidJSONObject(jsonDictionary)) { NSError error1 = null; NSData jsonData = NSJsonSerialization.Serialize(jsonDictionary, NSJsonWritingOptions.PrettyPrinted, out error1); NSUrl url = new NSUrl(merchantURL); NSMutableUrlRequest request = new NSMutableUrlRequest(url, NSUrlRequestCachePolicy.UseProtocolCachePolicy, 30.0); request.HttpMethod = @"POST"; NSMutableDictionary dic = new NSMutableDictionary(); dic.Add(new NSString("Content-Type"), new NSString("application/json;charset=utf-8;version=2.0")); dic.Add(new NSString("Accept"), new NSString("application/json;charset=utf-8;version=2.0")); request.Headers = dic; request.Body = jsonData; NSError error2 = null; NSUrlSession session = NSUrlSession.SharedSession; NSUrlSessionTask task = session.CreateDataTask(request, (data, response, error) => { if (data.Length > 0 && error == null) { NSDictionary resultsDictionary = (Foundation.NSDictionary)NSJsonSerialization.Deserialize(data, NSJsonReadingOptions.MutableLeaves, out error2); if (resultsDictionary[@"transactionId"] != null && resultsDictionary[@"walletUrl"] != null) { NSString transactionId = (Foundation.NSString)resultsDictionary[@"transactionId"]; NSString walletURL = (Foundation.NSString)resultsDictionary[@"walletUrl"]; transactionInfo = new NPITransactionInfo(walletURL); callback(WalletRegistrationResponse.SuccessWithWalletURL(NSUrl.FromString(transactionInfo.WalletUrl))); } else { transactionInfo = null; callback(WalletRegistrationResponse.Failure(error)); } } else { transactionInfo = null; callback(WalletRegistrationResponse.Failure(error)); } }); task.Resume(); } }