heyday / silverstripe-vend
为 SilverStripe 提供 Vend API 集成
Requires
- vendapi/vendapi: 1.5
README
本模块是 @brucealdridge 的 VendAPI 包 的包装,用于 Silverstripe。
这带来了 OAuth2 和令牌管理的实现。
要求
- Silverstripe 4+
- 需要 vendapi/vendapi 包
安装
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/build
和 flush
后,您应该有一个新的菜单 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(); }