laulamanapps/ecurring-api

PHP eCurring API 客户端

dev-master 2018-10-25 13:04 UTC

This package is auto-updated.

Last update: 2024-08-26 02:00:12 UTC


README

本软件包为您提供了简单的集成官方 eCurring,适用于您的 PHP 项目。

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version License

安装

使用 composer,添加

$ composer require laulamanapps/ecurring-api

本软件包旨在提供灵活性,您可以通过实现 LauLamanApps\eCurring\Http\ClientInterface 简单地创建自己的 http 适配器

不想麻烦?可以使用提供的 Guzzle 适配器:在 composer 中添加 guzzlehttp

$ composer require guzzlehttp/guzzle

获取访问令牌

注册 eCurring 并获取您的 API 密钥

用法

创建新客户

use LauLamanApps\eCurring\eCurringClientFactory;
use LauLamanApps\eCurring\Resource\Customer;
use LauLamanApps\eCurring\Resource\Transaction\PaymentMethod;

$client = eCurringClientFactory::create('<ApiKey>');

$customer = Customer::new(
    'Luke',
    'Skywalker',
    PaymentMethod::directDebit(),
    'L Skywalker',
    'NL17ABNA1171403585'
);

$customer = $client->createCustomer($customer);

将客户添加到订阅

use LauLamanApps\eCurring\eCurringClientFactory;
use LauLamanApps\eCurring\Resource\Subscription;
use LauLamanApps\eCurring\Resource\Subscription\Mandate;

$client = eCurringClientFactory::create('<ApiKey>');

$customer = $client->getCustomer(1);
$subscriptionPlan = $client->getSubscriptionPlan(2);


/**
 * Mandate is Optional, if you dont provide it eCurring wil create a
 * mandate for you and the customer can accept the mandate via eCurring
 * see https://docs.ecurring.com/subscriptions/create
 */
$mandate = new Mandate(
    'MDT-000001',
    true,
    new DateTimeImmutable('2018-10-16')
);

$subscription = Subscription::new(
    $customer,
    $subscriptionPlan,
    $mandate
);

$subscription = $client->createSubscription($subscription);

为订阅创建付款

use LauLamanApps\eCurring\eCurringClientFactory;
use LauLamanApps\eCurring\Resource\Transaction;
use Money\Money;

$client = eCurringClientFactory::create('<ApiKey>');

$subscription = $client->getSubscription(1);

$transaction = Transaction::new(
    $subscription,
    Money::EUR(1000),
    new DateTimeImmutable('2018-11-20')
);

$transaction = $client->createTransaction($transaction);

列出客户并遍历它们

use LauLamanApps\eCurring\eCurringClientFactory;
use LauLamanApps\eCurring\Resource\Curser\Pagination;

$client = eCurringClientFactory::create('<ApiKey>');

$pagination =  new Pagination(2); //-- [optional] Lets start pagination on page 2
$customers = $client->getCustomers($pagination);

$customers->disableAutoload(); //-- just iterate over one page

foreach ($customers as $customer) {
    // Do something with the customer
}

测试

本软件包包含两种类型的测试:单元测试和集成测试。要运行它们,您可以使用项目根目录中的 make 命令。

$ make tests-unit
$ make tests-integration

作者

eCurring API 由 LauLaman 开发。