9orky/espago-api-php

此包最新版本(v0.8.2)没有提供许可信息。

Espago API 客户端

v0.8.2 2017-01-07 17:05 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:09:13 UTC


README

使用 PHP7 编写的 Espago API 非官方客户端。

安装

要使用 Composer 安装,只需在您的控制台输入

composer require "9orky/espago-api-php"

然后您就完成了!

用法

为了避免一个包含所有 API 方法的巨大文件,客户端被拆分为更小的功能组件。门面 API 在:Gorky\Espago\Factory\ApiFactory

引导

您需要做的就是使用以下方式实例化一个 API 工厂:

  • apiUrl - 这非常明显,为了开发目的,您的 URL 是:https://sandbox.espago.com
  • apiCredentials - 这是一个位于 Gorky\Espago\Model\ApiCredentials 的对象,需要三个参数,这些参数应由 Espago 提供:公钥、应用 ID 和密码。

这在代码中看起来是怎样的呢?

$apiFactory = new \Gorky\Espago\Factory\ApiFactory(
    'https://sandbox.espago.com',
    new \Gorky\Espago\Model\ApiCredentials('app_id', 'public_key', 'password')
);

执行最简单的交易

好的,现在有了我们方便的 Api Factory,我们可以继续进行我们的第一次交易。我们需要做的是向客户索取他的卡详细信息并对他进行收费。

获取令牌

我们简单交易的第一步是生成一个特殊的令牌,该令牌将在 Espago 中代表卡片。

$tokensApi = $apiFactory->buildTokensApi();

// first we need Customer card's representation
$unauthorizedCard = $tokensApi->createUnauthorizedCard(
    '4111111111111111',
    'John',
    'Doe',
    '04',
    '2020',
    '111'
);

// so now we can transform it to a Token
$token = $tokensApi->createToken($unauthorizedCard);

令牌的模型是一个响应对象,所以,与其他对象一起,它位于:Gorky\Espago\Model 目录。探索这个区域,以便熟悉系统可以处理的内容。

进行收费

我们已经有了一个令牌,现在是我们对客户进行收费的时候了。为此,我们必须调用收费 API 并提供一些支付详细信息。

$chargesApi = $apiFactory->buildChargesApi();

// carefuly study Gorky\Espago\Model\Response\Charge and corresponding API documents!
$charge = $chargesApi->createChargeByToken($token, 12.66, 'PLN', 'doughnuts');

是的,实际上就是这么简单 :-)

记住 Espago 中的卡片

到现在为止,支付交易已经执行,客户已经被收费。但是等等,他刚刚忘记为他妻子的周年纪念日买花。哦不,他必须再次输入所有这些数字和字母!但是不用担心,我们实际上可以保存客户的卡在 Espago 中,以便在需要时使用。

为了将卡片与客户匹配,我们需要创建一个客户端。我们可以用我们的朋友令牌的一点点帮助来完成这个任务。

$tokensApi = $apiFactory->buildTokensApi();

$unauthorizedCard = $tokensApi->createUnauthorizedCard(
    '4111111111111111',
    'John',
    'Doe',
    '04',
    '2020',
    '111'
);

$token = $tokensApi->createToken($unauthorizedCard);

$clientsApi = $apiFactory->buildClientsApi();

$client = $clientsApi->createClient($token, 'john@example.com', 'Our precious client John');

$chargesApi = $apiFactory->buildChargesApi();

$charge = $chargesApi->createChargeByClient($client, 12.66, 'PLN', 'doughnuts');

现在您需要做的就是持久化客户端 ID,从现在起您可以根据需要对客户进行收费。当您的客户是回头客时,这非常方便。

花哨的

有一个简单的控制台应用程序可以用来在您的沙盒帐户上玩耍! :-) 为了使其可用,我们需要做一些准备工作。

创建凭据文件

在主目录中创建一个名为 credentials.php 的 PHP 文件。

// credentials.php

return [
    'app_id'     => 'your_app_id',
    'public_key' => 'your_public_key',
    'password'   => 'your_password'
];

是时候玩耍了

创建新客户端

php espago.php customer:create

向客户端收费

php espago.php customer:charge --interactive

或者

php espago.php customer:charge --clientId="1234" --amount="6.67" --currency="PLN" --description="flowers"

捕获授权保留

php espago.php customer:charge --capture --chargeId="pay_COy6zH9fLj1d7K" --amount="23.44"

退款

php espago.php customer:charge --refund --chargeId="pay_COy6zH9fLj1d7K" --amount="23.44"

取消收费

php espago.php customer:charge --cancel --chargeId="pay_COy6zH9fLj1d7K"

注意:请记住,您始终可以使用更方便的 --interactive 开关

php espago.php customer:charge --cancel --interactive

API 文档在这里: https://developers.espago.com/en/v3#201-preliminary-assumptions