2017-10-17 10 views
0

Je travaille sur Xamarin Android. J'implémente stripe pour le paiement mais quand je frappe l'API stripe l'exception suivante est attrapéeStripe ne prend plus en charge les requêtes API faites avec TLS 1.0 dans Xamarin Android?

Stripe ne prend plus en charge les requêtes API faites avec TLS 1.0. Veuillez initialiser les connexions HTTPS avec TLS 1.2 ou version ultérieure.

Que peut-on faire pour supprimer l'erreur?

P.S. Le même code fonctionne parfaitement dans Xamarin IOS.

Voici mon code:

async Task<StripeCustomer> GetCustomer(string cId) 
     { 
     AppLog.WriteLogD(TAG, "Getting Customer..."); 
     var customerService = new StripeCustomerService(); 
     StripeCustomer stripeCustomer = null; 
     try 
     { 
      Task<StripeCustomer> getCustomerTask = customerService.GetAsync(cId); 
      stripeCustomer = await getCustomerTask; 
      //Console.WriteLine(stripeCustomer.StripeResponse.ResponseJson); 
      AppLog.WriteLogD(TAG, "Customer: " + stripeCustomer.Description, "(" + stripeCustomer.Email + ")"); 
     } 
     catch (StripeException e) 
     { 
     AppLog.WriteLogD(TAG, "Error Type:" + e.StripeError.ErrorType); 
      AppLog.WriteLogD(TAG, "Message:: " + e.StripeError.Message); 
     } 
     return stripeCustomer; 
    } 
+0

Quel 'HttpClient Stack' avez-vous sélectionné? Et sur quel appareil Android vous testez votre application (version Android)? – Robert

Répondre

0

j'ai pu résoudre le problème par:

  1. Aller au projet Options de
  2. Dans l'onglet Général, définissez HttpClient Mise en œuvre à AndroidClient Handler et SSL/TLS application Native TLS 1.2+ qui est l'option par défaut, mais vous étiez passé à TLS 1.0
2

Selon la documentation Android, TLS 1.2 is supported by API Level 16 or higher

Pour l'activer, vous devez:

  1. Définir la version Android minimum API Level 16
  2. Set Implémentation SSL/TLS à 1.2 dans Paramètres du projet -> Paramètres Android -> Implémentation SSL/TLS