bibliopolis / event-notification-php-sdk
用于处理eBay事件通知的PHP SDK。Bibliopolis旨在为额外的通知端点添加新架构,并修复原始存储库中存在的问题。
Requires
- guzzlehttp/guzzle: ^7.4.3
- lrucache/lrucache: master-dev
- slim/psr7: ^1.4
- slim/slim: 4.*
- spatie/async: ^1.5
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2024-09-24 13:58:50 UTC
README
通过通知,将业务时刻传达给所有感兴趣的听众,即这些事件流的订阅者。eBay最新的通知有效负载也使用ECC签名头部进行加密。
此PHP SDK旨在简化处理eBay通知。应用程序接收订阅的消息,使用X-EBAY-SIGNATURE头部验证消息的完整性,并将处理委托给自定义的可配置MessageProcessor以插入特定于用例的处理逻辑。
目录
通知
此SDK旨在用于使用ECC签名和JSON有效负载的最新eBay通知。虽然此SDK对任何主题都是通用的,但它目前包括MARKETPLACE_ACCOUNT_DELETION通知的架构定义。
功能
此SDK旨在启动对eBay通知的订阅,并提供一个现成的PHP示例。
此SDK现在还集成了端点验证的支持。
此SDK集成了
- 一个可部署的示例PHP应用程序,它适用于所有主题,并可以处理传入的https通知
- 允许注册自定义消息处理器。
- 验证传入消息的完整性
- 使用解密签名头部中的密钥ID获取验证算法所需的公钥。使用LRU缓存以防止对相同的'key'进行重复检索。
- 验证成功后,将处理委托给注册的自定义消息处理器,并以204 HTTP状态码响应。
- 验证失败时,以412 HTTP状态码响应。
- 生成验证此端点所需的挑战响应。有关端点验证的更多详细信息,请参阅文档。
使用方法
先决条件
PHP: v7.3 or higher
配置
-
使用客户端凭据更新config.json(从/commerce/notification/v1/public_key/{public_key_id}获取公钥所需的)。
-
在example.php中指定环境(PRODUCTION或SANDBOX)。默认:PRODUCTION
-
对于端点验证
- verificationToken 与您的端点关联。提供了一个用于端点的随机样本,这需要与提供给eBay的相同。
- 端点 特定于此部署。提供了一个随机URL作为示例。
注意:建议将verificationToken 存储在安全的位置。
{ "SANDBOX": { "clientId": "<appid-from-developer-portal>", "clientSecret": "<certid-from-developer-portal>", "devid": "<devid-from-developer-portal>", "redirectUri": "<redirect_uri-from-developer-portal>", "baseUrl": "api.sandbox.ebay.com" }, "PRODUCTION": { "clientId": "<appid-from-developer-portal>", "clientSecret": "<certid-from-developer-portal>", "devid": "<devid-from-developer-portal>", "redirectUri": "<redirect_uri-from-developer-portal>", "baseUrl": "api.ebay.com" }, "endpoint": "<endpoint_url>", "verificationToken": "<verification_token>" }
对于MARKETPLACE_ACCOUNT_DELETION用例,只需在accountDeletionMessageProcessor.processInternal()中实现自定义逻辑即可。
以3个简单步骤加入任何新主题!
- 将新主题常量添加到constants.php
- 在
src/lib/processor/
中为新的主题添加自定义消息处理器 - 更新processor.php以返回特定于主题的新消息处理器
注意:您可以参考example.php来查看如何设置快速服务器和使用SDK的示例。
安装和运行
composer install
composer run-script start
生产部署说明
For production, please host with HTTPS enabled.
日志记录
使用标准错误日志。
许可
版权所有 2022 eBay Inc。
开发者:姚硕阳
本软件基于Apache License,版本2.0(以下简称“许可协议”);除非符合许可协议,否则不得使用此文件。您可以在以下地址获取许可协议的副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可协议下分发的软件按“原样”分发,不提供任何形式的明示或暗示保证。有关许可协议下管理权限和限制的具体语言,请参阅许可协议。