syomkin / cybersource-rest-client-php
CyberSource REST API 客户端 SDK
Requires
- php: >=5.6
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- cache/apcu-adapter: ^1.1.0
- firebase/php-jwt: ^5.0.0
- monolog/monolog: >=1.25.0
Requires (Dev)
- phpunit/phpunit: ~4.8
- dev-master
- 0.0.32
- 0.0.31
- 0.0.30
- 0.0.29
- 0.0.28
- 0.0.27
- 0.0.25
- 0.0.24
- 0.0.23
- 0.0.22
- 0.0.21
- 0.0.20
- 0.0.19
- 0.0.18
- 0.0.17
- 0.0.16
- 0.0.15
- 0.0.14
- 0.0.13
- 0.0.12
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-feature/setDebugFile
- dev-fix/cache
- dev-fix/composer
- dev-transient_token
- dev-sensitive-logging
- dev-travis-trial
- dev-generator-with-logging-and-masking
This package is auto-updated.
Last update: 2024-09-16 15:10:13 UTC
README
CyberSource PHP 客户端为您提供了从 PHP 应用程序中方便地访问 CyberSource REST API 的途径。
要求
- PHP 5.6+
- 启用 cURL PHP 扩展
- 启用 JSON PHP 扩展
- 启用 MBString PHP 扩展
- 启用 PHP_APCU PHP 扩展。您需要为您自己的平台(Windows/Linux/Mac)下载它
- CyberSource 账户
- CyberSource API 密钥
依赖
- PHP-JWT : JWT 令牌生成
- CURL : 与支付网关的 Http 通信
- PHP_APCU : 缓存
- phpunit-5.7.25 : 单元测试
- phpunit-5.7.25 代码覆盖率 : Sonar 覆盖率
安装
Composer
我们推荐使用 Composer。 (注意:我们从不推荐您覆盖新的 secure-http 默认设置)。 按照以下示例更新您的 composer.json 文件,然后运行 composer update。
{
"require": {
"php": ">=5.6",
"cybersource/rest-client-php": "0.0.37"
}
}
注册 & 配置
使用此 SDK 和 CyberSource API 需要在我们的系统上拥有一个账户。您可以在 这里 找到获取测试账户和创建密钥的详细信息
一旦您拥有密钥,只需将它们加载到代码中适当的变量中即可,如下面的示例代码处理 API 请求的认证部分。
请记住,此 SDK 用于服务器端 PHP 应用程序,该应用程序访问 CyberSource REST API,凭证应始终安全存储并适当访问。
SDK 使用示例和示例代码
要开始使用此 SDK,强烈建议您下载我们的示例代码存储库
在该存储库中,我们提供了 API 所有常用功能的全面示例代码
此外,您还可以在我们的 API 参考指南中找到有关 API 结构的详细信息及其示例
API 参考指南提供了特定请求所需信息的示例以及该信息将如何格式化。使用这些示例,您可以轻松确定使用此 SDK 在请求中包含该信息所需的方法。
MetaKey 支持
Meta Key 是一个可以由组合中的一位、一些或所有商家(如果由组合用户创建,则可能是账户)使用的单个密钥。
组合或父账户拥有该密钥,当使用 Meta Key 时被视为交易提交者,而商家拥有交易。
MID 仍然可以为自己创建密钥,即使生成了 Meta Key。
有关 MetaKey 的更多信息,请参阅 新业务中心用户指南。
要为 API 请求设置 API 凭据,请在 ExternalConfiguration.php 文件中配置以下信息
在您的应用程序的 Resources 文件夹中创建一个名为 ExternalConfiguration.php 的文件,并按照要求配置以下信息,类似于 这个。
对于 Http 签名认证
在 ExternalConfiguration.php 文件中配置以下信息
- 认证类型:商户应输入 "HTTP_SIGNATURE" 以使用 HTTP 认证机制。
- 商户ID:商户将提供商户ID,该ID已从 EBC 站点获取。
- MerchantSecretKey:商户将提供密钥值,该值已从 EBC 站点获取。
- MerchantKeyId:商户将提供密钥ID值,该值已从 EBC 站点获取。
- 启用日志:要开始记录日志,请提供 true,否则输入 false。
- LogDirectory:商户将提供日志文件创建的目录路径。
- LogMaximumSize:商户将提供日志文件的大小值。
- LogFilename:商户将提供日志文件名。
$this->authType = "HTTP_SIGNATURE";
$this->runEnv = "apitest.cybersource.com";
$this->merchantID = <merchantID>;
$this->apiKeyID = <merchantKeyId>;
$this->secretKey = <merchantSecretKey>;
$this->enableLog = true;
$this->logSize = <logMaximumSize>;
$this->logFile = <logDirectory>;
$this->logFilename = <logFilename>;
$this->proxyUrl = <proxyHost>;
$this->proxyHost = <proxyPort>;
$this->useMetaKey = false;
对于 Jwt 签名认证
在 ExternalConfiguration.php 文件中配置以下信息
- 认证类型:商户应输入 "JWT" 以使用 JWT 认证机制。
- 商户ID:商户将提供商户ID,该ID已从 EBC 站点获取。
- keyAlias:用于生成 JWT 令牌的商户ID别名。
- keyPassword:用于生成 JWT 令牌的商户密码别名。
- keyFileName:从 EBC 站点生成的密钥文件名,不包括 .P12 扩展名部分。
- keysDirectory:密钥放置的目录路径。
- 启用日志:要开始记录日志,请提供 true,否则输入 false。
- LogDirectory:商户将提供日志文件创建的目录路径。
- LogMaximumSize:商户将提供日志文件的大小值。
- LogFilename:商户将提供日志文件名。
$this->authType = "JWT";
$this->runEnv = "apitest.cybersource.com";
$this->merchantID = <merchantID>;
$this->keyAlias = <keyAlias>;
$this->keyPass = <keyPassword>;
$this->keyFilename = <keyFileName>";
$this->keyDirectory = <keysDirectory>;
$this->enableLog = true;
$this->logSize = <logMaximumSize>;
$this->logFile = <logDirectory>;
$this->logFilename = <logFilename>;
$this->proxyUrl = <proxyHost>;
$this->proxyHost = <proxyPort>;
$this->useMetaKey = false;
对于使用 MetaKey
MetaKey 可用于 HTTP 签名和 JWT 认证
对于 HTTP 签名认证
$this->authType = "HTTP_SIGNATURE";
$this->merchantID = <child merchantID>;
$this->apiKeyID = <MetaKey merchantKeyId>;
$this->secretKey = <Metakey merchantsecretKey>;
$this->useMetaKey = true;
$this->portfolioID = <Portfolio ID>;
对于 JWT 认证
$this->authenticationType = "JWT";
$this->merchantID = <child merchantID>;
$this->keyAlias = <keyAlias>;
$this->keyPass = <keyPassword>;
$this->keyFileName = <keyFileName>;
$this->keyDirectory = <keysDirectory>;
$this->useMetaKey = true;
在沙盒环境和生产环境之间切换
CyberSource 为测试和开发目的维护了一个完整的沙盒环境。此沙盒环境是生产环境的精确副本,交易授权和结算过程进行了模拟。默认情况下,此 SDK 配置为与沙盒环境通信。要切换到生产环境,请在 Resources\ExternalConfiguration.php 中设置适当的属性。
例如
// For TESTING use // $this->runEnv = "apitest.cybersource.com"; // For PRODUCTION use $this->runEnv = "api.cybersource.com";
API 参考指南 提供了特定请求所需的信息示例以及这些信息的格式。使用这些示例,您可以轻松确定在请求中包含这些信息所需的方法,使用此 SDK 进行操作。
日志记录
从 v0.0.24 版本开始,SDK 中引入了新的日志框架。此新的日志框架利用了 Monolog,并标准化了日志记录,以便它可以与客户端应用程序中的日志记录集成。
有关此新日志框架的更多信息,请参阅此文件: Logging.md