adyen/php-api-library

用于访问 Adyen API 的 PHP 客户端库


README

php

Adyen PHP API 库

这是官方支持的用于使用 Adyen API 的 PHP 库。

version

支持的 API 版本

该库支持以下服务下的所有 API

支持的 Webhook 版本

该库支持以下模型目录下的所有 Webhook

有关更多信息,请参阅我们的 文档API 探索器

先决条件

支持旧版本

如果使用 PHP 7.2 或更低版本,请下载我们的库版本 6.3.0

安装

您可以使用 Composer。如果您尚未安装 composer,请遵循 安装说明

composer require adyen/php-api-library

在您的 PHP 脚本中,确保包含自动加载器

require __DIR__ . '/vendor/autoload.php';

或者,您可以从 GitHub 上的发布版 下载。

使用库

使用 API 密钥的一般用途

将客户端设置为一个单例资源;您将使用它来调用 Adyen 的 API

$client = new \Adyen\Client();

$client->setXApiKey("YOUR API KEY");
$client->setEnvironment(\Adyen\Environment::TEST);
$client->setTimeout(30);

$service = new \Adyen\Service\Checkout\PaymentsApi($client);

// Create PaymentMethod object
$paymentMethod = new \Adyen\Model\Checkout\CheckoutPaymentMethod();
$paymentMethod
    ->setType("scheme")
    ->setEncryptedBankAccountNumber("test_4111111111111111")
    ->setEncryptedExpiryMonth("test_03")
    ->setEncryptedExpiryYear("test_2030")
    ->setEncryptedSecurityCode("test_737");
// Creating Amount Object
$amount = new \Adyen\Model\Checkout\Amount();
$amount
    ->setValue(1500)
    ->setCurrency("EUR");
// Create the actual Payments Request
$paymentRequest = new \Adyen\Model\Checkout\PaymentRequest();
$paymentRequest
    ->setMerchantAccount("YOUR MERCHANT ACCOUNT")
    ->setPaymentMethod($paymentMethod)
    ->setAmount($amount)
    ->setReference("payment-test")
    ->setReturnUrl("https://your-company.com/...");

$result = $service->payments($paymentRequest);

使用 API 密钥在实时环境中的通用用途

$client = new \Adyen\Client();
$client->setXApiKey("YOUR API KEY");
$client->setEnvironment(\Adyen\Environment::LIVE, 'Your live URL prefix');
$client->setTimeout(30);

...

使用基本身份验证的一般用途

$client = new \Adyen\Client();
$client->setUsername("YOUR USERNAME");
$client->setPassword("YOUR PASSWORD");
$client->setEnvironment(\Adyen\Environment::TEST);
$client->setTimeout(30);

...

通过数组访问实现实例化请求对象(易于迁移)

...

$service = new \Adyen\Service\Checkout\PaymentLinksApi($client);

$params = array(
    'merchantAccount' => "YourMerchantAccount",
    'reference' => '12345',
    'amount' => array('currency' => "BRL", 'value' => 1250),
    'countryCode' => "BR",
    'shopperReference' => "YourUniqueShopperId",
    'shopperEmail' => "test@email.com",
    'shopperLocale' => "pt_BR",
    'billingAddress' => array(...),
    'deliveryAddress' => array(...),
);
$createPaymentLinkRequest = new \Adyen\Model\Checkout\PaymentLinkRequest($params);

$result = $service->paymentLinks($createPaymentLinkRequest);

$paymentLink = $result->getUrl(); // or use $result['url'] if you want to use arrayAccess

使用银行 Webhook

...

$jsonString = 'webhook_payload';
$isValid = $hmac->validateHMAC("YOUR_HMAC_KEY", "YOUR_HMAC_SIGN", $jsonString);

if ($isValid) {
    $webhookParser = new \Adyen\Service\BankingWebhookParser($jsonString);
    $result = $webhookParser->getGenericWebhook();
}

使用管理 Webhook

...

$jsonString = 'webhook_payload';
$isValid = $hmac->validateHMAC("YOUR_HMAC_KEY", "YOUR_HMAC_SIGN", $jsonString);

if ($isValid) {
    $webhookParser = new \Adyen\Service\ManagementWebhookParser($jsonString);
    $result = $webhookParser->getGenericWebhook();
}

示例集成

要更详细了解我们的 PHP 库如何工作,请克隆我们的 Laravel 示例集成。这包括带注释的代码,突出显示关键功能和概念,以及使用库可以执行的 API 调用的示例。

运行测试

对于测试案例,您需要在您的账户上启用 PCI 许可。由于信用卡数据通过我们的 JavaScript 库加密,因此没有 CSE 的测试案例。默认情况下,测试将被跳过。如果您有这些权限,请在 config/test.ini 文件中填写您的账户详细信息,以便测试工作。要使自动测试案例适用于您的账户,请在 config/test.ini 文件中更改凭证。

反馈

我们重视您的反馈!通过填写 我们的反馈表 来提供您的反馈,帮助我们在 API 库中做出改进并提高集成体验。

贡献

我们鼓励您为这个仓库做出贡献,这样每个人都可以从新功能、错误修复以及其他改进中受益。请查看我们的贡献指南,了解如何提出拉取请求。

支持

如果您有功能请求,或发现了错误或技术问题,请在这里创建一个问题

对于其他问题,请联系我们的支持团队

许可证

此仓库遵循MIT许可证

另请参阅