API BillManager4 регистрация доменов (пример)
- Получение списка доменов:
https://my.ru-tld.ru/manager/billmgr?func=domain&authinfo=$LOGIN:$PASSWORD&out=json
пример ответа: { "elem": [ { "id": "123", "name": "domain1.ru", "account": "account (name account)", "account_id": "1", "expire": "on", "autoperiod": "-", "domainstatus": "5" }, { "id": "456", "name": "domain2.ru", "account": "account (name account)", "account_id": "3", "expire": "2017-02-17", "autoperiod": "-", "domainstatus": "3" }] } Статусы домена: 0 - Нет данных 1 - Не оплачен 2 - Делегирован (Активен) 3 - Зарегистрирован (Не делегирован) (если expire > текущей даты) / Истек (если expire <= текущей даты) 4 - Удален 5 - Обрабатывается (На регистрации) 6 - Обрабатывается (Трансфер) 7 - Обрабатывается (На продлении)
- Изменение NS:
https://my.ru-tld.ru/manager/billmgr?func=domain.edit&elid=$DOMAIN_ID&ns0=$NS0&ns1=$NS1&ns2=$NS2&ns3=$NS3&changens=on&sok=ok&authinfo=$LOGIN:$PASSWORD&out=json
пример успешного ответа: { "result" : "OK", "text": "\n ", "text": "\n", "ok": "" }
- Регистрация домена:
https://my.ru-tld.ru/manager/billmgr?func=domain.order.4
&contact=$CONTACT_ID
&ctype=person
&owner=$CONTACT_ID
&domain=$DOMAIN_NAME_WITHOUT_TLD
&domainname_0=$DOMAIN_NAME_WITHOUT_TLD
&tld=$TLD
&nslist_0=$NSLIST
&operation=register
&period_0=$PRICE_PERIOD
&price=$PRICE_ID
&pricelist_0=$PRICE_ID
®istrar=$REGISTRAR_ID
&paynow=on
&payfrom=account$ACCOUNT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&countdomain=$COUNTDOMAIN
&out=json
Для регистрации нескольких доменов одним запросом необходимо добавить/изменить следующие поля &countdomain=$COUNTDOMAIN - количество доменов &domain=$DOMAIN_NAME_WITHOUT_TLD - список доменов через пробел без зоны следующие переменные необходимо расписать для каждого домена изменяя номер переменной - N &domainname_N=$DOMAIN_NAME_WITHOUT_TLD &nslist_N=$NSLIST &period_N=$PRICE_PERIOD &pricelist_N=$PRICE_ID
- Проверка на занятость домена:
https://my.ru-tld.ru/mancgi/domaininfo?domain=ru-tld.ru
- Продление домена:
https://my.ru-tld.ru/manager/billmgr?func=domain.renew
&autoperiod=$PRICE_PERIOD
&payfrom=account$ACCOUNT_ID
&paynow=on
&elid=$DOMAIN_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
- Создание и заполнение контакта. (делается в два шага. 1 создаётся контакт. 2 заполняются поля контакта)
- шаг 1 контакт на физическое лицо:
https://my.ru-tld.ru/manager/billmgr?func=contcat.create.1
&ctype=person
&cname=$CONTACT_NAME
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
- Ответ в котором содержится $CONTACT_ID для второго шага
{ "result" : "OK", "domaincontact.id": $CONTACT_ID, "ok": "", "redirect": "location='billmgr?func=contcat.create.2 &authinfo=$LOGIN:$PASSWORD&cname=CONTACT%5FNAME &contactid=$CONTACT_ID&ctype=person';" }
- шаг 2 заполняем поля контакта для физического лица:
https://my.ru-tld.ru/manager/billmgr?func=domaincontact.edit
&ctype=person
&name=$CONTACT_NAME
&firstname_ru=$FIRSTNAME_RU
&middlename_ru=$MIDDLENAME_RU
&lastname_ru=$LASTNAME_RU
&firstname=$FIRSTNAME
&middlename=$MIDDLENAME
&lastname=$LASTNAME
&email=$EMAIL
&phone=$PHONE
&fax=$PHONE
&mobile=$PHONE
&la_country=$ID_COUNTRY
&la_state=$LA_STATE
&la_postcode=$LA_POSTCODE
&la_city=$LA_CITY
&la_address=$LA_ADDRESS
&pa_state=$PA_STATE
&pa_postcode=$PA_POSTCODE
&pa_city=$PA_CITY
&pa_address=$PA_ADDRESS
&pa_addressee=$PA_ADDRESSEE
&inn=$INN
&birthdate=$BIRTHDATE
&passport_series=$PASSPORT_SERIES
&passport_org=$PASSPORT_ORG
&passport_date=$PASSPORT_DATE
&elid=$CONTACT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
- шаг 1 контакт на юридическое лицо:
https://my.ru-tld.ru/manager/billmgr?func=contcat.create.1
&ctype=company
&cname=$CONTACT_NAME
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
- Ответ в котором содержится $CONTACT_ID для второго шага
{ "result" : "OK", "domaincontact.id": $CONTACT_ID, "ok": "", "redirect": "location='billmgr?func=contcat.create.2 &authinfo=$LOGIN:$PASSWORD&cname=CONTACT%5FNAME &contactid=$CONTACT_ID&ctype=company';" }
- шаг 2 заполняем поля контакта для юридического лица:
https://my.ru-tld.ru/manager/billmgr?func=domaincontact.edit
&ctype=company
&name=$CONTACT_NAME
&company_ru=$COMPANY_RU
&company=$COMPANY
&email=$EMAIL
&phone=$PHONE
&fax=$PHONE
&mobile=$PHONE
&la_country=$ID_COUNTRY
&la_state=$LA_STATE
&la_postcode=$LA_POSTCODE
&la_city=$LA_CITY
&la_address=$LA_ADDRESS
&pa_state=$PA_STATE
&pa_postcode=$PA_POSTCODE
&pa_city=$PA_CITY
&pa_address=$PA_ADDRESS
&pa_addressee=$PA_ADDRESSEE
&inn=$INN
&kpp=$KPP
&ogrn=$OGRN
&elid=$CONTACT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
- шаг 1 контакт для международных доменов:
https://my.ru-tld.ru/manager/billmgr?func=contcat.create.1
&ctype=generic
&cname=$CONTACT_NAME
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
- Ответ в котором содержится $CONTACT_ID для второго шага
{ "result" : "OK", "domaincontact.id": $CONTACT_ID, "ok": "", "redirect": "location='billmgr?func=contcat.create.2 &authinfo=$LOGIN:$PASSWORD&cname=CONTACT%5FNAME &contactid=$CONTACT_ID&ctype=generic';" }
- шаг 2 заполняем поля контакта для международных доменов:
https://my.ru-tld.ru/manager/billmgr?func=domaincontact.edit
&ctype=generic
&name=$CONTACT_NAME
&company=$COMPANY
&firstname=$FIRSTNAME
&lastname=$LASTNAME
&email=$EMAIL
&phone=$PHONE
&fax=$PHONE
&la_country=$ID_COUNTRY
&la_state=$LA_STATE
&la_postcode=$LA_POSTCODE
&la_city=$LA_CITY
&la_address=$LA_ADDRESS
&elid=$CONTACT_ID
&sok=ok
&authinfo=$LOGIN:$PASSWORD
&out=json
* Переменные:
–$DOMAIN_NAME_WITHOUT_TLD - доменное имя без зоны.
–$TLD - зона (RU,SU,…)
–$CONTACT_ID - ид контакта для домена, посмотреть можно через API (https://my.ru-tld.ru/manager/billmgr?func=domaincontact&authinfo=$LOGIN:$PASSWORD&out=json)
–$PRICE_PERIOD и $PRICE_ID - период и тарифный план для регистрируемого домена.
Специфично для биллинга, в нашем биллинге для .RU $PRICE_PERIOD=520 $PRICE_ID=565, а для .SU $PRICE_PERIOD=535 $PRICE_ID=594.
Подсмотреть для других тарифов можно через интерфейс биллинга и firebug.
Для удобства мы выгружаем все тарифы и их идентификаторы в json файл, чтобы его можно было использовать в скриптах или модулях.
(https://my.ru-tld.ru/manimg/userdata/json/domainprice_ru.json)
–$REGISTRAR_ID - ид регистратора, специфично для биллинга, у нас для регистратора Ардис $REGISTRAR_ID=13
–$ACCOUNT_ID - ид аккаунта с которого списывать деньги. Посмотреть можно по API:
(https://my.ru-tld.ru/manager/billmgr?func=accountinfo&authinfo=$LOGIN:$PASSWORD&out=json)
–$COUNTDOMAIN - количество регистрируемых доменов, по умолчанию 1.
–$NSLIST - список ns перечисленные через пробел (пример &nslist_0=dns1.ru-tld.ru dns2.ru-tld.ru)
–$CONTACT_NAME - название контакта
–$FIRSTNAME_RU - имя на кириллицей
–$MIDDLENAME_RU - отчество кириллицей
–$LASTNAME_RU - фамилия кириллицей
–$FIRSTNAME - имя латинскими буквами
–$MIDDLENAME - отчество латинскими буквами
–$LASTNAME - фамилия латинскими буквами
–$EMAIL - e-mail
–$PHONE - телефон/ телефон для смс / факс. В формате телефона обязательно должны присутствовать + и 2 пробела. Причём + кодируется в %2B
–$ID_COUNTRY - ид страны. Ид страны можно посмотреть в файле https://my.ru-tld.ru/manimg/userdata/json/country.json (182 - для России)
–$INN - инн
–$BIRTHDATE - дата рождения указывается в следующем формате yyyy-mm-dd (2016-10-21)
–$PASSPORT_SERIES - серия/номер паспорта
–$PASSPORT_ORG - кем выдан паспорт
–$PASSPORT_DATE - дата выдачи паспорта в следующем формате yyyy-mm-dd (2016-10-21)
–$CONTACT_ID - ид контакта. Ид контакта можно узнать в ответе при создании контакта шаг 1 или можно посмотреть через API (https://my.ru-tld.ru/manager/billmgr?func=domaincontact&authinfo=$LOGIN:$PASSWORD&out=json)
–$COMPANY_RU - наименование компании кириллицей
–$COMPANY - наименование компании латинскими буквами
–$KPP - кпп
–$OGRN - огрн
Поля метса жительства
–$LA_STATE - область
–$LA_POSTCODE - индекс
–$LA_CITY - город
–$LA_ADDRESS - улица, дом, квартира и т.д.
Почтовый адрес
–$PA_STATE - область
–$PA_POSTCODE - индекс
–$PA_CITY - город
–$PA_ADDRESS - улица, дом, квартира и т.д.
–$PA_ADDRESSEE - кому адресовано
В виду отсутствия целевой документации по вызовами API биллинга , самый простой способ их узнать - это воспользоваться браузером с консолью типа firebug или аналогом и подсматривать запросы, которые отправляются биллингу через веб интерфейс. Веб интерфейс биллинга по сути построен на API, для того чтобы получать ответы от BILLmanager в xml или json вместо HTML, все что требуется это добавить параметр out=json (или xml)
Статусы доменов:
1 | Не оплачен |
2 | Делегирован |
3 | Зарегистрирован (Не делегирован) (если expire > текущей даты) / Истек (если expire ⇐ текущей даты) |
4 | Удален |
5 | Обрабатывается (На регистрации) |
6 | Обрабатывается (Трансфер) |
7 | Обрабатывается (На продлении) |