9orky / espago-api-php
Espago API 客户端
Requires
- php: >=7.0
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- phpmd/phpmd: ^2.4
- phpspec/phpspec: ~3.1
- sebastian/phpcpd: *
- squizlabs/php_codesniffer: 2.*
- symfony/console: ~3.1
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