Я пытаюсь настроить вызов Stripe через C# и их API. Я использую следующий код, чтобы добавить новую карту через пост в их API и использовать ответ JSON, чтобы определить следующий шагКак проигнорировать/пропустить/обработать ошибку HttpWebResponse и вернуть JSON в мой код?
(я пытался вырезать все ненужное)
public static string stripeAPIcall(string customerId, string parameters, string stripeApiKey) {
using (var stripeAPI = new System.Net.WebClient())
{
try
{
// set credentials
stripeAPI.Credentials = new System.Net.NetworkCredential(stripeApiKey, "");
//Set Headers
stripeAPI.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)");
stripeAPI.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
return stripeAPI.UploadString("https://api.stripe.com/v1/customers/" + customerId + "/cards, parameters);
}
catch (WebException ex)
{
return "error";
}
}
}
И это отлично работает, чтобы создать карту, когда есть успех. Однако, если есть ошибка, например
I used Stripes "card_declined" test card number 4000000000000002
В результате 402 Ошибка со следующей структурой JSON
{
"error": {
"message": "Your card was declined.",
"type": "card_error",
"code": "card_declined"
}
}
Который взрывает мой C# код, потому что ошибка 402 возвращается
System.Net.WebException: The remote server returned an error: (402) Payment Required. at System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request) at System.Net.WebClient.UploadString(Uri address, String method, String data) at System.Net.WebClient.UploadString(String address, String data) at ASP.StripeGlobalHelpers.stripeAPIcall(String url, String parameters, String stripeApiKey, Boolean post)
Итак, как мне проигнорировать/пропустить/обработать ошибку 402 и вернуть JSON в мое приложение? Я хочу сказать пользователю «Ваша карта была отклонена» или любое другое сообщение об ошибке, которое я могу получить из полосы.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Замечательный Микко! :) Это отлично работает. Огромное спасибо. –