bibliopolis/event-notification-php-sdk

用于处理eBay事件通知的PHP SDK。Bibliopolis旨在为额外的通知端点添加新架构,并修复原始存储库中存在的问题。

1.1.0 2024-06-27 20:58 UTC

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

除非适用法律要求或书面同意,否则在许可协议下分发的软件按“原样”分发,不提供任何形式的明示或暗示保证。有关许可协议下管理权限和限制的具体语言,请参阅许可协议。