ashraam / ipaidthat-php
IPaidThat PHP Api 连接器
Requires
- php: ^7.3
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-29 05:41:46 UTC
README
PHP 的 IPaidThat API(V2)包装器。
您可以管理客户、发票、发票项。
目录
安装
使用 composer
composer require ashraam/ipaidthat-php
用法
列出或筛选客户
此方法返回客户数组
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $customers = $api->customers()->list(); // With filters $customers = $api->customers()->list([ 'last_name' => 'Doe', 'email' => 'john.doe@gmail.com' ]);
可用筛选器: external_id, name, last_name, first_name, email, siren
有关类型和要求的更多信息,请参阅官方文档。
获取客户
此方法返回客户
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $customers = $api->customers()->get(123);
创建客户
此方法返回新创建的客户
此方法仅接受 Ashraam\IpaidthatPhp\Entity\Customer
实例
use Ashraam\IpaidthatPhp\Ipaidthat; use Ashraam\IpaidthatPhp\Entity\Customer; $api = new Ipaidthat('your_token'); $customer = $api->customers()->create(new Customer([ 'external_id' => 'string', 'name' => 'string', 'first_name' => 'string', 'last_name' => 'string', 'siren' => 'string', 'vat' => 'string', 'address' => 'string', 'email' => 'string', 'phone' => 'phone', 'extra' => 'string' ]));
更新客户
此方法返回更新的客户
此方法仅接受 Ashraam\IpaidthatPhp\Entity\Customer
实例
use Ashraam\IpaidthatPhp\Ipaidthat; use Ashraam\IpaidthatPhp\Entity\Customer; $api = new Ipaidthat('your_token'); $customer = $api->customers()->get(123); $customer->first_name = 'Chuck'; $customer->last_name = 'Norris'; $customer = $api->customers()->update($customer);
删除客户
此方法返回空响应
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $api->customers()->delete(123);
列出或筛选发票
此方法返回发票数组
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $invoices = $api->invoices()->list(); // With filters $invoices = $api->invoices()->list([ 'issue_date' => '2021-01-25', 'customer_id' => 123 ])
可用筛选器: external_id, type, status, issue_date, number, generated_number, due_date, sent, customer_id, sender_id, customer, sender.
有关类型和要求的更多信息,请参阅官方文档。
获取发票
此方法通过其 ID 返回发票(不包含项)
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $invoice = $api->invoices()->get(750);
创建发票
此方法返回新创建的发票
此方法仅接受 Ashraam\IpaidthatPhp\Entity\Invoice
实例
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $invoice = $api->invoices()->create(new Invoice([ 'external_id' => 'string, nullable', 'issue_date' => 'Y-m-d', 'type' => 'invoice|quote|order|credit|other', 'due_date' => 'Y-m-d', 'shipping' => 10.5, 'c_field_name_1' => 'string', 'c_field_value_1' => 'string', 'c_field_name_2' => 'string', 'c_field_value_2' => 'string', 'sender' => 'integer, nullable', 'customer' => 'interger, nullable', 'multi_page' => 'boolean', 'status' => 'draft|updating|not paid|paid', 'paid' => 'boolean' ]));
更新发票
此方法返回更新的发票
此方法仅接受 Ashraam\IpaidthatPhp\Entity\Invoice
实例
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $invoice = $api->invoices()->get(123); $invoice->due_date = '2021-12-15'; $invoice->multi_page = true; $invoice = $api->invoices()->update($invoice);
下载发票
此方法返回 PDF 的原始字符串内容
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $contents = $api->invoices()->download(123); file_put_contents('invoice.pdf', $contents);
验证发票
此方法验证发票
如果第二个参数设置为 true,则发票将发送到客户电子邮件地址(默认设置为 false
)
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $invoice = $api->invoices()->validate(123, true);
删除发票
此方法返回空响应
已验证的文件无法删除
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $api->invoices()->delete(123);
列出或筛选发票项
此方法返回发票项数组
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $items = $api->invoiceItems()->list(); // With filters $items = $api->invoiceItems()->list([ 'invoice_id' => 13255 ]);
可用筛选器: invoice_id, name, additionnal_info, invoice
获取发票项
此方法通过其 ID 返回项
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $item = $api->invoiceItems()->get(455874);
向发票添加项
此方法返回新创建的项
此方法仅接受 Ashraam\IpaidthatPhp\Entity\InvoiceItem
实例
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $item = $api->invoiceItems()->create(new InvoiceItem([ 'invoice' => $invoice_id, // Required 'name' => 'name', // Required 'unit_price' => 12.15 // Required 'quantity' => 1, 'tax_percent' => 20, 'discount_percent' => 5, 'additionnal_info' => '', 'position' => 1 ]));
更新发票项
此方法返回更新的项
此方法仅接受 Ashraam\IpaidthatPhp\Entity\InvoiceItem
实例
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $item = $api->invoiceItems()->get(455874); $item->name = 'Edited name'; $item->quantity = 6; $item = $api->invoiceItems()->update($item);
删除发票项
此方法返回空响应
use Ashraam\IpaidthatPhp\Ipaidthat; $api = new Ipaidthat('your_token'); $api->invoiceItems()->delete(455874);
贡献
欢迎提交拉取请求。对于主要更改,请首先打开一个问题来讨论您想要更改的内容。
请确保根据需要更新测试。