icekristal/laravel-dadata

Laravel SDK 用于与 DaData.RU 服务 API 交互

安装: 25

依赖者: 0

建议者: 0

安全: 0

星级: 0

关注者: 0

分支: 33

类型:laravel-package

dev-master 2024-03-07 08:21 UTC

This package is auto-updated.

Last update: 2024-09-07 09:19:23 UTC


README

Build Status Latest Stable Version Total Downloads License

DaData Laravel 包 - PHP SDK,用于与 [MoveMoveApp] 的 DaData.ru API 交互的 Laravel 包 Laravel

要求

  • PHP 版本:7.3, 7.4, 8.0, 8.1
  • Laravel 版本:7.x, 8.x, 9.x
  • Guzzle 版本:7.0, 7.2

安装

您可以通过 composer 安装此包

composer require icekristal/laravel-dadata

如果您使用的是 Laravel 5.5 以下的版本,则需要手动注册 DaDataServiceProvider,通过在 config/app.phpproviders 数组中添加

'providers' => [
  // ...
  Icekristal\DaData\DaDataServiceProvider::class,
],

发布配置文件。执行 artisan 命令

php artisan vendor:publish --provider="Icekristal\DaData\DaDataServiceProvider"

项目配置通过项目的 .env 文件进行。您需要指定三个参数

  • DADATA_TOKEN - 与 DaData API 交互的 token
  • DADATA_SECRET - 与 DaData API 交互的 secret
  • DADATA_TIMEOUT - DaData API 服务最大响应等待时间(秒)。默认值为 10 秒。

.env 示例

DADATA_TOKEN="c32c33ebaf450067d64516fbe041d2a8a6d4211f"
DADATA_SECRET="adccd63ac28701442e26b7eef57eb5eb0a72143e"
DADATA_TIMEOUT=10

方法

地址处理

地址标准化

DaDataAddress::standardization(string $address) - 根据КЛАДР/ФИАС将地址字符串拆分为单独的字段(地区、城市、街道、房屋、公寓)。确定邮政编码、时区、最近的地铁站、坐标、公寓价格和其他地址信息。

主要案例

  • 将地址拆分为单独的字段(地区、城市、街道、房屋、公寓)。
  • 根据俄罗斯邮政数据计算正确的索引。
  • 确定坐标。
  • 显示城市辖区和区,最近的地铁站,面积和公寓价格。
  • 获取 КЛАДР、ФИАС、ОКАТО、ОКТМО 和 ИФНС 代码。

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData standardization example
    *
    * @return void
    */
    public function standardizationExample() : void
    {
        $dadata = DaDataAddress::standardization('мск сухонска 11/-89');

        dd($dadata);    
    }

}

响应示例

array:1 [
  0 => array:80 [
    "source" => "мск сухонска 11/-89"
    "result" => "г Москва, ул Сухонская, д 11, кв 89"
    "postal_code" => "127642"
    "country" => "Россия"
    "country_iso_code" => "RU"
    "federal_district" => "Центральный"
    "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
    "region_kladr_id" => "7700000000000"
    "region_iso_code" => "RU-MOW"
    "region_with_type" => "г Москва"
    "region_type" => "г"
    "region_type_full" => "город"
    "region" => "Москва"
    "area_fias_id" => null
    "area_kladr_id" => null
    "area_with_type" => null
    "area_type" => null
    "area_type_full" => null
    "area" => null
    "city_fias_id" => null
    "city_kladr_id" => null
    "city_with_type" => null
    "city_type" => null
    "city_type_full" => null
    "city" => null
    "city_area" => "Северо-восточный"
    "city_district_fias_id" => null
    "city_district_kladr_id" => null
    "city_district_with_type" => "р-н Северное Медведково"
    "city_district_type" => "р-н"
    "city_district_type_full" => "район"
    "city_district" => "Северное Медведково"
    "settlement_fias_id" => null
    "settlement_kladr_id" => null
    "settlement_with_type" => null
    "settlement_type" => null
    "settlement_type_full" => null
    "settlement" => null
    "street_fias_id" => "95dbf7fb-0dd4-4a04-8100-4f6c847564b5"
    "street_kladr_id" => "77000000000283600"
    "street_with_type" => "ул Сухонская"
    "street_type" => "ул"
    "street_type_full" => "улица"
    "street" => "Сухонская"
    "house_fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
    "house_kladr_id" => "7700000000028360004"
    "house_type" => "д"
    "house_type_full" => "дом"
    "house" => "11"
    "block_type" => null
    "block_type_full" => null
    "block" => null
    "flat_type" => "кв"
    "flat_type_full" => "квартира"
    "flat" => "89"
    "flat_area" => "34.6"
    "square_meter_price" => "198113"
    "flat_price" => "6854710"
    "postal_box" => null
    "fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
    "fias_code" => "77000000000000028360004"
    "fias_level" => "8"
    "fias_actuality_state" => "0"
    "kladr_id" => "7700000000028360004"
    "capital_marker" => "0"
    "okato" => "45280583000"
    "oktmo" => "45362000"
    "tax_office" => "7715"
    "tax_office_legal" => "7715"
    "timezone" => "UTC+3"
    "geo_lat" => "55.8782557"
    "geo_lon" => "37.65372"
    "beltway_hit" => "IN_MKAD"
    "beltway_distance" => null
    "qc_geo" => 0
    "qc_complete" => 0
    "qc_house" => 2
    "qc" => 0
    "unparsed_parts" => null
    "metro" => array:3 [
      0 => array:3 [
        "distance" => 1.1
        "line" => "Калужско-Рижская"
        "name" => "Бабушкинская"
      ]
      1 => array:3 [
        "distance" => 1.2
        "line" => "Калужско-Рижская"
        "name" => "Медведково"
      ]
      2 => array:3 [
        "distance" => 2.5
        "line" => "Калужско-Рижская"
        "name" => "Свиблово"
      ]
    ]
  ]
]

响应描述

