nidux/cybersource-soap-client

Nidux 的 CyberSource SOAP 客户端

1.0.5 2019-07-04 14:28 UTC

This package is auto-updated.

Last update: 2024-09-26 20:51:44 UTC


README

这是由 Nidux 修改过的 CyberSource SOAP Toolkit API 的非官方 SOAP 客户端。

Packagist

您可以在 Packagist 上找到 nidux/cybersource-soap-client。如果您想从 Packagist 安装 SDK,请在您的应用 'composer.json' 文件中添加以下依赖项。

"require": {
  "nidux/cybersource-soap-client": "*"
  }, 

前提条件

  • PHP 7.0 或更高版本
  • 一个 CyberSource 账户。您可以在 这里 创建评估账户。
  • 一个 CyberSource 交易密钥。

安装

您可以通过 Composer 或手动安装此客户端。您可以在 cybs.ini 文件中提供包含商户 ID、交易密钥和相应的 WSDL 文件 URL 的文件位置(此包更新时的最新版本)。以下是可用的最新 WSDL,如果您想手动测试,可以使用 SOAPUI

使用 Composer 安装

首先,请确保您已安装 Composer。您可以根据 官方网站 上的说明进行操作。Composer 安装完成后,您可以在项目根目录下运行

composer.phar install

然后,为了使用客户端,您需要包含 Composer 生成的自动加载文件

require_once('/path/to/project/vendor/autoload.php');

入门

PHP 客户端将为您生成请求消息头,并包含由 WSDL 文件指定的方法。

创建简单请求

您将主要使用的方法是 runTransaction()。要运行交易,您首先需要构造一个客户端以生成请求对象,然后您可以填充必要的字段(请参阅 文档 中的示例请求)。对象将被转换为 XML,因此对象的属性需要与正确的 XML 格式相对应。

$client = new CybersourceSoapClient();
$request = $client->createRequest();

$card = new stdClass();
$card->accountNumber = '4111111111111111';
$card->expirationMonth = '12';
$card->expirationYear = '2020';
$request->card = $card;

// Populate $request here with other necessary properties

$reply = $client->runTransaction($request);

从 XML 创建请求

您可以从文件或 XML 字符串中创建请求。XML 请求格式在 使用 XML 部分 此处 描述。以下是使用 XML 文件运行交易的示例

$referenceCode = 'your_merchant_reference_code';
$client = new CybersourceSoapClient();
$reply = $client->runTransactionFromFile('path/to/my.xml', $referenceCode);

或者,您也可以创建自己的 XML 字符串并使用它

$xml = "";
// Populate $xml
$client = new CybersourceSoapClient();
$client->runTransactionFromXml($xml);

使用名称值对

为了使用名称值对运行交易,请确保在 cybs.ini 中设置了 NVP 交易处理器的 WSDL 的值。然后使用 CybsNameValuePairClient 如下所示

$client = new CybersourceNVPClient();
$request = array();
$request['ccAuthService_run'] = 'true';
$request['merchantID'] = 'my_merchant_id';
$request['merchantReferenceCode'] = $'my_reference_code';
// Populate $request
$reply = $client->runTransaction($request);

如何获取 CardType

有一个辅助类可以使用 getCardType($cardNumber) 方法。您需要提供卡号,您将获得在 XML/Object 中使用的正确 CardType 值,当无法检测到卡的品牌时,它将返回 Null。

$cardTypeValue = CybersourceHelper::getCardType('4111111111111111'); //it will return 001