altravia/openapi

该包的最新版本(1.1.0)没有可用的许可证信息。

OpenApi PHP 库(https://openapi.it)

1.1.0 2022-01-10 08:18 UTC

This package is auto-updated.

Last update: 2024-09-24 17:33:54 UTC


README

1. 安装

composer require altravia/openapi

2. 用法

2.1. 类的实例

require_once 'vendor/autoload.php';

$openapi = new \OpenApi\OpenApi($scopes, $user, $apikey, $environment);

其中 $scopes 是一个字符串数组或对象,格式如下

$scopes = [
    "GET:ws.ufficiopostale.com/comuni",
    [
        "domain"=>"ws.ufficiopostale.com", 
        "method"=>"comuni",
        "mode"  =>"GET"
    ]
];

...而 $environment 是选择的环境,可以是 'test'(默认)或 'production'

OpenApi 将在需要时自动检索或生成新的令牌。

此时,根据指定的范围创建以下对象

// Ogni oggetto verrá creato solo se disponibile nello scope.
$openapi->ufficiopostale;
$openapi->comuni;
$openapi->imprese;
$openapi->visengine;
$openapi->marcheTemporali;
$openapi->geocoding;
$openapi->SMS;
$openapi->firmaDigitale;
$openapi->pecMassiva;

它们可以用以下方式使用

$this->openapi->ufficioposale->getCitiesByCap('00132');

2.2. 示例

require_once 'vendor/autoload.php';

// Dichiaro gli scopes necessari
$scopes = [
    'GET:comuni.openapi.it/cap',
    'GET:imprese.altravia.com/advance',
];

$openapi = new OpenApi\OpenApi($scopes, 'my_username','my_api_key', 'test');

// Comuni: prendi informazioni sul cap 00132
$cap = $openapi->comuni->getCitiesByCap('00132');

// Imprese: prendi informazioni su una specifica impresa
$impresa = $openapi->imprese->getByPartitaIva('12485671007');

// Ufficio Postale: ottieni informaizoni sul tracking
$track = $this->openapi->ufficiopostale->track('123456789'); 

3. 通用模块

允许获取关于城市和省份的信息。

  • getCitiesByCap
  • getComuneByCatasto
  • getRegioni
  • getProvince
  • getComuni

3.1. 示例

$provincia = 'RM';
$comuni = $this->openapi->comuni->getComuni($provincia);

var_dump($comuni['comuni']); 
/*

["nome_provincia"]=>
  string(4) "Roma"
  ["sigla_provincia"]=>
  string(2) "RM"
  ["regione"]=>
  string(5) "Lazio"
  ["comuni"]=>
  array(121) {
    [0]=>
    string(6) "Affile"
    ...
*/

4. 企业模块

4.1. 使用方法

企业模块公开以下方法

  • getByPartitaIva
  • getClosed
  • getVatGroup
  • getPec
  • getBySearch

对于 getBySearchgetByPartitaIva 需要访问 /advance 范围

4.2. 示例

我们使用 getBySearch 来搜索罗马以 Altrav 开头的公司

$autocomplete = $this->openapi->imprese->getBySearch('Altrav*', 'RM');

/*
 [0]=>
  object(stdClass)#41 (10) {
    ["piva"]=>
    string(11) "12485671007"
    ["cf"]=>
    string(11) "12485671007"
    ["denominazione"]=>
    string(20) "ALTRAVIA SERVIZI SRL"
 [1]=>
  object(stdClass)#42 (10) {
    ["id"]=>
    string(24) "4242424242"
    ["denominazione"]=>
    string(18) "xxx Altravia Esempio 2"
    ...
 */

5. 时间标记模块

  • availability
  • checkLotto
  • purchase

5.1. 示例

// Controlliamo la disponibilitá di una marca di inforcert o aruba
$disponibilita = $this->openapi->marcheTemporali->availability('infocert', 1);

// Se le marche sono disponibili, acquistiamone una
if ($disponibilita->availability > 0) {
    try {
        $marca = $this->openapi->marcheTemporali->purcahse('infocert', 1);
    } catch (\OpenApi\classes\exception\OpenApiMarcheTemporaliException $e) {
        error_log(var_dump($e));
    }
}

6. SMS 模块

  • getRecipients
  • getMessage
  • sendMore
  • sendOne

6.1. 发送 SMS

要发送 SMS,首先定义目标收件人

$recipient = '+39-3939989741';
// OR
$recipients = [
    [
        'number' => '+39-3939989741', 
        'fields' => ['nome' => 'NomeDestinatario']
    ]
];

现在我们可以发送 SMS

try {
    $priority = 1;
    $options = null;
    $singleSms = $this->openapi->SMS->sendOne('Nome del mittente', $recipient, 'lorem ipsum', null, $priority, $options);
} catch (\OpenApi\classes\exception\OpenApiConnectionsException $e) {
    throw 'Non è stato possibile recapitare il messaggio';
}

我们还可以独立指定前缀

$this->openapi->SMS->sendOne('Nome del mittente', '3939989741', 'lorem ipsum', '+42', 1, null);

或者传递选项

$options = ['timestamp_send' => '2021-04-20']
$this->openapi->SMS->sendOne('Nome del mittente', '3939989741', 'lorem ipsum', '+42', 1, $options);

7. Visengine 模块

首先,设置我们想要请求的证明的哈希值

// https://developers.openapi.it/services/visengine
$this->openapi->visengine->setHash($visura->hash);

此时,我们可以调用 createRequest,它将返回一个空的证明实例,我们将创建所需结构的证明

$request = $this->openapi->visengine->createRequest();

接下来完成对象,当准备好后可以传递给sendRequest

$request->setJson(['$0' => 'abcd', '$1' => '12485671007']);
                    // url di callback,  oggetto con dati aggiuntivi, metodo
$request->setCallbackData('https://example.com', new stdClass(), 'POST');
$visura = $this->openapi->visengine->sendRequest($request);