igormukhingmailcom / privatbank-bundle

dev-master 2017-04-30 00:07 UTC

This package is auto-updated.

Last update: 2024-09-18 18:23:06 UTC


README

Scrutinizer Code Quality Code Coverage Build Status

此bundle提供与Privatbank/Privat24 API(https://api.privatbank.ua/p24api)交互的能力。

并非所有可用方法都已实现(仅实现个人账户的信息方法)。欢迎贡献力量。

安装

composer require igormukhingmailcom/privatbank-bundle
# app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = [
            ...
            new Mukhin\PrivatbankBundle\MukhinPrivatbankBundle(),
        ];
    }
}

配置

# app/config/parameters.yml
parameters:
    ...
    privatbank_merchant_id: 12345
    privatbank_merchant_secret: Xn3U9xm01DF4888LY1W2Zz5eDXwkMrBZ
    privatbank_card_number: 4149437864339229
# app/config/parameters.yml.dist
parameters:
    ...
    # Privatbank merchant
    privatbank_merchant_id: ~
    privatbank_merchant_secret: ~
    privatbank_card_number: ~
# app/config/config.yml
mukhin_privatbank:
    merchants:
        my_merchant_name:
            merchant_id: "%privatbank_merchant_id%"
            merchant_secret: "%privatbank_merchant_secret%"
            card_number: "%privatbank_card_number%"

关于此配置,商家服务mukhin_privatbank.merchant.my_merchant_name将被创建。

用法

$merchant = $this->get('mukhin_privatbank.merchant.my_merchant_name');

# Balance
$balance = $merchant->getBalance();
echo sprintf(
    '%s: Balance at card %s is %s %s',
    $balance->getBalanceDate()->format('Y-m-d H:i:s'),
    $balance->getCard()->getCardNumber(),
    $balance->getBalance(),
    $balance->getCard()->getCurrency()
);

# History
$sinceDate = new \DateTime('1970-01-01');
$toDate = new \DateTime();
$history = $merchant->getHistory($sinceDate, $toDate);

echo sprintf(
    'Debit is %s, credit is %s for period %s-%s',
    $history->getCredit(),
    $history->getDebit(),
    $sinceDate->format('Y-m-d H:i:s'),
    $toDate->format('Y-m-d H:i:s')
);
foreach ($history->getStatements() as $statement)
    echo sprintf(
        '%s %s, balance is %s %s at %s (%s)',
        $statement->getSignedAmount(),
        $statement->getCurrency(),
        $statement->getBalance(),
        $statement->getCurrency(),
        $statement->getTransactionDate()->format('Y-m-d H:i:s'),
        $statement->getDescription()
    );
}

读取