Я обнаружил, что PayPal также находится в процессе изменения своих настроек безопасности.
PayPal предоставляет конечную точку API (https://tlstest.paypal.com/) для тестирования протокола безопасности вашего приложения, чтобы убедиться, что он поддерживает TLS 1.2 иHTTP / 1.1.
Вот как я это проверял:
Приложение MVC
. / Global.asax.cs
...
protected void Application_Start()
{
...
// Add Tls 1.1 and 1.2 to security protocol list (without removing defaults)
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls1.2 | SecurityProtocolType.Tls1.1
}
...
. / Controllers / TestConnection.cs
using System;
using System.IO;
using System.Net;
using System.Web.Http;
namespace MyMVCApplication.Controllers
{
public class TestConnectionController : ApiController
{
public string Get()
{
var url = new Uri("https://tlstest.paypal.com/");
var request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/json";
var response = request.GetResponse().GetResponseStream();
if (response != null)
{
string output;
using (var reader = new StreamReader(response))
{
output = reader.ReadToEnd();
}
return output;
}
return null;
}
}
}
После запуска приложения вы можете подключиться к нему локально(Я сделал это с помощью PowerShell) и получил ответ от конечной точки PayPal.
PowerShell
$url = "http://localhost:60023/api/TestConnection"
Invoke-WebRequest -Uri $url -Headers @{Authorization = "Basic $credentials"} | ConvertFrom-Json
Если вы добавили ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12
в Application_Start () вGlobal.asax.cs, вы получите подтверждающее сообщение PalPal_Connection_OK
Если ваше соединение не поддерживает TLS 1.2 или HTTP / 1.1, вы получите ошибку 400.
Для получения дополнительной информации, пожалуйста, посетите https://www.paypal -notice.com / ru / TLS-1.2-and-HTTP1.1-Upgrade /