Получить данные из объекта в браузере - PullRequest
0 голосов
/ 24 января 2020

Как я могу получить объект из моего браузера или получить данные, хранящиеся в объекте, из моего браузера?

  1. Пользователь нажимает кнопку отправки после заполнения формы с неверным номером кредитной карты ( сценарий, который я тестирую), который запускает функцию jQuery SubmitAPI() (код ниже).
  2. Google Chrome консоль отображает ошибку 400 Bad Request (поскольку номер кредитной карты неверен), а также Ответ API, содержащий объект с отклоненными данными кредитной карты (ответ ниже)
  3. Мне специально нужно получить "response_type":"D","response_code":"U20","response_desc":"INVALID CREDIT CARD NUMBER", потому что я хочу показать это сообщение об ошибке пользователю. Как я могу сделать это за jQuery?
  4. Я часами пытался это выяснить. Я использую response.response.response_type, чтобы получить тип ответа при успешной транзакции (утвержденная кредитная карта). Однако, с неправильным номером кредитной карты, эта же попытка приводит к "неопределенному". Вместо этого я просто хочу получить данные из моего браузера Google Chrome, которому удалось получить ответ с кодом ответа.

ЧАСТЬ 1: jQuery код (непосредственно из документации API - за исключением того, что я изменил кредитную карту на неправильный номер)

  function SubmitAPI() {
    var settings = {
        "url": 
    "https://sandbox.forte.net/api/v3/organizations/org_ID/locations/loc_ID/transactions",
        "method": "POST",
        "headers": {
            "X-Forte-Auth-Organization-Id": "org_ID",
            "Authorization": "ID",
            "Content-Type": "application/json"
        },
        "data": JSON.stringify({ "action": "sale", "authorization_amount": 102.45, "subtotal_amount": 99.95, "billing_address": { "first_name": "Jennifer", "last_name": "McFly" }, "card": { "card_type": "visa", "name_on_card": "Jennifer McFly", "account_number": "41111sdf11111111", "expire_month": "12", "expire_year": "2017", "card_verification_value": "123" } }),
    };

    $.ajax(settings).always(function (response) {
        console.log(response);
    });
}

ЧАСТЬ 2: Ответ консоли:

400 (Bad Request)

ЧАСТЬ 3: Объект ответа в браузере:

{"location_id":"loc_241789","action":"sale","authorization_amount":102.45,"entered_by":"59ae172b3bd78bed493ecd5892975764","billing_address":{"first_name":"Jennifer","last_name":"McFly"},"card":{"name_on_card":"Jennifer McFly","last_4_account_number":"1111","masked_account_number":"****1111","expire_month":12,"expire_year":2017,"card_type":"visa"},"response":{"environment":"sandbox","response_type":"D","response_code":"U20","response_desc":"INVALID CREDIT CARD NUMBER"}}

1 Ответ

3 голосов
/ 24 января 2020

Используя обработчик ошибок для вызова Ajax, удалось получить сообщение об ошибке без проблем.

var settings = {
  "url": "https://sandbox.forte.net/api/v3/organizations/org_381529/locations/loc_241789/transactions",
  "method": "POST",
  "headers": {
    "X-Forte-Auth-Organization-Id": "org_381529",
    "Authorization": "Basic NTlhZTE3MmIzYmQ3OGJlZDQ5M2VjZDU4OTI5NzU3NjQ6ZWUwZTZiZDA4ZThlMWNhNWQ3MzUyNGU0ZWU5ZDFjNTg=",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "action": "sale",
    "authorization_amount": 102.45,
    "subtotal_amount": 99.95,
    "billing_address": {
      "first_name": "Jennifer",
      "last_name": "McFly"
    },
    "card": {
      "card_type": "visa",
      "name_on_card": "Jennifer McFly",
      "account_number": "41111sdf11111111",
      "expire_month": "12",
      "expire_year": "2017",
      "card_verification_value": "123"
    }
  }),
};

$.ajax(settings).error(function(xhr) {
  console.log("Error", xhr.responseJSON.response.response_desc);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...