lukasirsak/mbank

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

访问斯洛伐克 mBank 交易服务的库

dev-master 2019-10-06 17:57 UTC

This package is auto-updated.

Last update: 2020-04-06 19:29:12 UTC


README

使用原生的 mBank API 代替 !!!

https://www.mbank.sk/psd2/najcastejsie-otazky/

访问斯洛伐克 mBank 交易服务的库

PHP 库,用于处理 mBank 账户。库允许执行账户操作。已分支并修改以支持斯洛伐克账户报表。

https://github.com/bgaluszka/mbank PL 交易服务分支。

软件提供“原样”,不提供任何类型的保证。自行承担风险使用。

适用于检查新交易。实现的方法

  • 登录
  • 列出账户
  • 列出最近操作
  • 登出

要求

  • PHP 5.3 或更高版本
  • cURL 扩展

安装

从 composer 安装库

{
    "require": {
        "lukasirsak/mbank": "dev-master"
    }
}

用法示例

所有账户的最近操作

<?php
// load the autoload.php from composer
require 'vendor/autoload.php';

use lukasirsak\Mbank\Mbank;

const MBANK_LOGIN = 'YOUR-LOGIN';
const MBANK_PASSWORD = 'YOUR-PASSWORD';

try {
    $mbank = new Mbank();
    
    // Use const or config. Do not pass l/p directly in login() call or
    // it will be exposed when unhandled exception happen 
   	$mbank->login(MBANK_LOGIN, MBANK_PASSWORD);
    
    try {
        foreach ($mbank->getAllAccountTypes() as $profile) {
            $mbank->profile($profile);
        
            foreach ($mbank->accounts() as $account) {
                printf("%s %s %s\n", $account['name'], $account['value'], $account['currency']);
        
                foreach ($mbank->operations($account['iban']) as $operation) {
                	printf("%s %s %s\n", $operation['title'], $operation['value'], $operation['currency']);
                }
            }
        }
    } catch (\Exception $e) {
        echo "Failed accessing profile: {$e->getMessage()}\n";
    }
    
    $mbank->logout();
    
} catch (\Exception $e) {
	echo "{$e->getMessage()}\n";
}

搜索账户

<?php
// load the autoload.php from composer
require 'vendor/autoload.php';

use lukasirsak\Mbank\Mbank;

const MBANK_LOGIN = 'YOUR-LOGIN';
const MBANK_PASSWORD = 'YOUR-PASSWORD';
const MBANK_IBAN = 'ACCOUNT-IBAN';

try {
    $mbank = new Mbank();
    
    // Use const or config. Do not pass l/p directly in login() call or
    // it will be exposed when unhandled exception happen 
   	$mbank->login(MBANK_LOGIN, MBANK_PASSWORD);
    
    $operations = $mbank->operations(MBANK_IBAN, array(
        'SearchText' => 'Tytuł przelewu',
        'AmountFrom' => -10000.01,
        'AmountTo' => 10000.01,
        'periodFrom' => '01.01.2014',
        'periodTo' => '31.12.2014',
        // 1 page contains 25 operations, set it to 2 to get 50, 3 to 75 and so on
        'pagesCount' => 2,
    ));
    
    foreach ($operations as $operation) {
        printf("%s %s %s\n", $operation['title'], $operation['value'], $operation['currency']);
    }
    
    $mbank->logout();

} catch (\Exception $e) {
	echo "{$e->getMessage()}\n";
}

导出为 CSV

<?php
require_once 'vendor/autoload.php';

use lukasirsak\Mbank\Mbank;

const MBANK_LOGIN = 'YOUR-LOGIN';
const MBANK_PASSWORD = 'YOUR-PASSWORD';
const MBANK_IBAN = 'ACCOUNT-IBAN';

try {
	$mbank = new Mbank();
	$mbank->login(MBANK_LOGIN, MBANK_PASSWORD);

	// all transaction since beginning of given month
	$csv = $mbank->export(MBANK_IBAN,
		
		// export criterias
		array(
			'daterange_from_day'   => '1',
			'daterange_from_month' => date('m'),
			'daterange_from_year'  => date('Y'),
			'daterange_to_day'     => date('d'),
			'daterange_to_month'   => date('m'),
			'daterange_to_year'    => date('Y'),

		    // we want to export incoming transfers only
		    'accoperlist_typefilter_group' => Mbank::TRANS_INCOMING,
		));

	$mbank->logout();

	// you probably want to convert that to UTF-8
	$csv = iconv('WINDOWS-1250', 'UTF-8', $csv);

    file_put_contents('mbank.csv', $csv);

} catch (\Exception $e) {
	echo "{$e->getMessage()}\n";
}