fiskaly/fiskaly-sdk-php

此包已被弃用且不再维护。未建议替代包。

fiskaly Cloud-TSE SDK for PHP

1.2.200 2021-05-12 16:38 UTC

This package is auto-updated.

Last update: 2022-12-12 20:33:37 UTC


README

fiskaly SDK 包含一个 HTTP 客户端,该客户端需要1 访问 kassensichv.io API,该 API 实现了一个基于云的、虚拟的 CTSS(认证技术安全系统)/ TSE(技术安全设备),这是根据德国 KassenSichV(《现金安全规定》)定义的。

支持的版本

  • PHP 7.1+

特性

  • 自动处理身份验证(获取/刷新 JWT 并在 401 错误时重新认证)。
  • 自动在失败时重试(服务器错误或网络超时/问题)。
  • 自动解析和序列化请求和响应体。
  • 未来:[1] 遵循关于 BSI CC-PP-0105-2019 的合规性,该合规性要求本地执行 SMA 组件以创建签名日志消息。
  • 未来:自动离线处理(根据 第 146a 条 AO 应用条例 收集和记录)

集成

Composer

PHP SDK 可以通过 Composer 下载。

Packagist - 包仓库

在项目目录的 shell 中执行此命令

$ composer require fiskaly/fiskaly-sdk-php

或者,您可以手动将包添加到您的 composer.json 文件中

"require": {
    "fiskaly/fiskaly-sdk-php": "*"
}

然后运行

$ composer install 

最后,请确保在您的代码中包含自动加载器

<?php
require_once('vendor/autoload.php');

服务

除了 SDK 之外,您还需要 fiskaly 服务。按照以下步骤将服务集成到您的项目中

  1. 访问 https://developer.fiskaly.com/downloads#service
  2. 下载适合您平台的相应服务构建版本
  3. 启动服务

用法

示例

<?php
require __DIR__ . '\\vendor\\autoload.php';
use FiskalyClient\FiskalyClient;

/** initialize the fiskaly API client class using credentials */
try {
    $client = FiskalyClient::createUsingCredentials('https://:8080/invoke', $_ENV["FISKALY_API_KEY"], $_ENV["FISKALY_API_SECRET"], 'https://kassensichv.io/api/v1');
} catch (Exception $e) {
    exit($e);
}
/** get version of client and SMAERS */
try {
    $version = $client->getVersion();
    echo "Version: ", $version, "\n\n";
} catch (Exception $e) {
    exit($e);
}

创建 FiskalyClient 对象的另一种方法是使用 context 字符串。您可以通过 getContext 方法获取它,并通过 $_SESSION 变量或持久化到缓存或数据库中保存它。

<?php
/** initialize the fiskaly API client class using context */
try {
    $client = FiskalyClient::createUsingContext('https://:8080/invoke', $_SESSION["FISKALY_CONTEXT"]);
} catch (Exception $e) {
    exit($e);
}

客户端配置

该SDK基于fiskaly Client构建,该Client可以通过SDK进行配置

这样做的一个原因是启用调试模式

启用调试模式

以下代码片段展示了如何在客户端中启用调试模式。

<?php
/** configure client */
try {
    $config_params = array(
        'debug_level' => 4,
        'debug_file' =>  __DIR__ . '../../fiskaly.log',
        'client_timeout' =>  5000,
        'smaers_timeout' =>  2000,
    );
    $config = $client->configure($config_params);
    echo "Configuration: ", $config, "\n\n";
} catch (Exception $e) {
    exit($e);
}

相关内容