lacodix / sevdesk-saloon
基于Saloon的用于消费SevDesk API的PHP包
Requires
- php: ^8.2
- saloonphp/saloon: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- nunomaduro/phpinsights: ^2.11
- phpstan/phpstan: ^1.12
- rector/rector: ^1.2
README
文档
** 进行中 _ 文档尚未准备就绪 **
您可以在我们的文档网站上找到此包的完整文档:我们的文档网站.
此包可以帮助您使用PHP项目消费SevDesk API。该包基于Saloon https://api.sevdesk.de/
安装
composer require lacodix/sevdesk-saloon
快速入门
首先创建一个API连接器。您必须提供一些配置数据,以使sevdesk api正常工作。有一些设置您必须在所有请求中设置,否则,例如默认税率以及您的API用户ID。
use Lacodix\SevdeskSaloon\SevdeskSaloon; $sevdeskSaloon = new SevdeskSaloon( $api_token, // Your API Token - get it in your Sevdesk account [ 'sevUserId' => 12345678, // the Sevdesk Uer ID - needed to create invoices 'taxRate' => 19, 'taxText' => 'MwSt 19%', // only in version 1.0 'taxType' => 'default', // only in version 1.0 'taxRule' => 1, // only in version 2.0 'currency' => 'EUR', 'invoiceType' => 'RE', ] );
获取您的API用户ID
不幸的是,Sevdesk在UI上没有显示用户ID。因此,您必须在没有配置的情况下第一次使用API。您只需运行以下代码(您需要一个有效的令牌)。
$sevdeskSaloon = new SevdeskSaloon($api_token); $sevdeskSaloon->sevUsers->get();
这将返回您的账户中所有sevUsers的数组。取ID并将其保存到您的配置中。
[ [ "id" => "1234567", "objectName" => "SevUser", "additionalInformation" => null, "create" => ..., ... ] ]
消费API
使用连接器,您可以消费所有现有的API资源
$sevdeskSaloon->contact()->get(); $sevdeskSaloon->contact()->create($contactType, $contactData); $sevdeskSaloon->invoice()->get(); $sevdeskSaloon->invoice()->create($sevContactId, $items, $data); $sevdeskSaloon->invoice()->sendViaEmail($invoiceId, $data);
在测试中进行Mock API调用
由于此包基于Saloon,您可以使用MockClient模拟测试中的所有请求。
有关更多信息,请参阅Saloon文档。
贡献
请在提交之前运行以下命令并解决潜在问题,并在添加新功能时考虑添加测试。
composer rector:test composer insights composer csfixer:test composer phpstan:test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
鸣谢
我们第一次使用Sevdesk API时使用了Martin创建的包laravel-sevdesk-api。尽管如此,我们遇到了一些问题,例如当下载发票作为PDF时,Martin通过直接打印pdf解决了这个问题,而我们要在我们的端保存PDF。最后,使用默认的Guzzle客户端进行模拟测试的可测试性是一个不容忽视的问题,因此我们决定基于Saloon创建自己的包,并且没有依赖Laravel,这样您也可以在其他基于composer的PHP项目中使用它。一些部分仍然基于Martin的包,如Countries-Enum。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。