2017-10-17 107 views
0

我正在使用Xamarin Android。我正在實施stripe for payment,但是當我點擊stripe API時,會發生以下異常:Stripe不再支持Xamarin Android中使用TLS 1.0進行的API請求?

條帶不再支持使用TLS 1.0創建的API請求。請使用TLS 1.2或更高版本啓動HTTPS連接。

可以做些什麼來消除錯誤?

P.S.在Xamarin IOS中,相同的代碼工作得非常好。

這裏是我的代碼:

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

你選擇了哪個'HttpClient堆棧?在哪個Android設備上測試您的應用(Android版本)? – Robert

回答

0

我能夠解決這個問題:

  1. 轉到項目選項
  2. 在常規選項卡,設置HttpClient的執行情況AndroidClient處理器和SSL/TLS實現到本機TLS 1.2+這是默認選項,但incase你已經切換到TLS 1.0
2

根據Android文檔,TLS 1.2 is supported by API Level 16 or higher

要激活它,你應該:

  1. 設置最小的Android版本,API等級16
  2. 套裝在項目設置 - > Android參數 - > SSL/TLS實施中將SSL/TLS實現設置爲1.2。