centarro/cybersource-rest-client-php

该软件包最新版本(dev-master)没有可用的许可信息。

CyberSource PHP REST API客户端,更新依赖以实现Drupal兼容性(直到上游修复)。

dev-master 2023-11-09 19:39 UTC

This package is auto-updated.

Last update: 2024-09-09 21:27:42 UTC


README

CyberSource PHP客户端可方便地从您的PHP应用程序访问CyberSource REST API

Version

要求

  • PHP 8.0.0+
  • 启用cURL PHP扩展
  • 启用JSON PHP扩展
  • 启用OpenSSL PHP扩展
  • 启用Zip 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。(注意:我们从不推荐您覆盖新的安全http默认设置)。请根据以下示例更新您的composer.json文件,然后运行composer update

{
  "require": {
  "php": ">=8.0.0",
  "cybersource/rest-client-php": "0.0.44"
  }
}

注册和配置

使用此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:商家将提供从EBC门户获取的商家ID。
  • 商家密钥:商家将提供从EBC门户获取的密钥值。
  • 商家密钥ID:商家将提供从EBC门户获取的密钥ID值。
  • 启用日志:要开始日志条目,提供true,否则输入false
  • 日志目录:商家将提供日志创建的目录路径。
  • 日志最大大小:商家将提供日志文件的大小值。
  • 日志文件名:商家将提供日志文件名。
   $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:商家将提供从EBC门户获取的商家ID。
  • 密钥别名:用于生成JWT令牌的商家ID别名。
  • 密钥密码:用于生成JWT令牌的商家密码别名。
  • 密钥文件名:从EBC门户生成的密钥文件名,不带扩展名部分.P12
  • 密钥目录:密钥放置的目录路径。
  • 启用日志:要开始日志条目,提供true,否则输入false
  • 日志目录:商家将提供日志创建的目录路径。
  • 日志最大大小:商家将提供日志文件的大小值。
  • 日志文件名:商家将提供日志文件名。
   $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将信息包含在请求中所需的方法。

日志记录

Generic badge

从v0.0.24版本开始,SDK中引入了新的日志框架。这个新的日志框架利用了Monolog,并标准化了日志记录,以便可以将其集成到客户端应用程序的日志记录中。

有关此新日志框架的更多信息,请参阅此文件:Logging.md

PHP_APCU PHP扩展

在php.ini文件中启用PHP_APCU PHP扩展。您需要为您平台(Windows/Linux/Mac)下载它并添加到扩展中。

官方PHP_APCU - https://pecl.php.net/package/APCu

对于Windows

  1. PHP v8.0:从官方pecl网站下载适用的php_apcu dll版本v5.1.19。
  2. PHP v8.1:从官方pecl网站下载适用的php_acpu dll版本v5.1.21。
  3. PHP v8.2:从官方PECL网站下载适用于php_acpu的dll版本v5.1.22。但是,pecl网站中缺少php v8.2的dll。另外,您可以参考以下StackOverflow链接:[https://stackoverflow.com/questions/75059436/missing-php-apcu-dll-for-php-8-2-apcu-5-1-22](https://stackoverflow.com/questions/75059436/missing-php-apcu-dll-for-php-8-2-apcu-5-1-22) 或者可以从以下链接下载php_apcu dll:[https://github.com/gnongsie/apcu/actions/runs/6096614635](https://github.com/gnongsie/apcu/actions/runs/6096614635)

对于Mac/Linux/Unix

使用pecl命令下载php_apcu:"pecl install apcu"。它将自动下载适用于PHP v8.0、v8.1、v8.2的相应apcu扩展。