Trying to implement Apple Pay into a asp.net web site (Framework 8). When we make a call to "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession" I am getting the following error.

"The client and server cannot communicate, because they do not possess a common algorithm."

[System.Web.Services.WebMethod()] public static string GenerateSession(string validationURL) { validationURL = "https://apple-pay-gateway-cert.apple.com/paymentservices/startSession"; string keyStoreFile = "C:\ApplePay\merchant_id.cer"; X509Certificate2 clientCertificate = new X509Certificate2(keyStoreFile); X509Certificate2Collection clientCertificates = new X509Certificate2Collection(clientCertificate); ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(validationURL); request.Method = "POST"; request.ContentType = "application/json"; request.Accept = "application/json"; request.ClientCertificates = clientCertificates; using (StreamWriter streamWriter = new StreamWriter(request.GetRequestStream())) { dynamic credentials = new JObject(); credentials.merchantIdentifier = "merchant.abc.abcd.sandbox"; credentials.domainName = "abc-xyz.abcd.edu"; credentials.displayName = "Company"; string json = JsonConvert.SerializeObject(credentials); streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } StringBuilder responseStringBuilder = new StringBuilder(); try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (StreamReader responseStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string line; while ((line = responseStreamReader.ReadLine()) != null) { responseStringBuilder.Append(line); } } return responseStringBuilder.ToString(); } catch (WebException ex) { using (WebResponse errorResponse = ex.Response) using (StreamReader errorStreamReader = new StreamReader(errorResponse.GetResponseStream())) { string errorMessage = errorStreamReader.ReadToEnd(); return errorMessage; } } }

Any help would be greatly appreciated.

0

There are 0 best solutions below