darkeum/darklyy-dadata

为 Darklyy 添加与 DaData 交互的功能。

v1.0.0 2022-11-28 08:59 UTC

This package is auto-updated.

Last update: 2024-09-28 13:27:11 UTC


README

DaData Darklyy 包 - 与 DaData.ru API 交互的 PHP SDK 包

要求

  • PHP 版本:7.3, 7.4, 8.0, 8.1
  • Guzzle 版本:7.0, 7.2

安装

您可以通过 composer 安装此包

composer require darkeum/darklyy-dadata

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

php darksander vendor:publish --provider="Darkeum\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 MoveMoveIo\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 MoveMoveIo\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) 根据地址的任何部分(从地区到房屋)搜索地址(“тверская нижний 12” → “Нижегородская обл, г Нижний Новгород, ул Тверская, д 12”)。还可以根据邮政编码搜索(“105568” → “г Москва, ул Магнитогорская”)。

主要案例

  • 支持全球所有国家(在俄罗斯可以到房屋,在其他国家可以到城市)。既可以显示俄语结果(“Самара, пр-кт Металлургов”),也可以显示英语结果(“Russia, gorod Samara, prospekt Metallurgov”)。
  • 可以找到历史上的地址名称(Свердловск → Екатеринбург)和同义词(Питер → Санкт-Петербург)。
  • 搜索部分匹配(“莫斯科沼泽” → “г Москва, Болотная наб”), 但仅限于查询词的最后一词(“莫斯沼泽”无法找到)。
  • 纠正拼写错误(“萨马拉航空”)和错误的键盘布局查询(“vjcrdf” → “莫斯科”)。 -️ 将选定的地址拆分为粒度部分(从地区到公寓)。 -️ 支持地址各部分的粒度提示(地区、城市、街道、房屋)。 -️ 在特定地区、区域、城市和居民点提示地址。理解名称(“彼得格勒”),KLADR代码(“7800000800000”)和FIAS(“8f238984-812b-4bb1-850b-49749fb5c56d”)。 -️ 考虑您的位置(与IP地址城市方法相结合)。

请注意,如果您

  • 希望自动(不涉及人员)处理数据库或文件中的地址。
  • 将字符串转写,例如 moskva suhonskaja 11 → 127642г Москва, ул Сухонская, д 11

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

对于自动处理和转写,请使用 DaDataAddress::standardization(string $address) 方法。

调用参数

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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) 根据KLADR或FIAS代码确定地址。

主要案例

  • 按KLADR代码搜索,仅适用于俄罗斯;
  • FIAS代码,仅适用于俄罗斯;
  • OpenStreetMap标识符,仅适用于白俄罗斯;
  • GeoNames标识符,适用于所有其他国家。

调用参数

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\Language;
use MoveMoveIo\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) 根据城市KLADR代码确定配送服务中的城市标识符。

调用参数

调用示例

<?php

namespace App;

use MoveMoveIo\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) 根据KLADR或FIAS代码在FIAS目录中查找地址。

由于FIAS代码有时会更改,因此建议除了保存房屋的FIAS代码外,还保存地址的一行 - 否则,当FIAS代码更改时,无法恢复地址。

根据KLADR代码,方法仅搜索到街道,因为FIAS中没有房屋的KLADR代码。

调用参数

调用示例

<?php

namespace App;

use MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
...
$data = DaDataName::prompt('Викто', 2, Gender::UNKNOWN, [Parts::NAME]);

名字和姓氏

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

名字和姓氏

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

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\Gender;
use MoveMoveIo\DaData\Enums\Parts;
use MoveMoveIo\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());
        }
    }

}

处理电子邮件(email)地址

Email

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

主要案例

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

调用参数

调用示例

<?php

namespace App;

use MoveMoveIo\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 MoveMoveIo\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());
        }
    }

}

Email 提示

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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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)查找公司或个体工商户。返回公司、股东、负责人、税务、养老金和社保、财务、许可证、小微企业名录和其他公司信息。

根据统一纳税人登记号或营业执照号查找公司或个体工商户。返回公司的所有可用信息,与仅返回基本字段的建议方法不同。

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\BranchType;
use MoveMoveIo\DaData\Enums\CompanyType;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\BranchType;
use MoveMoveIo\DaData\Enums\CompanyType;
use MoveMoveIo\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) 帮助人在网页表单或应用程序中快速输入组织的详细信息。

查找公司和个体工商户

  • 根据统一纳税人登记号、注册号和营业执照号;
  • 名称(全称和简称);
  • 个体工商户的姓名(对于个体工商户);
  • 公司的负责人姓名;
  • 街道地址;

主要案例

  • 在单个请求中根据统一纳税人登记号、名称和地址进行搜索(“7736050003 Газ”→“股份有限公司 Gazprom”,“瓦维洛夫大街银行”→“股份有限公司 Сбербанк”)。
  • 如果指定了注册号,则查找特定分支机构(“银行 540602001”→“股份有限公司 Сбербанк Siberian”)。
  • 理解连字符和分号(“阿尔法银行”=“阿尔法-银行”)。
  • 根据统一纳税人登记号/注册号的部分匹配进行搜索(“77094209”→“有限责任公司 Акварель”)和名称(“罗涅”→“股份有限公司 НК «Роснефть」”)。
  • 提示仅限于组织或仅限于个体工商户,或两者都提示。可以搜索仅限于活跃或已清算的公司。可以限制提示特定俄罗斯地区。
  • 考虑您的位置信息(与根据IP地址确定地址方法相结合)。
  • 从企业信用信息公示系统(ЕГРЮЛ)返回公司的基本信息:简称和全称、组织形式、地址、统一社会信用代码、纳税人识别号、注册号、登记机关、组织状态、法定代表人和职务。
  • 根据纳税人识别号查询组织方法结合使用时,返回额外的信息:员工数量、所有行业分类代码、税务、养老和失业保险基金、社会安全基金信息、文件和许可证、发起人和负责人、财务指标、中小企业名录。

此方法不适用于

  • 50%的公司,税务机关目前不报告分支机构的注册号。可以通过纳税人识别号、分支机构的城市和街道找到这些分支机构。例如,“7724261610 москва мясницкая”→“俄罗斯联邦国有单位“俄罗斯邮政”(莫斯科市)”。

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\CompanyStatus;
use MoveMoveIo\DaData\Enums\CompanyType;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\CompanyStatus;
...
$status = [
    CompanyStatus::ACTIVE
];

仅搜索正在清算和清算的公司

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

构建type - 限制组织类型。

仅按法人实体类型搜索

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

仅按个体工商户类型搜索

...
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\CompanyStatus;
use MoveMoveIo\DaData\Enums\CompanyType;
use MoveMoveIo\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 禁止”

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\CompanyScope;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\CompanyScope;
use MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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;
  • 纳税人识别号;
  • 纳税人识别号+注册号;
  • 名称;

主要案例

  • 根据类型过滤:银行、非营利组织、分支机构,以及RKC和其他组织;
  • 可以搜索有效和清算中的银行;
  • 考虑您的位置信息(城市级地理定位);

调用示例

<?php

namespace App;

use MoveMoveIo\DaData\Enums\BankStatus;
use MoveMoveIo\DaData\Enums\BankType;
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\BankStatus;
...
$status = [
    BankStatus::ACTIVE
];

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

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

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

仅按银行和分支机构类型搜索

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

仅按RKC/GRKTS类型搜索

...
use MoveMoveIo\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 MoveMoveIo\DaData\Enums\BankStatus;
use MoveMoveIo\DaData\Enums\BankType;
use MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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 MoveMoveIo\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());
        }    
    }

}