dcodegroup / laravel-myob-oauth
这是一个简单的包,用于处理所有项目中与MYOB的连接。为UI和MYOB提供回调端点
0.1.8
2024-03-14 00:07 UTC
Requires
- php: ^8.0|^8.1
- laravel/framework: ^8.0|^9.0
- league/oauth2-client: 1.*|2.*
- spatie/laravel-log-dumper: ^1.4
Requires (Dev)
- laravel/pint: ^1.2
README
此包提供了在大多数项目中使用的标准MYOB连接功能。
安装
您可以通过composer安装此包
composer require dcodegroup/laravel-myob-oauth
然后运行安装命令。
php artsian laravel-myob:install
这将发布配置文件和迁移文件。
运行迁移
php artsian migrate
配置
大部分配置已经设置为合理的默认值。但是,您可以查看位于config/laravel-myob-oauth.php
的配置文件并根据需要调整
用法
此包提供了一些端点供您使用。运行以下命令以查看完整列表
php artsian route:list --name=myob
+--------+----------+-------------------------+--------------------+-------------------------------------------------------------------------+----------------------------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------------------------+--------------------+-------------------------------------------------------------------------+----------------------------------+
| | GET|HEAD | myob | myob.index | Dcodegroup\LaravelMyobOauth\Http\Controllers\XeroController | web |
| | | | | | App\Http\Middleware\Authenticate |
| | GET|HEAD | myob/auth | xero.auth | Dcodegroup\LaravelMyobOauth\Http\Controllers\XeroAuthController | web |
| | | | | | App\Http\Middleware\Authenticate |
| | GET|HEAD | myob/callback | xero.callback | Dcodegroup\LaravelMyobOauth\Http\Controllers\XeroCallbackController | web |
| | | | | | App\Http\Middleware\Authenticate |
| | POST | myob/tenants/{tenantId} | xero.tenant.update | Dcodegroup\LaravelMyobOauth\Http\Controllers\SwitchXeroTenantController | web |
| | | | | | App\Http\Middleware\Authenticate |
+--------+----------+-------------------------+--------------------+-------------------------------------------------------------------------+----------------------------------+
更多信息
example.com/myob
这是您生成授权MYOB链接的位置。这是默认受保护的认证中间件,但您可以在配置中修改。这是您在管理界面中链接到的位置,可能还有新窗口
example.com/myob/callback
这是xero在发生oauth后重定向回的路由。它不包括在中间件认证中。您也可以在配置中更改此列表。
BaseMyobService
此包位于Dcodegroup\LaravelMyobOauth\BaseMyobService
的BaseMyobService
类
因此,您的应用程序应有自己的MyobService扩展此基类,因为初始化已经完成。
<?php namespace App\Services\Myob; use Dcodegroup\LaravelMyobOauth\MyobService; use XeroPHP\Models\Accounting\Contact; class MyobService extends MyobService { /** * @inheritDoc */ public function createContact(object $data) { /** * $this->>xeroClient is inherited from the BaseXeroService */ $contact = new Contact($this->xeroClient); $contact->setName($data->name . ' (' . $data->code . ')') ->setFirstName($data->name) ->setContactNumber($data->code) ->setAccountNumber($data->code) ->setContactStatus(Contact::CONTACT_STATUS_ACTIVE) ->setEmailAddress($data->email) ->setTaxNumber('ABN') ->setDefaultCurrency('AUD'); $contact = head($contact->save()->getElements()); return $this->xeroClient->loadByGUID(Contact::class, $contact['ContactID']); } }