rwis / fortie
启用简单的Fortnox集成
Requires
- guzzlehttp/guzzle: ^6.2.3
- sabre/xml: ^1.2
Requires (Dev)
- phpunit/phpunit: 4.0.*
README
Fortie
一个简单的 Fortnox PHP包,包括Laravel Service Provider,便于在Laravel中集成。
安装
安装此包的最简单方法是使用Composer。
composer require rwis/fortie dev-master
或者将 "rwis/fortie": "dev-master"
添加到您的 composer.json
文件中。
如果您没有Composer,应该 安装它。
Laravel
在Laravel中,最简单使用Fortie的方法是添加ServiceProvider,在 config/app.php
中将以下行添加到 providers
数组。这是在可以使用任何Artisan命令之前所需的。
<?php return [ ... 'providers' => [ ... Rwis\Fortie\FortieServiceProvider::class, ], ... ];
配置
在Laravel中,您可以使用 php artisan vendor:publish --provider="Rwis\Fortie\FortieServiceProvider" --tag="config"
命令发布配置文件,之后该文件应该可在 app/fortie.php
中找到。使用Fortnox在注册时提供的详细信息。
在注册时,访问令牌 不会提供,您需要使用您的 授权码 和 客户端密钥 分别获取。更多关于此过程的信息请参阅 这里。
配置文件可能看起来像这样
<?php return [ 'default' => [ // Your specific access token 'access_token' => '<your access token>', // Your specific client secret 'client_secret' => '<your client secret>', // The type you're sending 'content_type' => 'application/json', // The type you're accepting as response 'accepts' => 'application/json', // The URL to the Fortnox API 'endpoint' => 'https://api.fortnox.se/3/', ], ];
请注意,XML目前尚不完全支持,该包可以读取并将Fortnox的响应尝试转换为XML结构,但在向Fortnox发送数据时,它始终以json格式发送。
用法
当您包含ServiceProvider时,您可以在您的BaseController中使用依赖注入来使fortie在所有控制器中可用。
[...] use Rwis\Fortie\Fortie; abstract class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; protected $fortie; public function __construct(Fortie $fortie) { $this->fortie = $fortie; } }
只需调用 $this->fortie->...
来访问Fortie。
class MyController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { dd($this->fortie->accounts()->all()); } [...] }
当然,您也可以将Fortie注入到任何Laravel控制器方法中,以限制应用程序对Fortnox的访问。
[...] use Rwis\Fortie\Fortie; class MyController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Fortie $fortie) { dd($fortie->accounts()->all()); } [...] }
非Laravel
在Laravel中,ServiceProvider负责使用配置文件设置Fortie,如果在外部使用,则需要使用Fortnox提供的配置实例化Fortie。
$fortie = new Fortie( $endpoint, $access_token, $client_secret, $content_type, $accepts );
访问令牌
要获取访问令牌(用于您的集成),您需要使用 authorization-code
请求它。
在Laravel中,您可以使用Artisan命令轻松获取访问令牌。
php artisan fortie:activate code=<your authorization code>
提供商
该包已设置多个提供商,每个提供商都映射到REST API中的特定端点。例如,账户 映射到 accounts()
方法。
$arrayOfAccounts = $fortie->accounts()->all();
有关所有提供商的用法详情,请参阅 Wiki。
目前实现的提供商
- 缺勤交易
- 账户图表
- 账户
- 存档
- 文章文件连接
- 文章
- 文章URL连接
- 出勤交易
- 公司设置
- 合同应计
- 合同
- 合同模板
- 成本中心
- 货币
- 客户
- 员工
- 财务年度
- 收件箱
- 发票应计
- 发票付款
- 发票
- 标签
- 锁定期
- 支付方式
- 报价
- 订单
- 预定义账户
- 预定义凭单系列
- 价格表
- 价格
- 打印模板
- 项目
- 薪资交易
- 时间表
- 供应商发票应计
- 供应商发票外部URL连接
- 供应商发票文件连接
- 供应商发票付款
- 供应商发票
- 供应商
- 税收减免
- 交货条款
- 付款条款
- 可信的电子邮件发送者
- 单位
- 凭证文件连接
- 凭证
- 凭证系列
- 交货方式
依赖项
本包使用以下依赖项构建。
故障排除
如果您遇到cURL错误(特别是cURL错误56
)的问题,您可以在Stackoverflow上查看[这个答案](http://stackoverflow.com/a/26538127/388320)。
许可证
版权所有 2015 安德烈亚斯·戈尔松
根据Apache许可证2.0版(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“现状”分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言和限制,请参阅许可证。