Ошибка API при использовании учетной записи Sandbox

Я пытаюсь протестировать Web API, используя пример кода из документации. Мой код запускает приложение, но выдает ошибку в приложении:

Ошибка API. К сожалению, нам не удалось обработать входящий запрос. Повторите попытку или обратитесь в службу поддержки.

Мой URL-адрес, который я отправляю после его кодирования, выглядит следующим образом:

square-commerce-v1://payment/create?data=%7B%22amount_money%22%3A%7B%22amount%22%3A%22500%22%2C%22currency_code%22%3A%22USD%22%7D%2C%22callback_url%22%3A%22https%3A%2F%2Fjaydien.ezservicetrax.com%2F%22%2C%22client_id%22%3A%22sandbox-sq0idp-CHLAPYt9s1L594ZZZysDSQ%22%2C%22version%22%3A%221.3%22%2C%22notes%22%3A%22notes%20for%20the%20transaction%22%2C%22options%22%3A%7B%22supported_tender_types%22%3A%5B%22CREDIT_CARD%22%2C%22CASH%22%2C%22OTHER%22%2C%22SQUARE_GIFT_CARD%22%2C%22CARD_ON_FILE%22%5D%7D%7D

Вот мой код:

    <script>
  var dataParameter = {
    "amount_money": {
      "amount" : "500",
      "currency_code" : "USD"
    },
    "callback_url" : "https://jaydien.ezservicetrax.com/", // Replace this value with your application's callback URL
    "client_id" : "sandbox-sq0idp-CHLAPYt9s1L594ZZZysDSQ", // Replace this value with your application's ID
    "version": "1.3",
    "notes": "notes for the transaction",
    "options" : {
      "supported_tender_types" : ["CREDIT_CARD","CASH","OTHER","SQUARE_GIFT_CARD","CARD_ON_FILE"]
    }
  };
  window.location = "square-commerce-v1://payment/create?data=" + encodeURIComponent(JSON.stringify(dataParameter));
</script>

Что я делаю не так?


person Brian Fleishman    schedule 02.12.2017    source источник


Ответы (1)


Проблема здесь в том, что вы пытаетесь использовать идентификатор приложения/клиента для песочницы. В настоящее время мы не поддерживаем песочницу для API точек продаж, но вы можете использовать транзакции с наличными, чтобы получить тот же эффект. Однако это сообщение об ошибке можно было бы улучшить, поэтому я подниму этот вопрос перед командой.

Чтобы исправить ошибку, замените идентификатор клиента/приложения песочницы на фактический: sq0idp-CHLAPYt9s1L594ZZZysDSQ

person tristansokol    schedule 03.12.2017
comment
Спасибо. После некоторых проб и ошибок я заметил, что мой обычный идентификатор будет работать, поэтому я тестировал его. Отличная идея насчет денег, которые помогут с тестированием. Я уже пару часов борюсь с проблемой суммы в долларах. 500 долларов США в моем примере обрабатываются как 5,00 в приложении, 50 000 будут преобразованы в 500? Любая идея о том, почему это было бы - person Brian Fleishman; 03.12.2017
comment
Да, в документации валюты и суммы указаны как наименьшая базовая единица. Для долларов США это центы, для Японии это иены. Таким образом, все ваши цены будут взиматься в центах. - person tristansokol; 03.12.2017
comment
Итак, мне нужно добавить два нуля к каждому номеру суммы в долларах? - person Brian Fleishman; 03.12.2017
comment
Не совсем так, лучший способ подумать об этом — умножить ваши значения на 100, поскольку в одном долларе 100 центов. Таким образом, 5 долларов будут равняться 500, а 2,59 доллара — 259. - person tristansokol; 03.12.2017