cba85 / wave-api-php-client
Wave GraphQL API PHP 客户端
Requires
Requires (Dev)
- phpunit/phpunit: ^9.1
- vlucas/phpdotenv: ^4.1
This package is auto-updated.
Last update: 2024-08-29 05:25:02 UTC
README
Wave API 的 PHP 客户端。
注意:我创建了此包以满足个人需求。并非所有 Wave API 操作都已实现。但您可以通过在
src/Operations
中创建新类来添加操作。
安装
$ composer require cba85/wave-api-php-client
使用方法
use Wave\Wave; $wave = new Wave('YOUR_WAVE_FULL_ACCESS_TOKEN');
可用方法
获取用户
https://developer.waveapps.com/hc/zh-cn/articles/360032552912-查询-获取用户
$optionalFields = ['user' => ['id', 'firstName']]; $user = $wave->getUser($optionalFields);
列出企业
https://developer.waveapps.com/hc/zh-cn/articles/360032908111-查询-列出企业
$optionalFields = ['pageInfo' => ['totalCount']]; $optionalArguments = ['businesses' => ['pageSize' => 25]]; $businesses = $wave->listbusinesses($optionalFields, $optionalArguments);
列出产品
https://developer.waveapps.com/hc/zh-cn/articles/360032572872-查询-分页列出产品
$wave = new Wave(getenv('WAVE_FULL_ACCESS_TOKEN')); $products = $wave->listProducts([], [], [ 'businessId' => getenv('WAVE_BUSINESS_ID'), 'page' => 1, 'pageSize' => 1 ]);
通过 ID 获取客户
https://developer.waveapps.com/hc/zh-cn/articles/360032911011-查询-通过 ID 获取客户
$optionalFields = ['customer' => ['id', 'name', 'email']]; $wave = new Wave(getenv('WAVE_FULL_ACCESS_TOKEN')); $customer = $wave->getCustomerById($optionalFields, [], [ 'businessId' => getenv('WAVE_BUSINESS_ID'), 'customerId' => getenv('WAVE_CUSTOMER_ID') ]);
创建客户
https://developer.waveapps.com/hc/zh-cn/articles/360032569232-突变-创建客户
$optionalFields = ['customer' => ['id', 'name', 'email']]; $wave = new Wave(getenv('WAVE_FULL_ACCESS_TOKEN')); $customerCreate = $wave->createCustomer($optionalFields, [], [ 'input' => [ 'businessId' => getenv('WAVE_BUSINESS_ID'), 'name' => "Santa", 'firstName' => "Saint", 'lastName' => "Nicolas", 'email' => "santa@claus.com", 'address' => [ 'city' => "North Pole", 'postalCode' => "H0H H0H", 'countryCode' => "CA" ], 'currency' => "EUR" ] ]);
更新客户
https://developer.waveapps.com/hc/zh-cn/articles/360033059491-突变-更新客户
$optionalFields = ['customer' => ['id', 'name', 'email']]; $wave = new Wave(getenv('WAVE_FULL_ACCESS_TOKEN')); $customerPatch = $wave->patchCustomer([], [], [ 'input' => [ 'id' => getenv('WAVE_CUSTOMER_ID'), 'email' => "new@email.com" ] ]);
创建发票
https://developer.waveapps.com/hc/zh-cn/articles/360019968212-API-参考
$wave = new Wave(getenv('WAVE_FULL_ACCESS_TOKEN')); $invoiceCreate = $wave->createInvoice([], [], [ 'input' => [ 'businessId' => getenv('WAVE_BUSINESS_ID'), 'customerId' => getenv('WAVE_CUSTOMER_ID'), 'status' => "DRAFT", 'items' => [ 'productId' => getenv('WAVE_PRODUCT_ID'), 'description' => "test", 'quantity' => 1, 'unitPrice' => 14.99, 'taxes' => [ 'salesTaxId' => getenv('WAVE_TAX_ID'), ] ] ] ]);
GraphQL 查询
您还可以使用后台包含的 GraphQL 客户端手动发送 GraphQL 查询。
$query = <<<'GRAPHQL' query { user { id firstName lastName defaultEmail createdAt modifiedAt } } GRAPHQL; $wave = new Wave('YOUR_WAVE_FULL_ACCESS_TOKEN'); $results = $wave->client->runRawQuery($query, false);
Wave API 文档
请参阅 Wave API 文档 进行参考。
测试
根据 .env.example
文件示例,在 .env
文件中添加 Wave 令牌和 ID 以测试 Wave API。
WAVE_FULL_ACCESS_TOKEN
: 您的 Wave 账户完整访问令牌。WAVE_BUSINESS_ID
: Wave 企业 ID,仅限测试使用。- 列出它们并选择一个使用
$ ./vendor/bin/phpunit --filter testListBusiness
- 列出它们并选择一个使用
WAVE_CUSTOMER_ID
: Wave 客户 ID,仅限测试使用。WAVE_PRODUCT_ID
: Wave 产品 ID,仅限测试使用。- 列出它们并选择一个使用
$ ./vendor/bin/phpunit --filter testListProducts
- 列出它们并选择一个使用
WAVE_TAX_ID
: 用于创建发票测试的 Wave 税务 ID。- 使用以下方法找到您的默认销售税
$ ./vendor/bin/phpunit --filter testListProducts
- 使用以下方法找到您的默认销售税
然后启动测试
$ ./vendor/bin/phpunit