checkout/checkout-sdk-php

Checkout.com SDK for PHP

3.2.4 2024-08-29 07:34 UTC

README

build-status Quality Gate Status

build-status GitHub release Latest Stable Version

GitHub license

入门指南

版本 3.0.0 已发布!

我们改进了SDK的初始化,使其更容易理解可用的选项。
现在 NAS 账户是SDK的默认实例,ABC 结构已移动到 previous 前缀。
如果您之前使用过此SDK,您可能会发现以下重要更改:

  • 市场模块已移动到账户模块,类和引用也是如此。
  • 在大多数情况下,IDE可以帮助您确定从哪里导入,但如果您仍然遇到问题,请不要犹豫,打开一个 问题单

🚀 请在 GitHub 发布版 中查看所有可用的版本。

📖 查看我们的官方文档。

📚 查看我们的官方API文档指南,其中还提供了更多使用示例。

Composer

{
  "require": {
    "php": ">=5.6",
    "checkout/checkout-sdk-php": "version"
  }
}

如何使用SDK

此SDK可以使用Checkout提供的两对不同的API密钥使用。但是,使用不同的API密钥意味着使用特定的API功能。请在下表中查看此SDK中可以使用密钥的类型。

注意:沙箱密钥分别具有 sbox_test_ 标识符,分别对应默认和先前的账户。

请勿分享或发布您的Checkout凭据。

如果您没有自己的API密钥,您可以在此处注册测试账户。

默认

默认密钥客户端实例化可以如下进行

$checkoutApi = CheckoutSdk::builder()->staticKeys()
                    ->publicKey("public_key") // optional, only required for operations related with tokens
                    ->secretKey("secret_key")
                    ->environment(Environment::sandbox()) // or production()
                    ->environmentSubdomain("subdomain") // optional, Merchant-specific DNS name
                    ->logger($logger) //optional, for a custom Logger
                    ->httpClientBuilder($client) // optional, for a custom HTTP client
                    ->build();

$paymentsClient = $checkoutApi->getPaymentsClient();
$paymentsClient->refundPayment("payment_id");

默认OAuth

SDK支持客户端凭据OAuth,当以如下方式初始化时

$checkoutApi = CheckoutSdk::builder()->oAuth()
                    ->clientCredentials("client_id", "client_secret")
                    ->scopes([OAuthScope::$Gateway, OAuthScope::$Vault]) // array of scopes
                    ->environment(Environment::sandbox()) // or production()
                    ->environmentSubdomain("subdomain") // optional, Merchant-specific DNS name
                    ->logger($logger) //optional, for a custom Logger
                    ->httpClientBuilder($client) // optional, for a custom HTTP client
                    ->build();

$paymentsClient = $checkoutApi->getPaymentsClient();
$paymentsClient->refundPayment("payment_id");

先前

如果您的密钥对匹配先前类型,SDK的使用方法如下

$checkoutApi = CheckoutSdk::builder()
                    ->previous()
                    ->staticKeys()
                    ->environment(Environment::sandbox()) // or production()
                    ->environmentSubdomain("subdomain") // optional, Merchant-specific DNS name
                    ->publicKey("public_key") // optional, only required for operations related with tokens
                    ->secretKey("secret_key")
                    ->logger($logger) //optional, for a custom Logger
                    ->httpClientBuilder($client) // optional, for a custom HTTP client
                    ->build();

$paymentsClient = $checkoutApi->getPaymentsClient();
$paymentsClient->refundPayment("payment_id");

PHP设置

对于需要文件上传(争议或市场)的操作,必须在 php.ini 中启用配置 extension=fileinfo

异常处理

所有不属于2**状态代码的API响应,SDK都将抛出 CheckoutApiException

异常封装了 http_metadata$error_details,如果可用。

从源码构建

一旦从GitHub检出代码,项目可以使用composer构建

composer update

执行集成测试需要设置以下系统环境变量:

  • 对于默认账户系统(NAS):CHECKOUT_DEFAULT_PUBLIC_KEY & CHECKOUT_DEFAULT_SECRET_KEY
  • 对于默认账户系统(OAuth):CHECKOUT_DEFAULT_OAUTH_CLIENT_ID & CHECKOUT_DEFAULT_OAUTH_CLIENT_SECRET
  • 对于先前账户系统(ABC):CHECKOUT_PREVIOUS_PUBLIC_KEY & CHECKOUT_PREVIOUS_SECRET_KEY

行为准则

请参阅 行为准则

许可

MIT