Код состояния ответа не указывает на успех: 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);
}

0 ответов

Другие вопросы по тегам