Stripe不再支持Xamarin Android中使用TLS 1.0进行的API请求?

Stripe不再支持Xamarin Android中使用TLS 1.0进行的API请求?

问题描述:

我正在使用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

我能够解决这个问题:

  1. 转到项目选项
  2. 在常规选项卡,设置HttpClient的执行情况AndroidClient处理器和SSL/TLS实现到本机TLS 1.2+这是默认选项,但incase你已经切换到TLS 1.0

根据Android文档,TLS 1.2 is supported by API Level 16 or higher

要激活它,你应该:

  1. 设置最小的Android版本,API等级16
  2. 套装在项目设置 - > Android参数 - > SSL/TLS实施中将SSL/TLS实现设置为1.2。