heyday/silverstripe-vend

为 SilverStripe 提供 Vend API 集成

安装次数: 1,776

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 23

分支: 3

类型:silverstripe-vendormodule

v1.0.0 2015-08-21 04:34 UTC

This package is auto-updated.

Last update: 2024-08-27 05:01:13 UTC


README

本模块是 @brucealdridge 的 VendAPI 包 的包装,用于 Silverstripe。

这带来了 OAuth2 和令牌管理的实现。

要求

安装

composer require heyday/silverstripe-vend

##配置

首先,您需要注册 Vend 开发者账户并创建一个应用:https://developers.vendhq.com/

完成后,请在 VendAPI 目录下设置您的详细信息到一个 yml 配置文件中。

例如

mysite/_config/vend.yml:

VendAPI\VendAPI:
  clientID: g6ohGHJgJHKtuyfUTYfjVjhGhfTUYfTU
  clientSecret: iyGFktyFKUYlguKHkjHUHUiGHKuHGKj
  redirectURI: admin/vend/authorise

同时,将您在 Vend 应用中设置的作为 redirectURI 的路由映射到 Heyday\Vend\SilverStripe\Authorise_Controller。此控制器处理 Vend API 在您首次授权应用连接到您的商店时返回的数据。

例如,如果我已经将 http://mysite.com/admin/vend/authorise 设置为我的 Vend 应用中的 RedirectURI

mysite/_config/routing.yml :

---
Name: vendroutes
After: 'framework/routes#coreroutes'
---
Director:
  rules:
    'admin/vend/authorise': 'Heyday\Vend\SilverStripe\Authorise_Controller'
---

执行 dev/buildflush 后,您应该有一个新的菜单 Vend Admin,在那里完成设置的下一步。

您(或商店的所有者)需要填写商店名称,然后会出现一个链接。选择链接后,您将看到一个请求,要求应用访问您的商店。一旦授权,第一个令牌将存储在数据库中,包括刷新令牌,然后开始循环。

每次连接实例化时,都会运行一个检查以查看令牌是否已过期。如果需要,将颁发一个新的令牌。它对 refresh_token 做同样的操作。

实现

要使用它,只需在需要的地方注入 Heyday\Vend\Connection 并遵循 VendAPI 包 的文档以使用其他方法。

例如

注入配置

SilverStripe\Core\Injector\Injector:
  Your\Namespace\SomePageController:
    properties:
      VendConnection: '%$Heyday\Vend\Connection'

在 SomePageController 中的实现

    protected $vendConnection;

    public function setVendConnection($vendConnection)
    {
        $this->vendConnection = $vendConnection;
    }

    public function VendTest()
    {
        $products = $this->vendConnection->getProducts();
    }