paylike/php-api

此包已被废弃,不再维护。未建议替代包。

用于与 Paylike HTTP API 通信的 PHP SDK

2.0.0 2023-02-15 10:07 UTC

This package is auto-updated.

Last update: 2024-04-29 10:56:49 UTC


README

Paylike 客户端(PHP)

您可以在 https://paylike.io 上注册 Paylike 账户。

获取 API 密钥

通过在 Paylike 控制台 中创建商家并添加应用程序来获取 API 密钥。

要求

PHP 5.3.3 及更高版本。

安装

您可以通过 Composer 安装此包。运行以下命令

composer require paylike/php-api

如果您不使用 Composer,您可以下载 最新版本 并包含 init.php 文件。

require_once('/path/to/php-api/init.php');

依赖项

绑定需要以下扩展才能正常工作

如果您使用 Composer,这些依赖项应该会自动处理。如果您手动安装,请确保这些扩展可用。
如果您不想使用 curl,您可以根据 HttpClientInterface 创建自己的客户端并作为参数传递给实例化 Paylike 类。

示例

$paylike = new \Paylike\Paylike($private_api_key);
 
// fetch a card
$cards = $paylike->cards();
$card  = $cards->fetch($card_id);
 
// capture a transaction
$transactions = $paylike->transactions();
$transaction  = $transactions->capture($transaction_id, array(
    'amount'   => 100,
    'currency' => 'EUR'
));

方法

$paylike = new \Paylike\Paylike($private_api_key);
 
$apps = $paylike->apps();
$apps->create($args);
$apps->fetch();
 
$merchants = $paylike->merchants();
$merchants->create($args);
$merchants->fetch($merchant_id);
$merchants->update($merchant_id, $args);
$all_merchants = $merchants->find($app_id,$args);
$some_merchants = $merchants->before($app_id,$before);
$some_merchants = $merchants->after($app_id,$before);
$all_lines = $merchants->lines()->find($merchant_id,$args);
$some_lines = $merchants->lines()->before($merchant_id,$before);
$some_lines = $merchants->lines()->after($merchant_id, $after);
$all_apps = $merchants->apps()->find($merchant_id,$args);
$merchants->lines()->add($merchant_id,$app_id);
$merchants->lines()->revoke($merchant_id,$app_id);
 
$cards = $paylike->cards();
$cards->create($merchant_id, $args);
$cards->fetch($card_id);
 
$transactions = $paylike->transactions();
$transactions->create($merchant_id, $args);
$transactions->fetch($transaction_id);
$transactions->capture($transaction_id, $args);
$transactions->void($transaction_id, $args);
$transactions->refund($transaction_id, $args);
$all_transactions = $transactions->find($merchant_id,$args);
$some_transactions = $transactions->before($merchant_id,$before);
$some_transactions = $transactions->after($merchant_id,$before);

// explicit args
$limit = 10;
$after = '5b8e839d7cc76f04ecd3f733';
$before = '5b98deef882cf804f6108700';
$api_transactions = $transactions->find($merchant_id, array(
    'limit' => $limit,
    'after' => $after,
    'before' => $before,
    'filter' => array(
    	'successful' => true
    )
));

分页

返回多个商家/交易的(find、after、before)方法使用游标,因此您无需担心分页,您可以访问任何索引,或迭代所有项目,这将在后台处理。

错误处理

当事情不顺利时,API 包装器将抛出错误。所有错误都继承自 ApiException。捕获所有类型错误的非常详尽的示例

$paylike = new \Paylike\Paylike($private_api_key);
try {
    $transactions = $paylike->transactions();
    $transactions->capture($transaction_id, array(
        'amount'   => 100,
        'currency' => 'EUR'
    ));
} catch (\Paylike\Exception\NotFound $e) {
    // The transaction was not found
} catch (\Paylike\Exception\InvalidRequest $e) {
    // Bad (invalid) request - see $e->getJsonBody() for the error
} catch (\Paylike\Exception\Forbidden $e) {
    // You are correctly authenticated but do not have access.
} catch (\Paylike\Exception\Unauthorized $e) {
    // You need to provide credentials (an app's API key)
} catch (\Paylike\Exception\Conflict $e) {
    // Everything you submitted was fine at the time of validation, but something changed in the meantime and came into conflict with this (e.g. double-capture).
} catch (\Paylike\Exception\ApiConnection $e) {
    // Network error on connecting via cURL
} catch (\Paylike\Exception\ApiException $e) {
    // Unknown api error
}

在大多数情况下,捕获 NotFoundInvalidRequest 作为客户端错误并记录 ApiException 就足够了。

开发

安装依赖项

composer install

测试

按照上述说明安装依赖项(这将解决 PHPUnit),然后您可以运行测试套件

./vendor/bin/phpunit