422 ошибка при зарядке карты nonce с помощью Square Connect

I am asp.net разработчик. Я использовал Square Connect Api для оплаты транзакции. Ниже приведен мой код для зарядки карты nonce. Но я получаю ошибку (неподдерживаемый тип носителя » application/x-www-form-urlencoded», разрешены только [application / json]) в ответ. Решения ценятся.

Квадрат Соединяет Запрос:::

       RestSharp.RestClient Client = new RestSharp.RestClient("https://connect.squareup.com");
        RestSharp.RestRequest Request = new RestSharp.RestRequest("v2/locations/"+LocationId+"/transactions", RestSharp.Method.POST);
        Request.RequestFormat = RestSharp.DataFormat.Json;
        Request.AddHeader("Authorization", "Bearer " + access_token);
        Request.AddHeader("Accept", "application/json");
        Request.AddHeader("Content-Type", "application/json");

        Request.AddParameter("name", "test");
        Request.AddParameter("card_nonce", card_nonce);
        Request.AddParameter("amount_money", "{"amount":100,"currency":"USD"}");
        //Request.AddParameter("idempotency_key", Guid.NewGuid().ToString());

        RestSharp.IRestResponse response = Client.Execute(Request);
        System.Net.HttpStatusCode getresponse = response.StatusCode;

Ответ От Квадрата Вверх:
{«errors»: [{«category»: «INVALID_REQUEST_ERROR», «code»: «BAD_REQUEST», «detail»: «неподдерживаемый тип носителя «application / x-www-form-urlencoded», разрешены только [application / json] «}]}

1 ответ

  1. (Справедливое предупреждение, что у меня нет опыта использования RestSharp.)

    Создается впечатление, что при создании запроса с телом (например, POST или PUT) необходимо установить тип контента запроса с помощью AddParameterметода, а не с помощью AddHeaderметода.

    Как показывает этот ответ, когда запрос имеет тело, вы звоните AddParameterтолько один раз:

    Request.AddParameter("application/json", strJSONContent, ParameterType.RequestBody);
    

    Первый параметр указывает тип контента, второй параметр-всю строку JSON, которую вы хотите опубликовать, а третий параметр указывает, что строка JSON должна использоваться в качестве тела запроса.

    Это означает, что перед вызовом этого метода необходимо создать строку JSON, которую необходимо опубликовать.