avalara / avataxclient
Avalara AvaTax 商业税务计算和处理的客户端库。使用 REST v2 API。
24.8.2
2024-08-30 16:22 UTC
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: ~6|~7
- psr/log: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
- phpunit/phpunit: >=5.7
- dev-master
- 24.8.2.x-dev
- 24.8.2
- 24.8.0.x-dev
- 24.6.4
- 24.6.3
- 24.6.1
- 24.4.2
- 24.2.0
- 23.11.0
- 23.10.1
- 23.8.1
- 23.7.0
- 23.6.2
- 23.6.1
- 23.5.0
- 23.4.2
- 23.4.1
- 23.3.1
- 23.3.0
- 23.2.0
- 23.1.0
- 22.11.0
- 22.10.0
- 22.9.0
- 22.8.0
- 22.7.0
- 22.6.1
- 22.5.0.x-dev
- 22.5.0
- 22.3.1
- 22.3.0.x-dev
- 22.3.0
- 22.2.1.x-dev
- 22.2.1
- 22.2.0.x-dev
- 22.2.0
- 21.12.1
- 21.12.0.x-dev
- 21.12.0
- 21.10.0.x-dev
- 21.10.0
- 21.9.0.x-dev
- 21.9.0
- 21.8.0.x-dev
- 21.8.0
- 21.7.1.x-dev
- 21.7.1
- 21.6.0.x-dev
- 21.6.0
- 21.3.1.x-dev
- 21.3.1
- 21.3.0.x-dev
- 21.3.0
- 21.1.1
- 20.12.1
- 20.12.0.x-dev
- 20.9.0.x-dev
- 20.9.0
- 20.8.0.x-dev
- 20.8.0
- 20.7.0
- 20.6.0.x-dev
- 20.6.0
- 20.5.0.x-dev
- 20.5.0
- 20.1.1
- 20.1.0
- 19.12.1
- 19.11.x-dev
- 19.11.0
- 19.10.x-dev
- 19.10.0
- 19.9.0.x-dev
- 19.9.0
- 19.8.0.x-dev
- 19.8.0
- 19.7.0.x-dev
- 19.7.0.1
- 19.7.0.1-dev
- 19.7.0
- 19.6.0.x-dev
- 19.6.0
- 19.5.0.x-dev
- 19.5.0
- 19.4.0.x-dev
- 19.4.0
- 19.3.0.x-dev
- 19.3.0
- v19.2.0.x-dev
- 19.2.0
- v19.1.1.x-dev
- 19.1.1
- 18.12.0
- 18.10.5.260
- 18.9.0.234
- 18.5.1.208
- 18.4.4.191
- 18.4.3.191
- 18.3.1.176
- 18.2.x-dev
- 18.2.0.167
- 18.1.x-dev
- 18.1.2.x-dev
- 18.1.2.161
- 17.12.0.149
- 17.12.0.147
- 17.8.1.x-dev
- 17.8.1.120
- 17.7.0.96
- 17.5.0.67
- 2.17.4.58
- 2.17.3.48
- 2.17.2.43
- 2.17.1.3
- 2.17.1
- 2.2.10.x-dev
- 2.2.9.x-dev
- 2.2.8.x-dev
- 2.2.7.x-dev
- 2.2.6.x-dev
- 2.2.5.x-dev
- 2.2.4.x-dev
- 2.2.3.x-dev
- 2.2.2.x-dev
- 1.1.5.x-dev
- 1.1.4.x-dev
- 1.1.3.x-dev
- 1.1.2.x-dev
- 1.1.1.x-dev
- 0.0.2.x-dev
- 0.0.1.x-dev
- 0.0.0.x-dev
- dev-AS-145
- dev-php-github-174
- dev-AS-115
- dev-AS-114
- dev-JsonParseHandling
- dev-testTest
- dev-update-21.1.1
- dev-20-7-update
- dev-timeoutUpdate
- dev-20.1-Release
- dev-Fixed19.12
- dev-19-oct
This package is auto-updated.
Last update: 2024-08-30 16:25:54 UTC
README
此GitHub仓库是Avalara的全球一流税务服务AvaTax的PHP SDK。它使用AvaTax REST v2 API,这是一个完整的REST实现,提供对AvaTax所有功能的单一客户端。有关AvaTax REST v2的更多信息,请访问Avalara开发者网络或查看在线Swagger文档。
构建状态
Packagist
Travis-CI
安装PHP SDK
AvaTax PHP SDK 以Composer包的形式提供。
要从Composer使用AvaTax PHP SDK
- 将
composer.json
文件添加到您的项目中,并链接到AvaTax
{ "require": { "avalara/avataxclient": "*" } }
- 运行
composer install
下载最新版本。
使用PHP SDK
PHP SDK使用流畅的界面来定义与AvaTax的连接,并执行API调用以计算交易中的税务。以下是一个连接到API的示例。
<?php // Include the AvaTaxClient library require __DIR__ . '/vendor/autoload.php'; use Avalara\AvaTaxClient; // Create a new client $client = new Avalara\AvaTaxClient('phpTestApp', '1.0', 'localhost', 'sandbox'); $client->withSecurity('myUsername', 'myPassword'); // If I am debugging, I can call 'Ping' to see if I am connected to the server $p = $client->ping(); echo('<h2>Ping</h2>'); echo('<pre>' . json_encode($p, JSON_PRETTY_PRINT) . '</pre>'); if ($p->authenticated == true) { echo '<p>Authenticated!</p>'; } // Create a simple transaction for $100 using the fluent transaction builder $tb = new Avalara\TransactionBuilder($client, "DEFAULT", Avalara\DocumentType::C_SALESINVOICE, 'ABC'); $t = $tb->withAddress('SingleLocation', '123 Main Street', null, null, 'Irvine', 'CA', '92615', 'US') ->withLine(100.0, 1, null, "P0000000") ->create(); echo('<h2>Transaction #1</h2>'); echo('<pre>' . json_encode($t, JSON_PRETTY_PRINT) . '</pre>'); // Now, let's create a more complex transaction! $tb = new Avalara\TransactionBuilder($client, "DEFAULT", Avalara\DocumentType::C_SALESINVOICE, 'ABC'); $t = $tb->withAddress('ShipFrom', '123 Main Street', null, null, 'Irvine', 'CA', '92615', 'US') ->withAddress('ShipTo', '100 Ravine Lane', null, null, 'Bainbridge Island', 'WA', '98110', 'US') ->withLine(100.0, 1, null, "P0000000") ->withLine(1234.56, 1, null, "P0000000") ->withExemptLine(50.0, null, "NT") ->withLine(2000.0, 1, null, "P0000000") ->withLineAddress(Avalara\TransactionAddressType::C_SHIPFROM, "123 Main Street", null, null, "Irvine", "CA", "92615", "US") ->withLineAddress(Avalara\TransactionAddressType::C_SHIPTO, "1500 Broadway", null, null, "New York", "NY", "10019", "US") ->withLine(50.0, 1, null, "FR010000") ->create(); echo('<h2>Transaction #2</h2>'); echo('<pre>' . json_encode($t, JSON_PRETTY_PRINT) . '</pre>'); ?>
如何在PHP SDK中启用日志记录
- SDK使用PSR-3,这是PHP中用于日志记录功能的通用接口。
- 客户端将像Monolog、Analog等一样在他们的端点实现绑定,以启用日志记录。
- 默认情况下,没有启用日志记录。
- 日志消息中所有属性都在 LogObject.php 中。
- 要启用或禁用请求和响应对象的日志记录,有一个布尔变量 logRequestAndResponseBody 作为构造函数参数。默认设置为 FALSE
- 日志输出为 JSON 格式。
可以通过在客户端添加日志库(如Monolog)来启用日志记录。这可以通过在composer.json中添加依赖项和版本来实现
"require": {
....
....
"monolog/monolog": "^3.2"
},
仅添加上述配置后,日志框架就会识别绑定。现在,我们必须将日志对象作为AvaTaxClient的构造函数参数提供。可以这样做:
// Include the packages/classes we would need to create the logger object
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\JsonFormatter;
use Monolog\Processor\PsrLogMessageProcessor;
以下示例展示了如何添加配置以在控制台(stdout)显示日志
$stream_handler = new StreamHandler("php://stdout");
$stream_handler->setFormatter(new JsonFormatter());
// Follow PSR-3 specificaiton.
$psrProcessor = new PsrLogMessageProcessor();
$logger = new Logger('appLogger', [$stream_handler], [
$psrProcessor,
]);
// Create a new client
$client = new Avalara\AvaTaxClient('phpTestApp', '1.0', 'localhost', 'sandbox',[], $logger, true);
这应该会将日志添加到SDK,并将日志显示在控制台上。如果我们想使用其他配置,例如将日志存储在文件中,则handler(在上面的示例中为StreamHandler)需要相应地进行更改。