ebay / digital-signature-php-sdk
用于使用需要数字签名的 eBay API 的 SDK
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- phpseclib/phpseclib: ~3.0
- runz0rd/mapper-php: ^2.2
Requires (Dev)
- phpunit/phpunit: ^9.5
README
HTTP 消息签名提供了一种机制,用于保证 HTTP 消息组件的端到端真实性和完整性。
此 PHP SDK 设计用于简化生成数字签名头的过程,并提供了一种验证数字签名头的方法。
目录
公共 API 调用的数字签名
由于来自 SCA 的监管要求,针对我们的欧洲/英国卖家,我们要求我们的开发者为代表 EU/UK 卖家对某些 API 的每个 HTTP 调用添加数字签名。
此 SDK 是通用的,签名方案符合以下 IETF 标准
特性
此 SDK 的目的是根据上述 IETF 标准生成所需的消息签名头,SDK 中还包含了一个示例。
此 SDK 包含以下内容
- 生成以下 HTTP 消息签名头
- 使用
generateSignatureHeaders
方法生成所有必需的头部
有关 eBay API 的数字签名的更多详细信息,请参阅文档。
用法
先决条件
PHP: 7.4 or higher
安装
为了使用此 SDK,请通过 composer 将其添加到您的 PHP 应用程序中
composer require ebay/digital-signature-php-sdk composer update
在您的代码中,添加此行以返回包含签名头在内的所有头部
$headers = $signature->generateSignatureHeaders($yourHeaders, $apiUrl, $method, $body);
请参阅示例
配置
为了运行示例应用程序,需要更新 example-config.json。
{ "digestAlgorithm": "<Algorithm used for generating content digest>", "jwe": "<JWE generated using Key Management API>", "privateKey": "<Path to private key generated using Key Management API>", "privateKeyStr": "<(alternative to privateKey) Private key generated using Key Management API, including -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- key headers>", "signatureParams": "<List of signature params>" }
参数
注意:您可以参考 example-GET.php 或 example-POST.php 了解如何使用 SDK(分别用于没有请求体的 GET 调用和有请求体的 POST 调用)。
运行示例
cd examples composer update php example-GET.php # or php example-POST.php
- 签名配置示例: example-config.json。
许可证
版权所有2023 eBay Inc. 开发者:Ulrich Herberg 和 Arturas Sendrauskas
根据Apache License,版本2.0(以下简称“许可证”);除非遵守许可证,否则您不得使用此文件。您可以在以下地址获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或经书面同意,否则在许可证下分发的软件按“原样”分发,不提供任何形式的明示或暗示保证。有关许可证权限和限制的具体语言,请参阅许可证。