dcodegroup/laravel-myob-oauth

这是一个简单的包,用于处理所有项目中与MYOB的连接。为UI和MYOB提供回调端点

0.1.8 2024-03-14 00:07 UTC

This package is auto-updated.

Last update: 2024-09-25 11:50:29 UTC


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\BaseMyobServiceBaseMyobService

因此,您的应用程序应有自己的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']);
    }

}