braintree/braintree_php

Braintree PHP 客户端库

安装量 35,926,856

依赖项: 121

建议者: 4

安全: 0

星标: 545

关注者: 96

分支: 224

开放问题: 14


README

Braintree PHP 库提供了对 Braintree 门户的集成访问。

需要 TLS 1.2

支付卡行业(PCI)委员会已强制淘汰早期版本的 TLS。所有处理信用卡信息的组织都必须遵守此标准。作为这项义务的一部分,Braintree 已更新其服务,要求所有 HTTPS 连接使用 TLS 1.2。Braintree 需要 HTTP/1.1 进行所有连接。有关更多信息,请参阅我们的技术文档

依赖项

以下 PHP 扩展是必需的

  • curl
  • dom
  • hash
  • openssl
  • xmlwriter

需要 PHP 版本 >= 7.3。Braintree PHP SDK 已针对 PHP 版本 7.3 和 7.4 以及 8.0 进行测试。

PHP 核心开发社区已发布 PHP 版本 5.4 - 7.2 的生命终止分支,并且不再接收安全更新。因此,Braintree 不支持这些 PHP 版本。

版本

Braintree 对我们的 SDK 采用弃用策略。有关 SDK 状态的更多信息,请参阅我们的开发者文档

文档

从本 SDK 的非活动、已弃用或不受支持版本更新?请查看我们的迁移指南以获取提示。

快速入门示例

<?php

require_once 'PATH_TO_BRAINTREE/lib/Braintree.php';

// Instantiate a Braintree Gateway either like this:
$gateway = new Braintree\Gateway([
    'environment' => 'sandbox',
    'merchantId' => 'your_merchant_id',
    'publicKey' => 'your_public_key',
    'privateKey' => 'your_private_key'
]);

// or like this:
$config = new Braintree\Configuration([
    'environment' => 'sandbox',
    'merchantId' => 'your_merchant_id',
    'publicKey' => 'your_public_key',
    'privateKey' => 'your_private_key'
]);
$gateway = new Braintree\Gateway($config)

// Then, create a transaction:
$result = $gateway->transaction()->sale([
    'amount' => '10.00',
    'paymentMethodNonce' => $nonceFromTheClient,
    'deviceData' => $deviceDataFromTheClient,
    'options' => [ 'submitForSettlement' => True ]
]);

if ($result->success) {
    print_r("success!: " . $result->transaction->id);
} else if ($result->transaction) {
    print_r("Error processing transaction:");
    print_r("\n  code: " . $result->transaction->processorResponseCode);
    print_r("\n  text: " . $result->transaction->processorResponseText);
} else {
    foreach($result->errors->deepAll() AS $error) {
      print_r($error->code . ": " . $error->message . "\n");
    }
}

命名空间

从主要版本 5.x.x 开始,仅支持 PSR-4 命名空间。这意味着您必须使用 PSR-4 命名空间来引用类。

$gateway = new Braintree\Gateway([
    'environment' => 'sandbox',
    'merchantId' => 'your_merchant_id',
    'publicKey' => 'your_public_key',
    'privateKey' => 'your_private_key'
]);

// or

$config = new Braintree\Configuration([
    'environment' => 'sandbox',
    'merchantId' => 'your_merchant_id',
    'publicKey' => 'your_public_key',
    'privateKey' => 'your_private_key'
]);
$gateway = new Braintree\Gateway($config)

Google App Engine 支持

当使用 Google App Engine 时,请在您的 php.ini 文件中包含 curl 扩展(有关更多信息,请参阅 #190

extension = "curl.so"

并关闭接受 gzip 响应

$gateway = new Braintree\Gateway([
    'environment' => 'sandbox',
    // ...
    'acceptGzipEncoding' => false,
]);

开发(Docker)

MakefileDockerfile 将构建包含依赖关系的镜像,并将您带到终端,您可以在其中运行测试。

make

代码风格检查

Rakefile 包含运行 PHP Code SnifferPHP Code Beautifier & Fixer 的命令。要运行代码风格检查命令,请使用 rake

rake lint:fix # runs the auto-fixer first, then sniffs for any remaining code smells
rake lint:sniff[y] # gives a detailed report of code smells

测试

单元规范可以在任何系统上由任何人运行,但集成规范旨在针对我们网关代码的本地开发服务器运行。这些集成规范不适用于公共消费,并且在您的系统上运行时可能会失败。要运行单元测试,请使用 rake:rake test:unit

要运行代码风格检查和所有测试,请使用 rake:rake test

许可协议

请参阅 LICENSE 文件。