Код состояния ответа не указывает на успех: 417 (ожидание не выполнено)
Я пытаюсь получить "торговую сессию" от Apple Pay Sandbox, но мой код всегда возвращает ошибку
"417 (Ожидание не удалось)".
Я пробовал разные способы с WebRequestHandler, httpclient, разные заголовки, но результат тот же.
static void Main(string[] args)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.Expect100Continue = false;
using (var httpClient = GetSecureHttpClient())
{
var jsonData = "{\"merchantIdentifier\" : \"merchant.com.domain.www\", \"domainName\" : \"www.domain.com\", \"displayName\" : \"MySite\" }";
using (var content = new StringContent(jsonData, Encoding.UTF8, "application/json"))
{
try
{
httpClient.DefaultRequestHeaders.ExpectContinue = false;
using (var response = httpClient.PostAsync("https://apple-pay-gateway-cert.apple.com/paymentservices/startSession", content).Result)
{
response.EnsureSuccessStatusCode();
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
}
}
catch (Exception ex) { Console.WriteLine("Apple Pay Gateway error: " + ex.ToString()); }
}
}
}
public static HttpClient GetSecureHttpClient()
{
var handler = new WebRequestHandler();
handler.ClientCertificates.Add(new X509Certificate2(("C:\\merchantid_certificate.p12"), "", X509KeyStorageFlags.MachineKeySet));
return new HttpClient(handler, true);
}