Грешки във формата на заявката за NiceNIC API v2: Крайна точка, заглавки, JSON и параметри
Ако вашата заявка към NiceNIC Reseller API v2 достигне API-то, но не работи както се очаква, проблемът може да не е удостоверяването. Може да има проблем с формата на заявката. Това ръководство помага на реселъри на домейни, хостинг доставчици, разработчици, агенции и потребители на WHMCS да отстранят често срещани проблеми с формата на заявките към NiceNIC API v2, включително грешки в крайната точка, липсващи заглавки, неправилен Content-Тип, невалиден JSON, липсващи параметри, невалиден формат на домейна, изисквания специфични за TLD и проблеми с конфигурацията на модула WHMCS.
Грешките във формата на заявките към NiceNIC API v2 обикновено се причиняват от неправилна крайна точка, липсващи или неправилни заглавки, грешен Content-Тип, невалиден JSON, липсващи задължителни параметри, невалиден формат на домейна, несъответствие между API действие и параметри, специфични изисквания на регистъра за TLD или настройки на модула WHMCS, които не съответстват на API заявката.
Започнете със съпоставяне на крайната точка на API, необходимите заглавки, формата на JSON, задължителните параметри и точното API действие, което използвате. Ако използвате WHMCS, също проверете настройките на модула WHMCS, API идентификационните данни, тестовия режим, PHP/cURL средата и конфигурацията за изходящи заявки от сървъра.
Какво обикновено означава този тип API грешка Проблем във формата на заявката означава, че вашата API заявка може да достига крайна точка на NiceNIC API, но заявката не може да бъде обработена правилно, защото нещо в структурата на заявката, заглавките, тялото, параметрите, данните за домейна или конфигурацията на модула не е валидно за действието, което се опитвате да извършите.
Този тип проблем е различен от чиста грешка в удостоверяването. Грешките при удостоверяване обикновено включват парола за API, заглавка Authилиization, достъп на реселъра или настройки за IP бял списък. Грешките във формата на заявката обикновено се отнасят до начина, по който е изградена заявката след като достъпът вече е конфигуриран.
Чести причини за грешки във формата на заявките включват:
Крайна точка на API е неправилна.
Липсват или са неправилни задължителните заглавки.
Content-Тип не е настроен на application/json.
Тялото на заявката не е валиден JSON.
Липсват задължителни параметри.
Форматът на домейна е невалиден.
API действието и параметрите не съвпадат.
TLD има специални изисквания от регистъра.
Балансът по акаунта, статуса на домейна или правилата на регистъра пречат на заявеното действие.
Настройките на модула WHMCS не съответстват на API заявката.
Причина 1: Крайната точка на API е неправилна Заявките към NiceNIC API v2 трябва да се изпращат до документираната крайна точка на API v2: https://api.NiceNIC/v2/ Ако вашият код използва стара крайна точка, грешно изписана крайна точка, грешен протокол, липсващ път или различна версия на API, заявката може да се провали преди да бъде обработено желаното действие. Как да го коригирате
Потвърдете, че вашата заявка се изпраща към https://api.NiceNIC/v2/.
Проверете за печатни грешки в домейна, протокола или пътя.
Потвърдете, че вашата продукционна среда не използва все още стара крайна точка на API.
Проверете дали вашият WHMCS модул, персонализиран модул на регистратор или бекенд конфигурация съдържа твърдо кодиран остарял URL.
Прегледайте логовете на сървъра, за да потвърдите точния URL, заявен от вашето приложение.
Причина 2: Липсващи или неправилни задължителни заглавки Заявките към NiceNIC API v2 изискват правилните HTTP заглавки. Ако заглавката Authилиization, заглавката Host или заглавката Content-Тип липсват, са променени или блокирани, заявката може да се провали. Документираният формат на заглавката е: Host: api.NiceNIC Authилиization: username:api_secret Content-Тип: application/json
Как да го коригирате
Потвърдете, че вашата заявка включва заглавката Authилиization.
Потвърдете, че стойността на Authилиization следва документирания формат username:api_secret.
Потвърдете, че API секрета е вашата парола за API, а не паролата за вход в акаунта на NiceNIC.
Проверете, че Content-Тип е точно application/json.
Потвърдете, че вашият HTTP клиент, фреймуърк, прокси, защитна стена или модул WHMCS не премахват или пренаписват заглавките.
Премахнете ненужни интервали, прекъсвания на редове или скрити символи от стойностите на заглавките.
Причина 3: Content-Тип не е application/json NiceNIC API v2 очаква формат на заявката в JSON. Ако вашият код изпраща данни като fилиm-data, text/plain, x-www-fилиm-urlencoded или друг формат, API може да не прочете заявката правилно. Как да го коригирате
Настройте Content-Тип на application/json.
Потвърдете, че вашият HTTP клиент действително изпраща JSON, а не просто означава заявката като JSON.
Проверете дали тялото на заявката се преобразува от вашия фреймуърк преди изпращане.
Ако използвате PHP, потвърдете, че JSON тялото е правилно кодирано преди изпращане на заявката.
Ако използвате WHMCS, потвърдете, че конфигурацията на модула съответства на изискванията за интеграция на NiceNIC.
Причина 4: Тялото на заявката не е валиден JSON Заявката може да се провали, ако тялото не е валиден JSON. Това често се случва, когато кодът изгражда тялото ръчно, вместо да използва JSON енкодер. Чести проблеми с JSON включват:
Липсващи кавички
Излишни запетаи
Неправилно вложени обекти или масиви
Неспазени символи
Невалидни UTF-8 символи
Изпращане на празно тяло за действие, което изисква параметри
Как да го коригирате
Проверете валидността на JSON тялото преди да изпратите заявката.
Използвайте JSON енкодера на вашия програмен език, вместо да изграждате JSON връзки ръчно.
Потвърдете, че наборът от символи е UTF-8.
Логвайте тялото на заявката по време на тестване, но премахнете чувствителните стойности преди споделяне на логове.
Тествайте с просто действие с нисък риск преди да тествате платени действия с домейни.
Причина 5: Липсват задължителни параметри Различните API действия изискват различни параметри. Заявка, която работи за едно действие, не винаги може да бъде използвана за друго действие. Например проверка на наличието на домейн, регистрация на домейн, подновяване на домейн, трансфер на домейн, обновяване на nameserver-и, обновяване на контакти, управление на DNS записи и проверка на баланс по акаунта може да изискват различни полета. Как да го коригирате
Отворете точния раздел от документацията на API за действието, което използвате.
Съпоставете тялото на заявката с изискваните параметри.
Не предполагавайте, че регистрацията на домейн, подновяването, трансферът и обновяването на DNS използват един и същ набор от параметри.
Потвърдете дали TLD изисква допълнителни полета или разширени атрибути.
Потвърдете дали действието изисква контактна информация, nameserver-и, auth код, година, DNS данни или други полета специфични за действието.
Причина 6: Форматът на домейна е невалиден Много домейн API заявки изискват само името на домейна, а не пълен URL адрес. Невалидни примери могат да включват:
Валидният формат обикновено означава само името на домейна, например: example.com Как да го коригирате
Премахнете http:// и https:// от стойностите на домейна.
Премахнете пътища, низове за заявки, фрагменти и последващи интервали.
Нормализирайте горен и долен регистър в приложението си.
Проверете формата на домейна преди изпращане на API заявката.
За IDN или специални символи потвърдете как домейнът трябва да бъде кодиран преди изпращане на заявката.
Причина 7: API действието и параметрите не съвпадат Действието на API трябва да съвпада с параметрите, които се изпращат. Ако извикате едно действие, но изпратите параметри, предназначени за друго действие, заявката може да се провали или да върне неочакван отговор. Примери за несъответстваща логика на заявката включват:
Изпращане на параметри за регистрация към действие за проверка на наличност на домейн
Изпращане на параметри за трансфер без необходимия код за разрешение за трансфер, когато е нужен
Изпращане на DNS записни полета към действие за обновяване на nameserver
Изпращане на полета за обновяване на контакт към действие за подновяване
Използване на действие на модул WHMCS, което не съответства на тестваната операция
Как да го коригирате
Проверете името на действието или API рутера, който използвате.
Прегледайте точния раздел от документацията за това действие.
Съпоставете изискваните параметри с тялото на заявката.
Тествайте по едно действие наведнъж.
Не комбинирайте логиката за проверка на наличност, регистрация, обновяване на DNS и подновяване в един непроверен шаблон на заявка.
Причина 8: TLD има специални изисквания от регистъра Някои разширения на домейни имат специални регистърни правила. Технически валидна API заявка може да се провали, ако регистърът изисква допълнителна информация, специални полета за контакти, документи, локално присъствие или ръчен преглед. Това е особено важно за ccTLD, ограничени TLD и разширения със специални правила за регистрация или подновяване. Как да го коригирате
Проверете дали разширението на домейна има специални изисквания за регистрация.
Потвърдете дали са необходими локално присъствие, документи, разширени атрибути или специални данни за контакти.
Проверете дали действието с домейна се поддържа за този TLD чрез автоматизация.
Не предполагавайте, че всеки TLD се държи като .com.
Ако API отговорът посочва проблем, свързан с регистъра или разширението, прегледайте правилата на TLD преди да опитвате многократно.
Причина 9: Настройките на модула WHMCS не съвпадат с API заявката Ако използвате WHMCS, заявката може да бъде генерирана от модула на WHMCS, а не от вашия персонализиран код. В такъв случай проблемът може да е от конфигурацията на модула, API идентификационните данни, тестовия режим, поддръжката на PHP/cURL, поддръжката на SSL/TLS или средата на сървъра WHMCS.
Чести проблеми с заявки свързани с WHMCS включват:
Модулът на WHMCS има неправилни API идентификационни данни.
Паролата за API бе променена в NiceNIC, но не е обновена в WHMCS.
Тестовият режим е включен или изключен неправилно.
Сървърът на WHMCS не отговаря на изискванията за PHP или cURL.
WHMCS изпраща заявки от друг сървър, отколкото се очаква.
Цените на домейни или настройки за TLD в WHMCS не съвпадат с действието с домейна.
Автоматизацията на WHMCS изпълнява обновяване, трансфер или регистрация със непълни клиентски данни.
Как да го коригирате
Отворете настройките на модула NiceNIC registrar в WHMCS.
Потвърдете API потребителското име и API секрета.
Проверете дали тестовият режим е включен само когато искате да тествате.
Потвърдете, че сървърът на WHMCS поддържа необходимата PHP и cURL среда.
Потвърдете, че поддръжката на SSL/TLS е налична за сигурна API комуникация.
Тествайте наличността на домейни преди да активирате реални регистрации, подновявания или трансферни работни потоци.
Прегледайте логовете на модула WHMCS и отговорите на API на NiceNIC заедно.
Какво може и какво не може да направи NiceNIC NiceNIC може да помогне с преглед на достъпа до API от страна на регистратора, документацията на API, статуса на акаунта на реселъра, настройките на API, използването на крайната точка и детайлите от отговорите на API, свързани с NiceNIC Реселър API v2. Въпреки това, някои проблеми могат да зависят от вашата собствена имплементация, версия на WHMCS, конфигурация на модула, PHP/cURL среда, защитна стена, прокси, изходящ IP адрес на сървъра, генериране на JSON, параметри на заявката, статус на домейна, правила за TLD, политика на регистъра или качество на клиентските данни. Поради тази причина вашата интеграция винаги трябва да запазва отговора на API и да предоставя достатъчно контекст за заявката при отстраняване на проблеми. Съобщение като „API-то не работи“ обикновено не е достатъчно, за да се определи дали проблемът е в удостоверяването, формата на заявката, правилата на регистъра, конфигурацията на WHMCS или средата на сървъра.
Често задавани въпроси Защо заявката ми за домейн се проваля дори когато JSON е валиден? Действието може да се провали, ако липсват задължителни параметри, форматът на домейна е невалиден, балансът по акаунта е недостатъчен, статусът на домейна не позволява заявеното действие или TLD има специални изисквания от регистъра.
Мога ли да изпратя пълен URL вместо име на домейн? За действия с домейн обикновено трябва да изпращате самото име на домейна, например example.com, а не пълен URL като https://example.com/page.
Защо WHMCS се проваля, дори когато моят персонализиран тест на API работи? WHMCS може да използва различни настройки на модула, тестов режим, сървърна среда, PHP/cURL настройки, изходящ IP или съхранени API идентификационни данни. Проверете конфигурацията и логовете на регистратора на WHMCS отделно.
Какво трябва да тествам първо след корекция на формата на заявката? Започнете с действие с нисък риск като проверка на наличност на домейн, проверка на баланс, търсене на цени или извличане на списък с домейни преди да активирате реални регистрации, подновявания, трансфери или обновявания на DNS.
Създайте по-чиста API интеграция с NiceNIC След като вашата крайна точка, заглавки, Content-Тип, JSON тяло, задължителни параметри, формат на домейна, правила за TLD и настройките на WHMCS са правилни, можете да продължите със създаването на по-надежден реселър работен процес с NiceNIC Reseller API v2.