square/connect

此软件包已被废弃,不再维护。没有推荐替代软件包。

此软件包已弃用,已被 https://packagist.org.cn/packages/square/square 替换。

3.20200528.1 2020-06-10 16:23 UTC

This package is auto-updated.

Last update: 2021-04-29 00:43:38 UTC


README

Build Status PHP version Apache-2 license

注意:Square Connect PHP SDK 已弃用

自 2020-06-10 以来,Square Connect PHP SDK 已弃用(EOL),将不再接收错误修复或产品更新。要继续接收 API 和 SDK 的改进,请按照以下说明迁移到新的 Square PHP SDK

旧的 Connect SDK 文档可在 /docs 文件夹 中找到。



迁移到 Square PHP SDK

按照以下说明将您的应用程序从已弃用的 square/connect sdk 迁移到新库。

您需要更新您的应用程序以使用 Square PHP SDK 而不是 Connect PHP SDK。Square PHP SDK 使用 square/square 标识符。

  1. 在命令行中运行
$ php composer.phar require square/square

-or-

  1. 更新您的 composer.json
"require": {
    ...
    "square/square": "^5.0.0",
    ...
}

更新您的代码

  1. 将所有 use SquareConnect\... 实例更改为 use Square\...
  2. SquareConnect 模型替换为新的 Square 对应物
  3. 更新客户端实例化以遵循以下方法。
  4. 更新代码以访问响应数据以遵循以下方法。
  5. 检查 $apiResponse->isSuccess()$apiResponse->isError() 以确定调用是否成功。

为了简化您的代码,我们还建议您使用方法链来访问 API 而不是显式实例化多个客户端。

客户端实例化

Connect SDK

require 'vendor/autoload.php';

use SquareConnect\Configuration;
use SquareConnect\ApiClient;

$access_token = 'YOUR_ACCESS_TOKEN';
# setup authorization
$api_config = new Configuration();
$api_config->setHost("https://connect.squareup.com");
$api_config->setAccessToken($access_token);
$api_client = new ApiClient($api_config);

Square SDK

require 'vendor/autoload.php';

use Square\SquareClient;
use Square\Environment;

// Initialize the Square client.
$api_client = new SquareClient([
  'accessToken' => "YOUR_ACCESS_TOKEN",
  'environment' => Environment::SANDBOX
]); // In production, the environment arg is 'production'

示例代码迁移

作为一个具体的例子,考虑以下代码,从以下 nonce 创建新的支付

# Fail if the card form didn't send a value for `nonce` to the server
$nonce = $_POST['nonce'];
if (is_null($nonce)) {
  echo "Invalid card data";
  http_response_code(422);
  return;
}

使用已弃用的 square/connect 库,这是为支付 API 实例化客户端、格式化请求和调用端点的方式

use SquareConnect\Api\PaymentsApi;
use SquareConnect\ApiException;

$payments_api = new PaymentsApi($api_client);
$request_body = array (
  "source_id" => $nonce,
  "amount_money" => array (
    "amount" => 100,
    "currency" => "USD"
  ),
  "idempotency_key" => uniqid()
);
try {
  $result = $payments_api->createPayment($request_body);
  echo "<pre>";
  print_r($result);
  echo "</pre>";
} catch (ApiException $e) {
  echo "Caught exception!<br/>";
  print_r("<strong>Response body:</strong><br/>");
  echo "<pre>"; var_dump($e->getResponseBody()); echo "</pre>";
  echo "<br/><strong>Response headers:</strong><br/>";
  echo "<pre>"; var_dump($e->getResponseHeaders()); echo "</pre>";
}

现在考虑使用新的 square/square 库的等效代码

require 'vendor/autoload.php';

use Square\Environment;
use Square\Exceptions\ApiException;
use Square\SquareClient;
use Square\Models\CreatePaymentRequest;
use Square\Models\Money;

$payments_api = $api_client->getPaymentsApi();

$money = new Money();
$money->setAmount(100);
$money->setCurrency('USD');
$create_payment_request = new CreatePaymentRequest($nonce, uniqid(), $money);
try {
  $response = $payments_api->createPayment($create_payment_request);
  if ($response->isError()) {
    echo 'Api response has Errors';
    $errors = $response->getErrors();
    exit();
  }
  echo '<pre>';
  print_r($response);
  echo '</pre>';
} catch (ApiException $e) {
  echo 'Caught exception!<br/>';
  exit();
}

就是这样!



询问社区

如果您有任何问题,请加入我们的 Square 开发者社区