莫斯科有 97% 的房屋有坐标,圣彼得堡有 91%,其他百万城市有 69%,俄罗斯其他地区有 47%。俄罗斯 70% 的公寓有面积和价格信息。

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData standardization example
    *
    * @return void
    */
    public function standardizationExample() : void
    {
        try {
            $dadata = DaDataAddress::standardization('мск сухонска 11/-89');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

地址提示

DaDataAddress::prompt(string $query, int $count, int $language, array $locations, array $locations_geo, array $locations_boost, array $from_bound, array $to_bound) 根据地址的任何部分进行搜索,从地区到房屋(“tverskaya nizhnii 12” → “Nizhegorodskaya oblast, gorod Nizhegorod, ulitsa Tverskaya, dom 12”)。也可以按邮政编码搜索(“105568” → “gorod Moskva, ulitsa Magnitogorskaya”)。

主要案例

  • 它适用于世界所有国家(在俄罗斯到房屋,在其他国家到城市)。它可以在俄语(“Samara, prospekt Metallurgov”)和英语(“Russia, gorod Samara, prospekt Metallurgov”)中搜索并显示结果。
  • 根据历史名称(斯维尔德洛夫斯克 → 舍尔杰斯克)和同义词(彼得堡 → 圣彼得堡)查找有效地址。
  • 按部分匹配搜索(“莫斯科湿地” → “г.莫斯科,博洛特纳亚纳亚街”),但仅限于查询字符串的最后一词(“莫斯科博洛特”无法找到)。
  • 纠正拼写错误(“萨马拉航空”)和错误键盘布局的查询(“vjcrdf” → “莫斯科”)。- 将选定的地址分解为颗粒度部分(从地区到公寓)。- 支持对地址的各个部分提供颗粒度提示(地区、城市、街道、住宅)。- 在特定地区、区、城市和居民点提示地址。理解名称(“彼得戈夫”),КЛАДР代码(“7800000800000”)和ФИАС(“8f238984-812b-4bb1-850b-49749fb5c56d”)。- 考虑您所在的位置(与IP地址的城市定位方法结合)。

请注意,如果您

  • 希望自动处理数据库或文件中的地址,而不需要人工参与。
  • 将字符串转换为转写,例如 moskva suhonskaja 11 → 127642г Москва, ул Сухонская, д 11

提示不适用于自动处理地址。它们提供选项,但不保证正确。因此,最终决定应由人做出。

用于自动处理和转写的函数是 DaDataAddress::standardization(string $address)

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData prompt example
    *
    * @return void
    */
    public function promptExample() : void
    {
        $dadata = DaDataAddress::prompt('москва хабар', 2, Language::RU);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:2 [
    0 => array:3 [
      "value" => "г Москва, ул Хабаровская"
      "unrestricted_value" => "г Москва, ул Хабаровская"
      "data" => array:81 [
        "postal_code" => null
        "country" => "Россия"
        "country_iso_code" => "RU"
        "federal_district" => null
        "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "region_kladr_id" => "7700000000000"
        "region_iso_code" => "RU-MOW"
        "region_with_type" => "г Москва"
        "region_type" => "г"
        "region_type_full" => "город"
        "region" => "Москва"
        "area_fias_id" => null
        "area_kladr_id" => null
        "area_with_type" => null
        "area_type" => null
        "area_type_full" => null
        "area" => null
        "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "city_kladr_id" => "7700000000000"
        "city_with_type" => "г Москва"
        "city_type" => "г"
        "city_type_full" => "город"
        "city" => "Москва"
        "city_area" => null
        "city_district_fias_id" => null
        "city_district_kladr_id" => null
        "city_district_with_type" => null
        "city_district_type" => null
        "city_district_type_full" => null
        "city_district" => null
        "settlement_fias_id" => null
        "settlement_kladr_id" => null
        "settlement_with_type" => null
        "settlement_type" => null
        "settlement_type_full" => null
        "settlement" => null
        "street_fias_id" => "32fcb102-2a50-44c9-a00e-806420f448ea"
        "street_kladr_id" => "77000000000713400"
        "street_with_type" => "ул Хабаровская"
        "street_type" => "ул"
        "street_type_full" => "улица"
        "street" => "Хабаровская"
        "house_fias_id" => null
        "house_kladr_id" => null
        "house_type" => null
        "house_type_full" => null
        "house" => null
        "block_type" => null
        "block_type_full" => null
        "block" => null
        "flat_type" => null
        "flat_type_full" => null
        "flat" => null
        "flat_area" => null
        "square_meter_price" => null
        "flat_price" => null
        "postal_box" => null
        "fias_id" => "32fcb102-2a50-44c9-a00e-806420f448ea"
        "fias_code" => "7700000000000007134"
        "fias_level" => "7"
        "fias_actuality_state" => "0"
        "kladr_id" => "77000000000713400"
        "geoname_id" => "524894"
        "capital_marker" => "0"
        "okato" => "45263564000"
        "oktmo" => "45305000"
        "tax_office" => "7718"
        "tax_office_legal" => "7718"
        "timezone" => null
        "geo_lat" => "55.821168"
        "geo_lon" => "37.82608"
        "beltway_hit" => null
        "beltway_distance" => null
        "metro" => null
        "qc_geo" => "2"
        "qc_complete" => null
        "qc_house" => null
        "history_values" => array:1 [
          0 => "ул Черненко"
        ]
        "unparsed_parts" => null
        "source" => null
        "qc" => null
      ]
    ]
    1 => array:3 [
      "value" => "г Москва, поселение Московский, г Московский, ул Хабарова"
      "unrestricted_value" => "г Москва, поселение Московский, г Московский, ул Хабарова"
      "data" => array:81 [
        "postal_code" => null
        "country" => "Россия"
        "country_iso_code" => "RU"
        "federal_district" => null
        "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "region_kladr_id" => "7700000000000"
        "region_iso_code" => "RU-MOW"
        "region_with_type" => "г Москва"
        "region_type" => "г"
        "region_type_full" => "город"
        "region" => "Москва"
        "area_fias_id" => "762758bb-18b9-440f-bc61-8e1e77ff3fd8"
        "area_kladr_id" => "7701100000000"
        "area_with_type" => "поселение Московский"
        "area_type" => "п"
        "area_type_full" => "поселение"
        "area" => "Московский"
        "city_fias_id" => "fbcf1fff-1d7c-445e-ad92-b71c08b8aba3"
        "city_kladr_id" => "7701100200000"
        "city_with_type" => "г Московский"
        "city_type" => "г"
        "city_type_full" => "город"
        "city" => "Московский"
        "city_area" => null
        "city_district_fias_id" => null
        "city_district_kladr_id" => null
        "city_district_with_type" => null
        "city_district_type" => null
        "city_district_type_full" => null
        "city_district" => null
        "settlement_fias_id" => null
        "settlement_kladr_id" => null
        "settlement_with_type" => null
        "settlement_type" => null
        "settlement_type_full" => null
        "settlement" => null
        "street_fias_id" => "4d70a35d-9246-4d9c-bcf1-90812ad056a3"
        "street_kladr_id" => "77011002000003700"
        "street_with_type" => "ул Хабарова"
        "street_type" => "ул"
        "street_type_full" => "улица"
        "street" => "Хабарова"
        "house_fias_id" => null
        "house_kladr_id" => null
        "house_type" => null
        "house_type_full" => null
        "house" => null
        "block_type" => null
        "block_type_full" => null
        "block" => null
        "flat_type" => null
        "flat_type_full" => null
        "flat" => null
        "flat_area" => null
        "square_meter_price" => null
        "flat_price" => null
        "postal_box" => null
        "fias_id" => "4d70a35d-9246-4d9c-bcf1-90812ad056a3"
        "fias_code" => "7701100200000000037"
        "fias_level" => "7"
        "fias_actuality_state" => "0"
        "kladr_id" => "77011002000003700"
        "geoname_id" => "857690"
        "capital_marker" => "0"
        "okato" => "45297565001"
        "oktmo" => "45952000"
        "tax_office" => "7751"
        "tax_office_legal" => "7751"
        "timezone" => null
        "geo_lat" => "55.59483"
        "geo_lon" => "37.35963"
        "beltway_hit" => null
        "beltway_distance" => null
        "metro" => null
        "qc_geo" => "2"
        "qc_complete" => null
        "qc_house" => null
        "history_values" => null
        "unparsed_parts" => null
        "source" => null
        "qc" => null
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData prompt example
    *
    * @return void
    */
    public function promptExample() : void
    {
        try {
            $dadata = DaDataAddress::prompt('москва хабар', 2, Language::RU);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

按坐标确定地址

DaDataAddress::geolocate(float $lat, float $lon, int $count, int $radius_meters, int $language) 根据地理坐标查找最近的地址(住宅、街道、城市)。仅限俄罗斯。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData geolocate example
    *
    * @return void
    */
    public function geolocateExample() : void
    {
        $dadata = DaDataAddress::geolocate('55.878', '37.653', 2);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:2 [
    0 => array:3 [
      "value" => "г Москва, ул Сухонская, д 11"
      "unrestricted_value" => "127642, г Москва, ул Сухонская, д 11"
      "data" => array:81 [
        "postal_code" => "127642"
        "country" => "Россия"
        "country_iso_code" => "RU"
        "federal_district" => null
        "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "region_kladr_id" => "7700000000000"
        "region_iso_code" => "RU-MOW"
        "region_with_type" => "г Москва"
        "region_type" => "г"
        "region_type_full" => "город"
        "region" => "Москва"
        "area_fias_id" => null
        "area_kladr_id" => null
        "area_with_type" => null
        "area_type" => null
        "area_type_full" => null
        "area" => null
        "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "city_kladr_id" => "7700000000000"
        "city_with_type" => "г Москва"
        "city_type" => "г"
        "city_type_full" => "город"
        "city" => "Москва"
        "city_area" => null
        "city_district_fias_id" => null
        "city_district_kladr_id" => null
        "city_district_with_type" => null
        "city_district_type" => null
        "city_district_type_full" => null
        "city_district" => null
        "settlement_fias_id" => null
        "settlement_kladr_id" => null
        "settlement_with_type" => null
        "settlement_type" => null
        "settlement_type_full" => null
        "settlement" => null
        "street_fias_id" => "95dbf7fb-0dd4-4a04-8100-4f6c847564b5"
        "street_kladr_id" => "77000000000283600"
        "street_with_type" => "ул Сухонская"
        "street_type" => "ул"
        "street_type_full" => "улица"
        "street" => "Сухонская"
        "house_fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
        "house_kladr_id" => "7700000000028360004"
        "house_type" => "д"
        "house_type_full" => "дом"
        "house" => "11"
        "block_type" => null
        "block_type_full" => null
        "block" => null
        "flat_type" => null
        "flat_type_full" => null
        "flat" => null
        "flat_area" => null
        "square_meter_price" => null
        "flat_price" => null
        "postal_box" => null
        "fias_id" => "5ee84ac0-eb9a-4b42-b814-2f5f7c27c255"
        "fias_code" => "77000000000000028360004"
        "fias_level" => "8"
        "fias_actuality_state" => "0"
        "kladr_id" => "7700000000028360004"
        "geoname_id" => "524894"
        "capital_marker" => "0"
        "okato" => "45280583000"
        "oktmo" => "45362000"
        "tax_office" => "7715"
        "tax_office_legal" => "7715"
        "timezone" => null
        "geo_lat" => "55.878315"
        "geo_lon" => "37.65372"
        "beltway_hit" => null
        "beltway_distance" => null
        "metro" => null
        "qc_geo" => "0"
        "qc_complete" => null
        "qc_house" => null
        "history_values" => null
        "unparsed_parts" => null
        "source" => null
        "qc" => null
      ]
    ]
    1 => array:3 [
      "value" => "г Москва, ул Сухонская, д 11А"
      "unrestricted_value" => "127642, г Москва, ул Сухонская, д 11А"
      "data" => array:81 [
        "postal_code" => "127642"
        "country" => "Россия"
        "country_iso_code" => "RU"
        "federal_district" => null
        "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "region_kladr_id" => "7700000000000"
        "region_iso_code" => "RU-MOW"
        "region_with_type" => "г Москва"
        "region_type" => "г"
        "region_type_full" => "город"
        "region" => "Москва"
        "area_fias_id" => null
        "area_kladr_id" => null
        "area_with_type" => null
        "area_type" => null
        "area_type_full" => null
        "area" => null
        "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "city_kladr_id" => "7700000000000"
        "city_with_type" => "г Москва"
        "city_type" => "г"
        "city_type_full" => "город"
        "city" => "Москва"
        "city_area" => null
        "city_district_fias_id" => null
        "city_district_kladr_id" => null
        "city_district_with_type" => null
        "city_district_type" => null
        "city_district_type_full" => null
        "city_district" => null
        "settlement_fias_id" => null
        "settlement_kladr_id" => null
        "settlement_with_type" => null
        "settlement_type" => null
        "settlement_type_full" => null
        "settlement" => null
        "street_fias_id" => "95dbf7fb-0dd4-4a04-8100-4f6c847564b5"
        "street_kladr_id" => "77000000000283600"
        "street_with_type" => "ул Сухонская"
        "street_type" => "ул"
        "street_type_full" => "улица"
        "street" => "Сухонская"
        "house_fias_id" => "abc31736-35c1-4443-a061-b67c183b590a"
        "house_kladr_id" => "7700000000028360005"
        "house_type" => "д"
        "house_type_full" => "дом"
        "house" => "11А"
        "block_type" => null
        "block_type_full" => null
        "block" => null
        "flat_type" => null
        "flat_type_full" => null
        "flat" => null
        "flat_area" => null
        "square_meter_price" => null
        "flat_price" => null
        "postal_box" => null
        "fias_id" => "abc31736-35c1-4443-a061-b67c183b590a"
        "fias_code" => "77000000000000028360005"
        "fias_level" => "8"
        "fias_actuality_state" => "0"
        "kladr_id" => "7700000000028360005"
        "geoname_id" => "524894"
        "capital_marker" => "0"
        "okato" => "45280583000"
        "oktmo" => "45362000"
        "tax_office" => "7715"
        "tax_office_legal" => "7715"
        "timezone" => null
        "geo_lat" => "55.878212"
        "geo_lon" => "37.652016"
        "beltway_hit" => null
        "beltway_distance" => null
        "metro" => null
        "qc_geo" => "0"
        "qc_complete" => null
        "qc_house" => null
        "history_values" => null
        "unparsed_parts" => null
        "source" => null
        "qc" => null
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData geolocate example
    *
    * @return void
    */
    public function geolocateExample() : void
    {
        try {
            $dadata = DaDataAddress::geolocate('55.878', '37.653', 2);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

按 IP 确定地址

DaDataAddress::iplocate(string $ip, int $count, int $language) 根据IP地址确定城市。

主要案例

  • 支持IPv4和IPv6地址。
  • 返回有关城市的详细信息,包括邮政编码。
  • “我根据你的IP地址来计算!”

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData iplocate example
    *
    * @return void
    */
    public function iplocateExample() : void
    {
        $dadata = DaDataAddress::iplocate('46.226.227.20', 2);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "location" => array:3 [
    "value" => "г Краснодар"
    "unrestricted_value" => "350000, Краснодарский край, г Краснодар"
    "data" => array:81 [
      "postal_code" => "350000"
      "country" => "Россия"
      "country_iso_code" => "RU"
      "federal_district" => "Южный"
      "region_fias_id" => "d00e1013-16bd-4c09-b3d5-3cb09fc54bd8"
      "region_kladr_id" => "2300000000000"
      "region_iso_code" => "RU-KDA"
      "region_with_type" => "Краснодарский край"
      "region_type" => "край"
      "region_type_full" => "край"
      "region" => "Краснодарский"
      "area_fias_id" => null
      "area_kladr_id" => null
      "area_with_type" => null
      "area_type" => null
      "area_type_full" => null
      "area" => null
      "city_fias_id" => "7dfa745e-aa19-4688-b121-b655c11e482f"
      "city_kladr_id" => "2300000100000"
      "city_with_type" => "г Краснодар"
      "city_type" => "г"
      "city_type_full" => "город"
      "city" => "Краснодар"
      "city_area" => null
      "city_district_fias_id" => null
      "city_district_kladr_id" => null
      "city_district_with_type" => null
      "city_district_type" => null
      "city_district_type_full" => null
      "city_district" => null
      "settlement_fias_id" => null
      "settlement_kladr_id" => null
      "settlement_with_type" => null
      "settlement_type" => null
      "settlement_type_full" => null
      "settlement" => null
      "street_fias_id" => null
      "street_kladr_id" => null
      "street_with_type" => null
      "street_type" => null
      "street_type_full" => null
      "street" => null
      "house_fias_id" => null
      "house_kladr_id" => null
      "house_type" => null
      "house_type_full" => null
      "house" => null
      "block_type" => null
      "block_type_full" => null
      "block" => null
      "flat_type" => null
      "flat_type_full" => null
      "flat" => null
      "flat_area" => null
      "square_meter_price" => null
      "flat_price" => null
      "postal_box" => null
      "fias_id" => "7dfa745e-aa19-4688-b121-b655c11e482f"
      "fias_code" => "23000001000000000000000"
      "fias_level" => "4"
      "fias_actuality_state" => "0"
      "kladr_id" => "2300000100000"
      "geoname_id" => "542420"
      "capital_marker" => "2"
      "okato" => "03401000000"
      "oktmo" => "03701000001"
      "tax_office" => "2300"
      "tax_office_legal" => "2300"
      "timezone" => null
      "geo_lat" => "45.0401604"
      "geo_lon" => "38.9759647"
      "beltway_hit" => null
      "beltway_distance" => null
      "metro" => null
      "qc_geo" => "4"
      "qc_complete" => null
      "qc_house" => null
      "history_values" => null
      "unparsed_parts" => null
      "source" => null
      "qc" => null
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData geolocate example
    *
    * @return void
    */
    public function geolocateExample() : void
    {
        try {
            $dadata = DaDataAddress::iplocate('46.226.227.20', 2);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

按 КЛАДР 或 ФИАС 代码确定地址

DaDataAddress::id(string $ip, int $count, int $language) 根据КЛАДР或ФИАС代码确定地址。

主要案例

  • 按КЛАДР代码搜索,仅限俄罗斯;
  • ФИАС代码,仅限俄罗斯;
  • OpenStreetMap标识符,仅限白俄罗斯;
  • GeoNames标识符,适用于所有其他国家。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData ID example
    *
    * @return void
    */
    public function idExample() : void
    {
        $dadata = DaDataAddress::id('9120b43f-2fae-4838-a144-85e43c2bfb29', 2, Language::RU);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "г Москва, ул Снежная"
      "unrestricted_value" => "129323, г Москва, р-н Свиблово, ул Снежная"
      "data" => array:81 [
        "postal_code" => "129323"
        "country" => "Россия"
        "country_iso_code" => "RU"
        "federal_district" => "Центральный"
        "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "region_kladr_id" => "7700000000000"
        "region_iso_code" => "RU-MOW"
        "region_with_type" => "г Москва"
        "region_type" => "г"
        "region_type_full" => "город"
        "region" => "Москва"
        "area_fias_id" => null
        "area_kladr_id" => null
        "area_with_type" => null
        "area_type" => null
        "area_type_full" => null
        "area" => null
        "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "city_kladr_id" => "7700000000000"
        "city_with_type" => "г Москва"
        "city_type" => "г"
        "city_type_full" => "город"
        "city" => "Москва"
        "city_area" => "Северо-восточный"
        "city_district_fias_id" => null
        "city_district_kladr_id" => null
        "city_district_with_type" => "р-н Свиблово"
        "city_district_type" => "р-н"
        "city_district_type_full" => "район"
        "city_district" => "Свиблово"
        "settlement_fias_id" => null
        "settlement_kladr_id" => null
        "settlement_with_type" => null
        "settlement_type" => null
        "settlement_type_full" => null
        "settlement" => null
        "street_fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
        "street_kladr_id" => "77000000000268400"
        "street_with_type" => "ул Снежная"
        "street_type" => "ул"
        "street_type_full" => "улица"
        "street" => "Снежная"
        "house_fias_id" => null
        "house_kladr_id" => null
        "house_type" => null
        "house_type_full" => null
        "house" => null
        "block_type" => null
        "block_type_full" => null
        "block" => null
        "flat_type" => null
        "flat_type_full" => null
        "flat" => null
        "flat_area" => null
        "square_meter_price" => null
        "flat_price" => null
        "postal_box" => null
        "fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
        "fias_code" => "77000000000000026840000"
        "fias_level" => "7"
        "fias_actuality_state" => "0"
        "kladr_id" => "77000000000268400"
        "geoname_id" => "524901"
        "capital_marker" => "0"
        "okato" => "45280580000"
        "oktmo" => "45361000"
        "tax_office" => "7716"
        "tax_office_legal" => "7716"
        "timezone" => null
        "geo_lat" => "55.8523466"
        "geo_lon" => "37.6469376"
        "beltway_hit" => null
        "beltway_distance" => null
        "metro" => null
        "qc_geo" => "2"
        "qc_complete" => null
        "qc_house" => null
        "history_values" => null
        "unparsed_parts" => null
        "source" => null
        "qc" => null
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData geolocate example
    *
    * @return void
    */
    public function geolocateExample() : void
    {
        try {
            $dadata = DaDataAddress::id('9120b43f-2fae-4838-a144-85e43c2bfb29', 2, Language::RU);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

按地址确定最近的俄罗斯邮政部门

DaDataAddress::postalUnitByAddress(string $address, int $count, int $language) 根据地址确定最近的邮政局。

如果在线商店通过邮寄发送购买的商品,最好提示客户在哪里以及何时可以取件。这可以通过邮政局指南来实现——其中包含确切的地址、坐标和营业时间,以及如果临时关闭的标记。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData fine postal unit by address example
    *
    * @return void
    */
    public function postalUnitByAddressExample() : void
    {
        $dadata = DaDataAddress::postalUnitByAddress('дежнева 2а', 2, Language::RU);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "127642"
      "unrestricted_value" => "г Москва, проезд Дежнёва, д 2А"
      "data" => array:15 [
        "postal_code" => "127642"
        "is_closed" => false
        "type_code" => "ГОПС"
        "address_str" => "г Москва, проезд Дежнёва, д 2А"
        "address_kladr_id" => "7700000000000"
        "address_qc" => "0"
        "geo_lat" => 55.872127
        "geo_lon" => 37.651223
        "schedule_mon" => "08:00-20:00"
        "schedule_tue" => "08:00-20:00"
        "schedule_wed" => "08:00-20:00"
        "schedule_thu" => "08:00-20:00"
        "schedule_fri" => "08:00-20:00"
        "schedule_sat" => "09:00-18:00"
        "schedule_sun" => "09:00-18:00"
      ]
    ]
  ]
]

响应描述

描述嵌套数组 data

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

按邮政编码确定俄罗斯邮政部门

DaDataAddress::postalUnitById(int $code, int $count, int $language) 根据邮政编码确定地址。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData fine postal unit by zip example
    *
    * @return void
    */
    public function postalUnitByIdExample() : void
    {
        $dadata = DaDataAddress::postalUnitById(127642, 2, Language::RU);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "127642"
      "unrestricted_value" => "г Москва, проезд Дежнёва, д 2А"
      "data" => array:15 [
        "postal_code" => "127642"
        "is_closed" => false
        "type_code" => "ГОПС"
        "address_str" => "г Москва, проезд Дежнёва, д 2А"
        "address_kladr_id" => "7700000000000"
        "address_qc" => "0"
        "geo_lat" => 55.872127
        "geo_lon" => 37.651223
        "schedule_mon" => "08:00-20:00"
        "schedule_tue" => "08:00-20:00"
        "schedule_wed" => "08:00-20:00"
        "schedule_thu" => "08:00-20:00"
        "schedule_fri" => "08:00-20:00"
        "schedule_sat" => "09:00-18:00"
        "schedule_sun" => "09:00-18:00"
      ]
    ]
  ]
]

响应描述

描述嵌套数组 data

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

按坐标确定俄罗斯邮政部门

DaDataAddress::postalUnitByGeoLocate(float $lat, float $lon, int $radius_meters, int $count, int $language) 根据坐标确定邮政局地址。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\Language;
use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData fine postal unit by GEO
    *
    * @return void
    */
    public function postalUnitByGeoLocateExample() : void
    {
        $dadata = DaDataAddress::postalUnitByGeoLocate('55.878', '37.653', 1000, 2, Language::RU);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:2 [
    0 => array:3 [
      "value" => "127642"
      "unrestricted_value" => "г Москва, проезд Дежнёва, д 2А"
      "data" => array:15 [
        "postal_code" => "127642"
        "is_closed" => false
        "type_code" => "ГОПС"
        "address_str" => "г Москва, проезд Дежнёва, д 2А"
        "address_kladr_id" => "7700000000000"
        "address_qc" => "0"
        "geo_lat" => 55.872127
        "geo_lon" => 37.651223
        "schedule_mon" => "08:00-20:00"
        "schedule_tue" => "08:00-20:00"
        "schedule_wed" => "08:00-20:00"
        "schedule_thu" => "08:00-20:00"
        "schedule_fri" => "08:00-20:00"
        "schedule_sat" => "09:00-18:00"
        "schedule_sun" => "09:00-18:00"
      ]
    ]
    1 => array:3 [
      "value" => "127221"
      "unrestricted_value" => "г Москва, ул Полярная, д 16 к 1"
      "data" => array:15 [
        "postal_code" => "127221"
        "is_closed" => false
        "type_code" => "ГОПС"
        "address_str" => "г Москва, ул Полярная, д 16 к 1"
        "address_kladr_id" => "7700000000000"
        "address_qc" => "0"
        "geo_lat" => 55.876607
        "geo_lon" => 37.637308
        "schedule_mon" => "08:00-20:00"
        "schedule_tue" => "08:00-20:00"
        "schedule_wed" => "08:00-20:00"
        "schedule_thu" => "08:00-20:00"
        "schedule_fri" => "08:00-20:00"
        "schedule_sat" => "09:00-18:00"
        "schedule_sun" => "09:00-18:00"
      ]
    ]
  ]
]

响应描述

描述嵌套数组 data

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

在 СДЭК、Boxberry 和 DPD 中确定城市标识符

DaDataAddress::delivery(string $code) 帮助解决在СДЭК、Boxberry和DPD中确定城市标识符的问题。

配送服务通常使用自己的城市标识符,并要求商店在订单中指定它们。

DaDataAddress::delivery(string $code) 方法基于城市КЛАДР代码确定配送服务中的城市标识符。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData define city code by delivery code
    *
    * @return void
    */
    public function deliveryExample() : void
    {
        $dadata = DaDataAddress::delivery('3100400100000');

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "3100400100000"
      "unrestricted_value" => "fe7eea4a-875a-4235-aa61-81c2a37a0440"
      "data" => array:5 [
        "kladr_id" => "3100400100000"
        "fias_id" => "fe7eea4a-875a-4235-aa61-81c2a37a0440"
        "boxberry_id" => "01929"
        "cdek_id" => "344"
        "dpd_id" => "196006461"
      ]
    ]
  ]
]

响应描述

描述嵌套数组 data

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

按标识符获取 ФИАС 地址

DaDataAddress::fias(string $code) 根据КЛАДР或ФИАС代码在ФИАС目录中查找地址。

由于ФИАС代码有时会更改,因此建议除了保存房屋的ФИАС代码外,还保存地址的单一字符串——否则在ФИАС代码更改时无法恢复地址。

根据КЛАДР代码,方法仅搜索到街道,因为在ФИАС中没有房屋的КЛАДР代码。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData get city by FIAS code
    *
    * @return void
    */
    public function fiasExample() : void
    {
        $dadata = DaDataAddress::fias('9120b43f-2fae-4838-a144-85e43c2bfb29');

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "г Москва, ул Снежная"
      "unrestricted_value" => "129323, г Москва, ул Снежная"
      "data" => array:64 [
        "postal_code" => "129323"
        "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
        "region_kladr_id" => "7700000000000"
        "region_with_type" => "г Москва"
        "region_type" => "г"
        "region_type_full" => "город"
        "region" => "Москва"
        "area_fias_id" => null
        "area_kladr_id" => null
        "area_with_type" => null
        "area_type" => null
        "area_type_full" => null
        "area" => null
        "city_fias_id" => null
        "city_kladr_id" => null
        "city_with_type" => null
        "city_type" => null
        "city_type_full" => null
        "city" => null
        "city_district_fias_id" => null
        "city_district_kladr_id" => null
        "city_district_with_type" => null
        "city_district_type" => null
        "city_district_type_full" => null
        "city_district" => null
        "settlement_fias_id" => null
        "settlement_kladr_id" => null
        "settlement_with_type" => null
        "settlement_type" => null
        "settlement_type_full" => null
        "settlement" => null
        "planning_structure_fias_id" => null
        "planning_structure_kladr_id" => null
        "planning_structure_with_type" => null
        "planning_structure_type" => null
        "planning_structure_type_full" => null
        "planning_structure" => null
        "street_fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
        "street_kladr_id" => "77000000000268400"
        "street_with_type" => "ул Снежная"
        "street_type" => "ул"
        "street_type_full" => "улица"
        "street" => "Снежная"
        "house_fias_id" => null
        "house_kladr_id" => null
        "house_type" => null
        "house" => null
        "block" => null
        "building_type" => null
        "building" => null
        "fias_id" => "9120b43f-2fae-4838-a144-85e43c2bfb29"
        "fias_code" => "7700000000000002684"
        "fias_level" => "7"
        "fias_actuality_state" => "0"
        "kladr_id" => "77000000000268400"
        "capital_marker" => "0"
        "okato" => "45280580000"
        "oktmo" => "45361000"
        "cadastral_number" => null
        "tax_office" => "7716"
        "tax_office_legal" => "7716"
        "history_values" => null
        "source" => null
        "qc" => null
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataAddress;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData define city by FIAS code
    *
    * @return void
    */
    public function fiasExample() : void
    {
        try {
            $dadata = DaDataAddress::fias('9120b43f-2fae-4838-a144-85e43c2bfb29');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

姓名处理

姓名

DaDataName::fias(string $name) 将姓名从字符串拆分为单独的字段(姓氏、名字、父名)。确定性别和变位。

主要案例

  • 纠正拼写错误并进行转写。
  • 指定性别。
  • 变位(谁?谁?谁?)。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataName;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData name standardization
    *
    * @return void
    */
    public function nameExample() : void
    {
        $dadata = DaDataName::standardization('Срегей владимерович иванов');

        dd($dadata);    
    }

}

响应示例

array:1 [
  0 => array:10 [
    "source" => "Срегей владимерович иванов"
    "result" => "Иванов Сергей Владимирович"
    "result_genitive" => "Иванова Сергея Владимировича"
    "result_dative" => "Иванову Сергею Владимировичу"
    "result_ablative" => "Ивановым Сергеем Владимировичем"
    "surname" => "Иванов"
    "name" => "Сергей"
    "patronymic" => "Владимирович"
    "gender" => "М"
    "qc" => 1
  ]
]

响应描述

检查代码(响应参数 qc

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataName;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData define city by FIAS code
    *
    * @return void
    */
    public function nameExample() : void
    {
        try {
            $dadata = DaDataName::standardization('Срегей владимерович иванов');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

输入时自动完成(提示)

DaDataName::prompt(string $name, int $count, int $gender, array $parts) 帮助人在网页表单或应用程序中快速输入姓名。

主要案例

  • 提示姓名为单行或分别提示姓氏、名字和父名。
  • 修复键盘布局(“fynjy” → “Антон”)。
  • 确定性别。

此方法不适用于以下任务:

  • 自动(无需人工干预)处理数据库或文件中的全名。
  • 转写(Juliia Somova → Юлия Сомова)。
  • 根据格变形式(谁?谁的?谁的?)。

提示不适用于全名的自动处理。它们提供选项,但不保证正确性。因此,最终决策始终应由人类做出。

要自动处理、转写和格变形式,请使用 DaDataName::fias(string $name) 方法,其描述见上文。

调用参数

为全名快速生成提示数组 parts。要生成,请使用 Parts 类的常量集。

仅名字。

use Icekristal\DaData\Enums\Gender;
use Icekristal\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);

名字和姓氏。

use Icekristal\DaData\Enums\Gender;
use Icekristal\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME, Parts::PATRONYMIC);

名字和姓氏。

use Icekristal\DaData\Enums\Gender;
use Icekristal\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME, Parts::SURNAME]);

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\Gender;
use Icekristal\DaData\Enums\Parts;
use Icekristal\DaData\Facades\DaDataName;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData name prompt
    *
    * @return void
    */
    public function nameExample() : void
    {
        $dadata = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:2 [
    0 => array:3 [
      "value" => "Виктор"
      "unrestricted_value" => "Виктор"
      "data" => array:6 [
        "surname" => null
        "name" => "Виктор"
        "patronymic" => null
        "gender" => "MALE"
        "source" => null
        "qc" => "0"
      ]
    ]
    1 => array:3 [
      "value" => "Виктория"
      "unrestricted_value" => "Виктория"
      "data" => array:6 [
        "surname" => null
        "name" => "Виктория"
        "patronymic" => null
        "gender" => "FEMALE"
        "source" => null
        "qc" => "0"
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\Gender;
use Icekristal\DaData\Enums\Parts;
use Icekristal\DaData\Facades\DaDataName;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData name prompt
    *
    * @return void
    */
    public function nameExample() : void
    {
        try {
            $dadata = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

处理电子邮箱地址。

电子邮件

DaDataName::email(string $email) 修复错误并检查是否为一次性地址。将地址分类为个人、企业和“角色”。

主要案例

  • 检查地址格式。
  • 修复常见的错误。
  • 检查地址是否为一次性。
  • 将地址分类为个人(@mail.ru@yandex.ru)、企业(@myshop.ru)和“角色”(info@support@)。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataEmail;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData email
    *
    * @return void
    */
    public function emailExample() : void
    {
        $dadata = DaDataEmail::standardization('serega@yandex/ru');

        dd($dadata);    
    }

}

响应示例

array:1 [
  0 => array:6 [
    "source" => "serega@yandex/ru"
    "email" => "serega@yandex.ru"
    "local" => "serega"
    "domain" => "yandex.ru"
    "type" => "PERSONAL"
    "qc" => 4
  ]
]

响应描述

检查代码(响应参数 qc

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataEmail;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

    /**
    * DaData email
    *
    * @return void
    */
    public function nameExample() : void
    {
        try {
            $dadata = DaDataEmail::standardization('serega@yandex/ru');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

电子邮件提示

DaDataEmail::prompt(string $email, int $count) 帮助人在网页表单或应用程序中快速输入电子邮箱地址。

主要案例

  • 提示本地(直到“at”)和域名(之后“at”)部分。
  • 修复错误(yadex.ru → yandex.ru)。

此方法不适用于以下任务:

  • 自动(无需人工干预)检查数据库或文件中的地址。
  • 将地址分类为个人(@mail.ru、@yandex.ru)、企业(@myshop.ru)和“角色”(info@、support@)。
  • 根据格变形式(谁?谁的?谁的?)。

提示不适用于电子邮箱的自动处理。它们提供选项,但不保证正确性。因此,最终决策始终应由人类做出。

要自动处理和分类地址,请使用 DaDataName::email(string $email)

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataEmail;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData name prompt
    *
    * @return void
    */
    public function nameExample() : void
    {
        $dadata = DaDataEmail::prompt('anton@', 2);

        dd($dadata);    
    }

}

响应示例

array:1 [
  "suggestions" => array:2 [
    0 => array:3 [
      "value" => "anton@mail.ru"
      "unrestricted_value" => "anton@mail.ru"
      "data" => array:5 [
        "local" => "anton"
        "domain" => "mail.ru"
        "type" => null
        "source" => null
        "qc" => null
      ]
    ]
    1 => array:3 [
      "value" => "anton@gmail.com"
      "unrestricted_value" => "anton@gmail.com"
      "data" => array:5 [
        "local" => "anton"
        "domain" => "gmail.com"
        "type" => null
        "source" => null
        "qc" => null
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataEmail;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

    /**
    * DaData email prompt
    *
    * @return void
    */
    public function nameExample() : void
    {
        try {
            $dadata = DaDataEmail::prompt('anton@', 2);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

电话号码处理

检查电话

DaDataPhone::standardization(string $phone) 根据俄罗斯电信局的目录检查电话号码,根据号码转移确定运营商,填写国家、城市和时区。

主要案例

  • 检查电话。
  • 填写最新的城市代码 / DEF 代码。
  • 恢复运营商。考虑运营商之间的号码转移。
  • 确定国家、地区、城市和时区。

调用参数

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataPhone;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData phone exmaple
    *
    * @return void
    */
    public function phoneExample() : void
    {
        $dadata = DaDataPhone::standardization('раб 846)231.60.14 *139');

        dd($dadata);    
    }

}

响应示例

array:1 [
  0 => array:14 [
    "source" => "раб 846)231.60.14 *139"
    "type" => "Стационарный"
    "phone" => "+7 846 231-60-14 доб. 139"
    "country_code" => "7"
    "city_code" => "846"
    "number" => "2316014"
    "extension" => "139"
    "provider" => "ООО "СИПАУТНЭТ""
    "country" => "Россия"
    "region" => "Самарская область"
    "city" => "Самара"
    "timezone" => "UTC+4"
    "qc_conflict" => 0
    "qc" => 0
  ]
]

响应描述

检查代码 qc

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataPhone;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

    /**
    * DaData phone exmaple
    *
    * @return void
    */
    public function nameExample() : void
    {
        try {
            $dadata = DaDataPhone::standardization('раб 846)231.60.14 *139');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }

}

公司处理

按 INN 查找组织

DaDataCompany::id(string $id', int $count, string $kpp, int $branch_type, int $type) - 根据统一社会信用代码(INN)、税务登记证号(KPP)和营业执照号(OGRN)查找公司或个体经营者。返回公司、创始人、负责人、税务、养老和失业基金、社会保险、金融、许可证、中小微企业登记和公司其他信息。

根据统一社会信用代码(INN)或营业执照号(OGRN)查找公司或个体经营者。返回公司的所有可用信息,与只返回基本字段的 suggest 方法不同。

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\BranchType;
use Icekristal\DaData\Enums\CompanyType;
use Icekristal\DaData\Facades\DaDataCompany;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData find organization by FIAS or OGRN ID example
    *
    * @return void
    */
    public function idExample() : void
    {
        $dadata = DaDataCompany::id('7707083893', 1, null, BranchType::MAIN, CompanyType::LEGAL);

        dd($dadata);    
    }

}

调用参数

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "ПАО СБЕРБАНК"
      "unrestricted_value" => "ПАО СБЕРБАНК"
      "data" => array:33 [
        "kpp" => "773601001"
        "capital" => null
        "management" => array:3 [
          "name" => "Греф Герман Оскарович"
          "post" => "ПРЕЗИДЕНТ, ПРЕДСЕДАТЕЛЬ ПРАВЛЕНИЯ"
          "disqualified" => null
        ]
        "founders" => null
        "managers" => null
        "branch_type" => "MAIN"
        "branch_count" => 88
        "source" => null
        "qc" => null
        "hid" => "588a141bc5e17cbc976ec2d0d54149af49d5a4ca16e26ed2effafdf06841d645"
        "type" => "LEGAL"
        "state" => array:4 [
          "status" => "ACTIVE"
          "actuality_date" => 1601942400000
          "registration_date" => 677376000000
          "liquidation_date" => null
        ]
        "opf" => array:4 [
          "type" => "2014"
          "code" => "12247"
          "full" => "Публичное акционерное общество"
          "short" => "ПАО"
        ]
        "name" => array:5 [
          "full_with_opf" => "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "СБЕРБАНК РОССИИ""
          "short_with_opf" => "ПАО СБЕРБАНК"
          "latin" => null
          "full" => "СБЕРБАНК РОССИИ"
          "short" => "СБЕРБАНК"
        ]
        "inn" => "7707083893"
        "ogrn" => "1027700132195"
        "okpo" => "00032537"
        "okato" => "45293554000"
        "oktmo" => "45397000000"
        "okogu" => "4100104"
        "okfs" => "41"
        "okved" => "64.19"
        "okveds" => null
        "authorities" => null
        "documents" => null
        "licenses" => null
        "finance" => null
        "address" => array:3 [
          "value" => "г Москва, ул Вавилова, д 19"
          "unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
          "data" => array:81 [
            "postal_code" => "117312"
            "country" => "Россия"
            "country_iso_code" => "RU"
            "federal_district" => "Центральный"
            "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "region_kladr_id" => "7700000000000"
            "region_iso_code" => "RU-MOW"
            "region_with_type" => "г Москва"
            "region_type" => "г"
            "region_type_full" => "город"
            "region" => "Москва"
            "area_fias_id" => null
            "area_kladr_id" => null
            "area_with_type" => null
            "area_type" => null
            "area_type_full" => null
            "area" => null
            "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "city_kladr_id" => "7700000000000"
            "city_with_type" => "г Москва"
            "city_type" => "г"
            "city_type_full" => "город"
            "city" => "Москва"
            "city_area" => "Юго-западный"
            "city_district_fias_id" => null
            "city_district_kladr_id" => null
            "city_district_with_type" => "Академический р-н"
            "city_district_type" => "р-н"
            "city_district_type_full" => "район"
            "city_district" => "Академический"
            "settlement_fias_id" => null
            "settlement_kladr_id" => null
            "settlement_with_type" => null
            "settlement_type" => null
            "settlement_type_full" => null
            "settlement" => null
            "street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
            "street_kladr_id" => "77000000000092400"
            "street_with_type" => "ул Вавилова"
            "street_type" => "ул"
            "street_type_full" => "улица"
            "street" => "Вавилова"
            "house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "house_kladr_id" => "7700000000009240170"
            "house_type" => "д"
            "house_type_full" => "дом"
            "house" => "19"
            "block_type" => null
            "block_type_full" => null
            "block" => null
            "flat_type" => null
            "flat_type_full" => null
            "flat" => null
            "flat_area" => null
            "square_meter_price" => null
            "flat_price" => null
            "postal_box" => null
            "fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "fias_code" => "77000000000000009240170"
            "fias_level" => "8"
            "fias_actuality_state" => "0"
            "kladr_id" => "7700000000009240170"
            "geoname_id" => "524901"
            "capital_marker" => "0"
            "okato" => "45293554000"
            "oktmo" => "45397000"
            "tax_office" => "7736"
            "tax_office_legal" => "7736"
            "timezone" => "UTC+3"
            "geo_lat" => "55.7001865"
            "geo_lon" => "37.5802234"
            "beltway_hit" => "IN_MKAD"
            "beltway_distance" => null
            "metro" => array:3 [
              0 => array:3 [
                "name" => "Ленинский проспект"
                "line" => "Калужско-Рижская"
                "distance" => 0.8
              ]
              1 => array:3 [
                "name" => "Площадь Гагарина"
                "line" => "МЦК"
                "distance" => 0.8
              ]
              2 => array:3 [
                "name" => "Академическая"
                "line" => "Калужско-Рижская"
                "distance" => 1.5
              ]
            ]
            "qc_geo" => "0"
            "qc_complete" => null
            "qc_house" => null
            "history_values" => null
            "unparsed_parts" => null
            "source" => "117997, ГОРОД МОСКВА, УЛИЦА ВАВИЛОВА, 19"
            "qc" => "0"
          ]
        ]
        "phones" => null
        "emails" => null
        "ogrn_date" => 1029456000000
        "okved_type" => "2014"
        "employee_count" => null
      ]
    ]
  ]
]

响应描述

有关完整响应的表格描述,请参阅按统一社会信用代码或营业执照号查找组织部分中的“响应内容”。

响应描述 data['address']

莫斯科有 97% 的房屋有坐标,圣彼得堡有 91%,其他百万城市有 69%,俄罗斯其他地区有 47%。俄罗斯 70% 的公寓有面积和价格信息。

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\BranchType;
use Icekristal\DaData\Enums\CompanyType;
use Icekristal\DaData\Facades\DaDataCompany;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData find organization by FIAS or OGRN ID example
    *
    * @return void
    */
    public function idExample() : void
    {
        try {
            $dadata = DaDataCompany::id('7707083893', 1, null, BranchType::MAIN, CompanyType::LEGAL);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}

输入时自动完成(提示)

DaDataCompany::prompt(string $company, int $count, array $status, int $type, string $locations, string $locations_boost) 帮助人在网页表单或应用程序中快速输入组织的详细信息。

查找公司和个体经营者:

  • 根据统一社会信用代码(INN)、营业执照号(OGRN)和税务登记证号(KPP);
  • 名称(全称和简称);
  • 个体经营者的全名;
  • 公司的负责人全名;
  • 街道地址;

主要案例

  • 在一个查询中根据统一社会信用代码(INN)、名称和地址进行组合搜索(“7736050003 Газ” → “ПАО Газпром”,“вавилова сбер” → “ПАО Сбербанк”)。
  • 如果指定税务登记证号(KPP),则查找特定分支机构(“сбербанк 540602001” → “Сибирский банк ПАО Сбербанк”)。
  • 理解合并和分隔的写法(“альфабанк” = “Альфа-Банк”)。
  • 根据部分匹配查找统一社会信用代码(INN)和营业执照号(OGRN)(“77094209” → “ООО Акварель”)和名称(“росне” → “ПАО «НК «Роснефть」)。
  • 仅提示组织或个体工商户,或两者都有。能只在活跃或已清算的公司中搜索。可以限制提示仅限于俄罗斯特定地区。
  • 考虑您的位置(与通过IP地址确定地址方法结合)。
  • 返回从企业注册信息查询到的公司基本信息:简短和完整名称,组织形式,地址,统一社会信用代码,纳税人识别号,税务登记证号码,行业分类代码,组织状态,法定代表人姓名和职务。
  • 通过纳税人识别号确定组织方法结合,返回额外信息:员工数量,所有行业分类代码,税务、养老和失业保险信息,文件和许可证,发起人和负责人,财务指标,中小型企业名录。

该方法不适用

  • 因为50%的公司税务部门目前不提供分支机构税务登记证号码。这些分支机构可以通过纳税人识别号、城市和街道名称查找。例如,“7724261610 москва мясницкая” → “Филиал ФГУП "Почта России" (г Москва)”。

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\CompanyStatus;
use Icekristal\DaData\Enums\CompanyType;
use Icekristal\DaData\Facades\DaDataCompany;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData prompt organization by string
    *
    * @return void
    */
    public function promptExample() : void
    {
        $dadata = DaDataCompany::prompt('сбербанк', 1, [CompanyStatus::ACTIVE], CompanyType::LEGAL);

        dd($dadata);    
    }

}

调用参数

生成status - 限制组织状态要仅搜索活跃公司,将status数组设置为

...
use Icekristal\DaData\Enums\CompanyStatus;
...
$status = [
    CompanyStatus::ACTIVE
];

仅搜索正在清算或已清算的公司

...
use Icekristal\DaData\Enums\CompanyStatus;
...
$status = [
    CompanyStatus::LIQUIDATING,
    CompanyStatus::LIQUIDATED,
];

生成type - 限制组织类型。

仅搜索法人实体

...
use Icekristal\DaData\Enums\CompanyStatus;
...
$type = CompanyStatus::LEGAL;

仅搜索个体工商户

...
use Icekristal\DaData\Enums\CompanyStatus;
...
$type = CompanyStatus::INDIVIDUAL;

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "ПАО СБЕРБАНК"
      "unrestricted_value" => "ПАО СБЕРБАНК"
      "data" => array:33 [
        "kpp" => "773601001"
        "capital" => null
        "management" => array:3 [
          "name" => "Греф Герман Оскарович"
          "post" => "ПРЕЗИДЕНТ, ПРЕДСЕДАТЕЛЬ ПРАВЛЕНИЯ"
          "disqualified" => null
        ]
        "founders" => null
        "managers" => null
        "branch_type" => "MAIN"
        "branch_count" => 88
        "source" => null
        "qc" => null
        "hid" => "588a141bc5e17cbc976ec2d0d54149af49d5a4ca16e26ed2effafdf06841d645"
        "type" => "LEGAL"
        "state" => array:4 [
          "status" => "ACTIVE"
          "actuality_date" => 1601942400000
          "registration_date" => 677376000000
          "liquidation_date" => null
        ]
        "opf" => array:4 [
          "type" => "2014"
          "code" => "12247"
          "full" => "Публичное акционерное общество"
          "short" => "ПАО"
        ]
        "name" => array:5 [
          "full_with_opf" => "ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО "СБЕРБАНК РОССИИ""
          "short_with_opf" => "ПАО СБЕРБАНК"
          "latin" => null
          "full" => "СБЕРБАНК РОССИИ"
          "short" => "СБЕРБАНК"
        ]
        "inn" => "7707083893"
        "ogrn" => "1027700132195"
        "okpo" => "00032537"
        "okato" => "45293554000"
        "oktmo" => "45397000000"
        "okogu" => "4100104"
        "okfs" => "41"
        "okved" => "64.19"
        "okveds" => null
        "authorities" => null
        "documents" => null
        "licenses" => null
        "finance" => null
        "address" => array:3 [
          "value" => "г Москва, ул Вавилова, д 19"
          "unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
          "data" => array:81 [
            "postal_code" => "117312"
            "country" => "Россия"
            "country_iso_code" => "RU"
            "federal_district" => "Центральный"
            "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "region_kladr_id" => "7700000000000"
            "region_iso_code" => "RU-MOW"
            "region_with_type" => "г Москва"
            "region_type" => "г"
            "region_type_full" => "город"
            "region" => "Москва"
            "area_fias_id" => null
            "area_kladr_id" => null
            "area_with_type" => null
            "area_type" => null
            "area_type_full" => null
            "area" => null
            "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "city_kladr_id" => "7700000000000"
            "city_with_type" => "г Москва"
            "city_type" => "г"
            "city_type_full" => "город"
            "city" => "Москва"
            "city_area" => "Юго-западный"
            "city_district_fias_id" => null
            "city_district_kladr_id" => null
            "city_district_with_type" => "Академический р-н"
            "city_district_type" => "р-н"
            "city_district_type_full" => "район"
            "city_district" => "Академический"
            "settlement_fias_id" => null
            "settlement_kladr_id" => null
            "settlement_with_type" => null
            "settlement_type" => null
            "settlement_type_full" => null
            "settlement" => null
            "street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
            "street_kladr_id" => "77000000000092400"
            "street_with_type" => "ул Вавилова"
            "street_type" => "ул"
            "street_type_full" => "улица"
            "street" => "Вавилова"
            "house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "house_kladr_id" => "7700000000009240170"
            "house_type" => "д"
            "house_type_full" => "дом"
            "house" => "19"
            "block_type" => null
            "block_type_full" => null
            "block" => null
            "flat_type" => null
            "flat_type_full" => null
            "flat" => null
            "flat_area" => null
            "square_meter_price" => null
            "flat_price" => null
            "postal_box" => null
            "fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "fias_code" => "77000000000000009240170"
            "fias_level" => "8"
            "fias_actuality_state" => "0"
            "kladr_id" => "7700000000009240170"
            "geoname_id" => "524901"
            "capital_marker" => "0"
            "okato" => "45293554000"
            "oktmo" => "45397000"
            "tax_office" => "7736"
            "tax_office_legal" => "7736"
            "timezone" => "UTC+3"
            "geo_lat" => "55.7001865"
            "geo_lon" => "37.5802234"
            "beltway_hit" => "IN_MKAD"
            "beltway_distance" => null
            "metro" => array:3 [
              0 => array:3 [
                "name" => "Ленинский проспект"
                "line" => "Калужско-Рижская"
                "distance" => 0.8
              ]
              1 => array:3 [
                "name" => "Площадь Гагарина"
                "line" => "МЦК"
                "distance" => 0.8
              ]
              2 => array:3 [
                "name" => "Академическая"
                "line" => "Калужско-Рижская"
                "distance" => 1.5
              ]
            ]
            "qc_geo" => "0"
            "qc_complete" => null
            "qc_house" => null
            "history_values" => null
            "unparsed_parts" => null
            "source" => "117997, ГОРОД МОСКВА, УЛИЦА ВАВИЛОВА, 19"
            "qc" => "0"
          ]
        ]
        "phones" => null
        "emails" => null
        "ogrn_date" => 1029456000000
        "okved_type" => "2014"
        "employee_count" => null
      ]
    ]
  ]
]

响应描述

您可以在组织API提示页面的“响应内容”部分找到完整响应描述。

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\CompanyStatus;
use Icekristal\DaData\Enums\CompanyType;
use Icekristal\DaData\Facades\DaDataCompany;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData prompt organization by string
   *
   * @return void
   */
   public function promptExample() : void
    {
        try {
            $dadata = DaDataCompany::prompt('сбербанк', 1, [CompanyStatus::ACTIVE], CompanyType::LEGAL);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}

搜索关联公司

DaDataCompany::affiliated(string $code, int $count, array $scope) 通过纳税人识别号找到发起人和负责人的组织。适用于个人和法人实体。

发起人或负责人往往不仅仅参与一个法人实体,而是在多个公司中都有出现。有时甚至多达数十家公司。了解这一点对于评估合作伙伴的可靠性以及更有效的营销和销售都很有用。为了简化关联公司搜索,“达达数据”通过纳税人识别号找到发起人和负责人的组织。

通过纳税人识别号搜索个人和法人实体。

由于所有返回的响应均为403,Operation party/findAffiliated is not permitted,因此无法测试此方法。

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\CompanyScope;
use Icekristal\DaData\Facades\DaDataCompany;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData find affiliated organization exmaple
    *
    * @return void
    */
    public function affiliatedExample() : void
    {
        $dadata = DaDataCompany::affiliated('7736207543', 1, [CompanyScope::MANAGERS]);
        
        dd($dadata);
    }

}

调用参数

**生成scope - **

响应描述

您可以在关联公司搜索页面的“响应内容”部分找到完整响应描述。

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\CompanyScope;
use Icekristal\DaData\Facades\DaDataCompany;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
    * DaData find affiliated organization exmaple
    *
    * @return void
    */
    public function affiliatedExample() : void
    {
        try {
            $dadata = DaDataCompany::affiliated('7736207543', 1, [CompanyScope::MANAGERS]);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}

银行处理

按 БИК、SWIFT、INN 或注册号查找银行

DaDataBank::id(string $bank); 通过任何标识符(银行代码,SWIFT代码,纳税人识别号,纳税人识别号加税务登记证号码,注册号)找到银行。返回银行信息,结算账户,地址和状态(活跃/清算)。

通过以下方式搜索信贷机构

  • 银行代码
  • SWIFT代码
  • 纳税人识别号
  • 纳税人识别号加税务登记证号码
  • 名称

仅搜索精确匹配,对于部分匹配,请使用DaDataBank::prompt(string $bank, int $count, array $status, array $type, string $locations, string $locations_boost)方法

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataBank;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData prompt bank by string
   *
   * @return void
   */
   public function promptExample() : void
    {
        $dadata = DaDataBank::id('044525225');
        
        dd($dadata);    
    }

}

调用参数

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "ПАО Сбербанк"
      "unrestricted_value" => "ПАО Сбербанк"
      "data" => array:14 [
        "opf" => array:3 [
          "type" => "BANK"
          "full" => null
          "short" => null
        ]
        "name" => array:3 [
          "payment" => "ПАО СБЕРБАНК"
          "full" => null
          "short" => "ПАО Сбербанк"
        ]
        "bic" => "044525225"
        "swift" => "SABRRUMM"
        "inn" => "7707083893"
        "kpp" => "773601001"
        "okpo" => null
        "correspondent_account" => "30101810400000000225"
        "registration_number" => "1481"
        "payment_city" => "г Москва"
        "state" => array:4 [
          "status" => "ACTIVE"
          "actuality_date" => 1602547200000
          "registration_date" => 677376000000
          "liquidation_date" => null
        ]
        "rkc" => null
        "address" => array:3 [
          "value" => "г Москва, ул Вавилова, д 19"
          "unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
          "data" => array:81 [
            "postal_code" => "117312"
            "country" => "Россия"
            "country_iso_code" => "RU"
            "federal_district" => "Центральный"
            "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "region_kladr_id" => "7700000000000"
            "region_iso_code" => "RU-MOW"
            "region_with_type" => "г Москва"
            "region_type" => "г"
            "region_type_full" => "город"
            "region" => "Москва"
            "area_fias_id" => null
            "area_kladr_id" => null
            "area_with_type" => null
            "area_type" => null
            "area_type_full" => null
            "area" => null
            "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "city_kladr_id" => "7700000000000"
            "city_with_type" => "г Москва"
            "city_type" => "г"
            "city_type_full" => "город"
            "city" => "Москва"
            "city_area" => "Юго-западный"
            "city_district_fias_id" => null
            "city_district_kladr_id" => null
            "city_district_with_type" => "Академический р-н"
            "city_district_type" => "р-н"
            "city_district_type_full" => "район"
            "city_district" => "Академический"
            "settlement_fias_id" => null
            "settlement_kladr_id" => null
            "settlement_with_type" => null
            "settlement_type" => null
            "settlement_type_full" => null
            "settlement" => null
            "street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
            "street_kladr_id" => "77000000000092400"
            "street_with_type" => "ул Вавилова"
            "street_type" => "ул"
            "street_type_full" => "улица"
            "street" => "Вавилова"
            "house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "house_kladr_id" => "7700000000009240170"
            "house_type" => "д"
            "house_type_full" => "дом"
            "house" => "19"
            "block_type" => null
            "block_type_full" => null
            "block" => null
            "flat_type" => null
            "flat_type_full" => null
            "flat" => null
            "flat_area" => null
            "square_meter_price" => null
            "flat_price" => null
            "postal_box" => null
            "fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "fias_code" => "77000000000000009240170"
            "fias_level" => "8"
            "fias_actuality_state" => "0"
            "kladr_id" => "7700000000009240170"
            "geoname_id" => "524901"
            "capital_marker" => "0"
            "okato" => "45293554000"
            "oktmo" => "45397000"
            "tax_office" => "7736"
            "tax_office_legal" => "7736"
            "timezone" => "UTC+3"
            "geo_lat" => "55.7001865"
            "geo_lon" => "37.5802234"
            "beltway_hit" => "IN_MKAD"
            "beltway_distance" => null
            "metro" => array:3 [
              0 => array:3 [
                "name" => "Ленинский проспект"
                "line" => "Калужско-Рижская"
                "distance" => 0.8
              ]
              1 => array:3 [
                "name" => "Площадь Гагарина"
                "line" => "МЦК"
                "distance" => 0.8
              ]
              2 => array:3 [
                "name" => "Академическая"
                "line" => "Калужско-Рижская"
                "distance" => 1.5
              ]
            ]
            "qc_geo" => "0"
            "qc_complete" => "5"
            "qc_house" => "2"
            "history_values" => null
            "unparsed_parts" => null
            "source" => "117997, г Москва, ул Вавилова, 19"
            "qc" => "0"
          ]
        ]
        "phones" => null
      ]
    ]
  ]
]

响应描述

您可以在通过银行代码、SWIFT代码、纳税人识别号或注册号找到银行页面的“响应内容”部分找到完整响应描述。

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataBank;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData prompt bank by string
   *
   * @return void
   */
   public function promptExample() : void
    {
        try {
            $dadata = DaDataBank::id('044525225');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}

银行提示 API

DaDataBank::prompt(string $bank, int $count, array $status, array $type, string $locations, string $locations_boost) 帮助用户快速在网页表单或应用程序中输入银行信息。

通过以下方式搜索信贷机构

  • 银行代码
  • SWIFT代码
  • 纳税人识别号
  • 纳税人识别号加税务登记证号码
  • 名称

主要案例

  • 可以按类型过滤:银行、非营利组织、分支机构、清算中心和其它组织;
  • 能搜索活跃和清算中的银行;
  • 考虑您的位置(城市级地理定位);

调用示例

<?php

namespace App;

use Icekristal\DaData\Enums\BankStatus;
use Icekristal\DaData\Enums\BankType;
use Icekristal\DaData\Facades\DaDataBank;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData prompt bank by string
   *
   * @return void
   */
   public function promptExample() : void
    {
        $dadata = DaDataBank::prompt('сбербанк', 1, [BankStatus::ACTIVE], [BankType::BANK]);
        
        dd($dadata);    
    }

}

调用参数

生成status - 限制组织状态要仅搜索活跃银行,将status数组设置为

...
use Icekristal\DaData\Enums\BankStatus;
...
$status = [
    BankStatus::ACTIVE
];

仅搜索清算中和已清算的银行

...
use Icekristal\DaData\Enums\BankStatus;
...
$status = [
    BankStatus::LIQUIDATING,
    BankStatus::LIQUIDATED,
];

构建 type - 根据银行类型进行限制。Icekristal\DaData\Enums\BankType 类中可用的组织类型。

仅按银行和银行分行进行搜索的类型。

...
use Icekristal\DaData\Enums\BankType;
...
$type = [BankType::BANK, BankType::BANK_BRANCH]

仅按РКЦ/ГРКЦ进行搜索的类型。

...
use Icekristal\DaData\Enums\BankType;
...
$type = [BankType::BANK, BankType::RKC]

响应示例

array:1 [
  "suggestions" => array:1 [
    0 => array:3 [
      "value" => "ПАО Сбербанк"
      "unrestricted_value" => "ПАО Сбербанк"
      "data" => array:14 [
        "opf" => array:3 [
          "type" => "BANK"
          "full" => null
          "short" => null
        ]
        "name" => array:3 [
          "payment" => "ПАО СБЕРБАНК"
          "full" => null
          "short" => "ПАО Сбербанк"
        ]
        "bic" => "044525225"
        "swift" => "SABRRUMM"
        "inn" => "7707083893"
        "kpp" => "773601001"
        "okpo" => null
        "correspondent_account" => "30101810400000000225"
        "registration_number" => "1481"
        "payment_city" => "г Москва"
        "state" => array:4 [
          "status" => "ACTIVE"
          "actuality_date" => 1602547200000
          "registration_date" => 677376000000
          "liquidation_date" => null
        ]
        "rkc" => null
        "address" => array:3 [
          "value" => "г Москва, ул Вавилова, д 19"
          "unrestricted_value" => "117312, г Москва, Академический р-н, ул Вавилова, д 19"
          "data" => array:81 [
            "postal_code" => "117312"
            "country" => "Россия"
            "country_iso_code" => "RU"
            "federal_district" => "Центральный"
            "region_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "region_kladr_id" => "7700000000000"
            "region_iso_code" => "RU-MOW"
            "region_with_type" => "г Москва"
            "region_type" => "г"
            "region_type_full" => "город"
            "region" => "Москва"
            "area_fias_id" => null
            "area_kladr_id" => null
            "area_with_type" => null
            "area_type" => null
            "area_type_full" => null
            "area" => null
            "city_fias_id" => "0c5b2444-70a0-4932-980c-b4dc0d3f02b5"
            "city_kladr_id" => "7700000000000"
            "city_with_type" => "г Москва"
            "city_type" => "г"
            "city_type_full" => "город"
            "city" => "Москва"
            "city_area" => "Юго-западный"
            "city_district_fias_id" => null
            "city_district_kladr_id" => null
            "city_district_with_type" => "Академический р-н"
            "city_district_type" => "р-н"
            "city_district_type_full" => "район"
            "city_district" => "Академический"
            "settlement_fias_id" => null
            "settlement_kladr_id" => null
            "settlement_with_type" => null
            "settlement_type" => null
            "settlement_type_full" => null
            "settlement" => null
            "street_fias_id" => "25f8f29b-b110-40ab-a48e-9c72f5fb4331"
            "street_kladr_id" => "77000000000092400"
            "street_with_type" => "ул Вавилова"
            "street_type" => "ул"
            "street_type_full" => "улица"
            "street" => "Вавилова"
            "house_fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "house_kladr_id" => "7700000000009240170"
            "house_type" => "д"
            "house_type_full" => "дом"
            "house" => "19"
            "block_type" => null
            "block_type_full" => null
            "block" => null
            "flat_type" => null
            "flat_type_full" => null
            "flat" => null
            "flat_area" => null
            "square_meter_price" => null
            "flat_price" => null
            "postal_box" => null
            "fias_id" => "93409d8c-d8d4-4491-838f-f9aa1678b5e6"
            "fias_code" => "77000000000000009240170"
            "fias_level" => "8"
            "fias_actuality_state" => "0"
            "kladr_id" => "7700000000009240170"
            "geoname_id" => "524901"
            "capital_marker" => "0"
            "okato" => "45293554000"
            "oktmo" => "45397000"
            "tax_office" => "7736"
            "tax_office_legal" => "7736"
            "timezone" => "UTC+3"
            "geo_lat" => "55.7001865"
            "geo_lon" => "37.5802234"
            "beltway_hit" => "IN_MKAD"
            "beltway_distance" => null
            "metro" => array:3 [
              0 => array:3 [
                "name" => "Ленинский проспект"
                "line" => "Калужско-Рижская"
                "distance" => 0.8
              ]
              1 => array:3 [
                "name" => "Площадь Гагарина"
                "line" => "МЦК"
                "distance" => 0.8
              ]
              2 => array:3 [
                "name" => "Академическая"
                "line" => "Калужско-Рижская"
                "distance" => 1.5
              ]
            ]
            "qc_geo" => "0"
            "qc_complete" => "5"
            "qc_house" => "2"
            "history_values" => null
            "unparsed_parts" => null
            "source" => "117997, г Москва, ул Вавилова, 19"
            "qc" => "0"
          ]
        ]
        "phones" => null
      ]
    ]
  ]
]

响应描述

您可以在银行建议API页面的“响应内容”部分找到完整响应描述的表格。

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Enums\BankStatus;
use Icekristal\DaData\Enums\BankType;
use Icekristal\DaData\Facades\DaDataBank;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData prompt bank by string
   *
   * @return void
   */
   public function promptExample() : void
    {
        try {
            $dadata = DaDataBank::prompt('сбербанк', 1, [BankStatus::ACTIVE], BankType::BANK);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}

护照处理

按公安部门登记册检查

DaDataPassport::standardization(string $id) 通过公安部无效护照目录验证护照。

主要案例

  • 检查系列号和号码的格式;
  • 通过公安部无效护照目录验证护照;

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataPassport;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData passport
   *
   * @return void
   */
   public function passportExample() : void
    {
        $dadata = DaDataPassport::standardization('4509 235857');
        
        dd($dadata);
    }

}

调用参数

响应示例

array:1 [
  0 => array:4 [
    "source" => "4509 235857"
    "series" => "45 09"
    "number" => "235857"
    "qc" => 0
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataPassport;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData passport
   *
   * @return void
   */
   public function passportExample() : void
    {
        try {
            $dadata = DaDataPassport::standardization('4509 235857');

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}

护照颁发者

DaDataPassport::fns(string $passport, int $count) 通过机构代码立即填写护照签发机构。

在输入护照时,“签发机构”是最耗时的字段。书写“梅里埃共和国马里埃尔自治共和国梅里埃区警察局”这样的内容非常繁琐。因此,我们为“护照签发...”字段提供了提示。

调用示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataPassport;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData FNS
   *
   * @return void
   */
   public function fnsExample() : void
    {
        $dadata = DaDataPassport::fms('772 053', 2);
        
        dd($dadata);   
    }

}

调用参数

响应示例

array:1 [
  "suggestions" => array:2 [
    0 => array:3 [
      "value" => "ОВД ЗЮЗИНО Г. МОСКВЫ"
      "unrestricted_value" => "ОВД ЗЮЗИНО Г. МОСКВЫ"
      "data" => array:4 [
        "code" => "772-053"
        "name" => "ОВД ЗЮЗИНО Г. МОСКВЫ"
        "region_code" => "77"
        "type" => "2"
      ]
    ]
    1 => array:3 [
      "value" => "ОВД ЗЮЗИНО Г. МОСКВЫ ПАСПОРТНЫЙ СТОЛ 1"
      "unrestricted_value" => "ОВД ЗЮЗИНО Г. МОСКВЫ ПАСПОРТНЫЙ СТОЛ 1"
      "data" => array:4 [
        "code" => "772-053"
        "name" => "ОВД ЗЮЗИНО Г. МОСКВЫ ПАСПОРТНЫЙ СТОЛ 1"
        "region_code" => "77"
        "type" => "2"
      ]
    ]
  ]
]

响应描述

异常

调用方法时,您可以处理异常代码及其消息

您可以从异常消息中获取更详细的信息。

获取异常消息示例

<?php

namespace App;

use Icekristal\DaData\Facades\DaDataPassport;

/**
 * Class DaData
 * @package App\DaData
 */
class DaData
{

   /**
   * DaData FNS
   *
   * @return void
   */
   public function fnsExample() : void
    {
        try {
            $dadata = DaDataPassport::fms('772 053', 2);

            dd($dadata);
        } catch (\Exception $e) {
            dd($e->getMessage());
        }    
    }

}