Giter Site home page Giter Site logo

mestrona / aqbanking-php Goto Github PK

View Code? Open in Web Editor NEW

This project forked from janunger/aqbanking-php

1.0 1.0 3.0 188 KB

A wrapper to use AqBanking CLI from a PHP, for example to fetch bank transactions via HBCI / FinTS

License: MIT License

PHP 100.00%

aqbanking-php's People

Contributors

alpineglow avatar amenk avatar eporsche avatar grummbeer avatar janunger avatar mhammerschmidt avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

aqbanking-php's Issues

New Parameter disables to read from SepaTransfer

Hi,

this new line:

. ' --transactiontype=statement' // we are only interested in statements, not notedStatement and so on

Actually disables to read the result set from a SepaTransferCommand. For both the sepa transfer and fetch balance statements the same RenderContextFileToXMLCommand is used to get the xml. I would like to remove this parameter and make SepaTransferCommand working again.

Add more non-problematic strings to ResultAnalyzer

In src/AqBanking/Command/ShellCommandExecutor/ResultAnalyzer.php

This should be added:

    '/===== Getting Certificate =====/',

This might as well be needed on some setups - it does not seem to be critical - but there might be problems with Unicode Characters. Maybe we need a strict- and not-so-strict-mode

    '/Plugin "aqebics" not found/',
    '/Could not load backend "aqebics"/',
    '/Plugin "de" not found./',
    '/BankInfo plugin for country "de" not found/',

Transaction <> Account

Transaction should not convert local* and remote* values into an Account entity.

  1. Account is an AqBanking Account, with mandatory BLZ as bankCode, which is needed for requests.
  2. "Account" from Transaction is more like a "BankingContact" without any mandatory "BLZ", eg. bankCode is the BIC an accountNumber the IBAN
  3. The fetched fields depends on download mode. "CAMT" is different from "not CAMT"
  4. What is specified as "localName" in Transaction has nothing to do with the real local "Account" oder "User", it is what the other party (remote) has entered in the "Empfänger" field
  5. Some fields from a Transaction are omitted by parser, but should not, all fields should be there.

Possible solution:

  • construct the Transaction with a array of key,values from transaction xml or direct from xml content.
    • Transaction::fromXML('xml content')
    • Transaction::fromArray('array<key, value>')
    • new Transaction('array<key, value>')
    • or similar
  • use magic getters __get('key of transaction data')
  • Do not convert local* and remote* values to an (AqBanking) Account entity.
  • The true local* is provided by the accountInfo node
  • turning value into a Money Object by its getter. getValue() => return Money …

Should SetAppropriateITanModeCommand removed?

Should the command SetAppropriateITanModeCommand be removed or deprecated?

As far i can see, this "command" makes no sense. I'am not sure if this is doing what expected.

  • does not work, wrong command
  • handle with HBCIVersion but set a itanmode?
  • is not a aqbanking command. It is a collection of commands, more like a function of a (userland/api) controller.
  • if an available ITanMode is set, is it the one the user wants/is ready to use?

for example

- 6910 (F910/V6/P2): HHD1.3.0 (chipTAN manuell) [available]
              ^
              This is recognized as "HBCIVersion"? Is it the HBCI-Version?

My HBCI Version is '300', so …

Is Account missing a IBAN property?

These two tests fail

public function can_render_transfers()

public function can_render_transactions()

Because ContextXmlRenderer::getTransactions() set the IBAN as accountNumber to the Account class.

  • What is expected as the accountNumber? Kontonummer or IBAN?
  • getTransaction() should not set the IBAN as accountNumber?
  • Account needs a IBAN property which could used by getTransaction()?

@amenk do you have some suggestions?

Compatibility with AqBanking 5.99.30beta

The recent AqBanking version has several changes in interfacing

  • duplicate users can be created
  • Commands expect the integer user ID, so after creating that one we have to fetch it
  • to be continued ...

Deprecation warning

Getting this with PHP8.1 & aqbanking-php 4.0.0

/bin/php8.1 /home/amk/alex/mestrona/workspace/mbank/mbank default
Config code = default
Fetching all available transactions from the bank
Fetching ...
PHP Deprecated:  Optional parameter $valutaDate declared before required parameter $customerReference is implicitly treated as a required parameter in /home/amk/alex/mestrona/workspace/mbank/vendor/mestrona/aqbanking-php/src/Transaction.php on line 12

Deprecated: Optional parameter $valutaDate declared before required parameter $customerReference is implicitly treated as a required parameter in /home/amk/alex/mestrona/workspace/mbank/vendor/mestrona/aqbanking-php/src/Transaction.php on line 12

Potential Bug: "-" are sometimes missing in the purpose field

I am using mbank and this library,
I have purposes like (send from the own account by myself)

2023-11-01 2023-11-02 2023-11-03 2023-11-04

but in my app seemingly random, some "-" are missing and replaced by a space.

2023-11-01 2023-11-02 2023-11-03 2023-11 04

In the webinterface of the bank it looks fine.

Did anyone else notice this behaviour?

@grummbeer maybe?

I will try to investigate further when there is time...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.