Commit Graph

351 Commits

Author SHA1 Message Date
dankito 61d9923230 Implemented resetting selected TAN procedures if user's TAN procedures doesn't contain selected one anymore (should almost never be the case) 2022-02-07 00:18:06 +01:00
dankito 73ba48b030 Removed unused BankDataMapper 2022-02-07 00:18:06 +01:00
dankito 458da2a542 Fixed (once again) that Comdirect returns an error when fetching user's TAN procedure with TAN procedure code '999' but returns user's TAN procedures anyway 2022-02-07 00:18:06 +01:00
dankito 2b8c9316d0 Implemented passing Customer to fints4kBankingClient, so that fints4kBankingClient doesn't have a different Customer instance as BankingPresenter 2022-02-07 00:18:06 +01:00
dankito 137d35ac02 Implemented validating and auto correcting user input in TransferMoneyDialog 2022-02-07 00:18:06 +01:00
dankito 321814a0ca Removed exception from Response as this only crashed iOS app. Choosing now on mapper level which message to show in UI 2022-02-07 00:18:06 +01:00
dankito e0c5a72524 MOved FlickerCodeStepsCalculator and Bit to BankingUiCommon 2022-02-07 00:18:06 +01:00
dankito 469e9c9dab Made FlickerCodeStepsCalculator state free 2022-02-07 00:18:06 +01:00
dankito 8b6b12a755 Renamed FlickerCanvas to FlickerCodeStepsCalculator 2022-02-07 00:18:06 +01:00
dankito c8f29e2390 Implemented passing allowed TAN format and max TAN input length to UI so that controls can be set accordingly 2022-02-07 00:18:06 +01:00
dankito 392c473056 Implemented that if retrieving account transactions is not supported but retrieving balances, at least balances get retrieved 2022-02-07 00:18:06 +01:00
dankito c442d02e97 Renamed FinTsMockValue to PinTanDefaultValue 2022-02-07 00:18:06 +01:00
dankito 3160ebaa2c Fixed that GetUserTanProceduresResponse isn't required anymore 2022-02-07 00:18:06 +01:00
dankito 7649df6a6b Fixed that if getting user's TAN procedures fails method didn't stop / still continued 2022-02-07 00:18:06 +01:00
dankito 989bbd65aa Implemented that if a TAN procedure requires specifying TAN media name, that any tan media name gets supplied (in my tests it made absolutely no difference if the TAN media matches the TAN procedure) 2022-02-07 00:18:06 +01:00
dankito 4cbbbfbe48 Implemented initializing dialog without strong customer authentication (but HKTAN is sent anyway) which is required that is essential for authenticated dialogs, e.g. TAN media which require some banks to be able to initialize an authenticated dialog 2022-02-07 00:18:06 +01:00
dankito 7146ec3a3c Fixed that some jobs don't depend that a specific account supports it but the bank itself, e.g. retrieving TAN media 2022-02-07 00:18:06 +01:00
dankito 529467623c As getUsersTanProcedures() doesn't fetch user's bank accounts anymore I added getAccounts() 2022-02-07 00:18:06 +01:00
dankito c7a814b0bb Fixed commit 'Added mediumName to TanMedium' which should be amended but not reformat code 2022-02-07 00:18:06 +01:00
dankito b07e84b31c Implemented retrieving user's TAN procedures with a non-strong authenticated dialog init with one step TAN procedure (the only process where one step TAN procedure is still allowed) as some banks like Postbank require this 2022-02-07 00:18:06 +01:00
dankito 639653f430 Added mediumName to TanMedium 2022-02-07 00:18:06 +01:00
dankito 2e71b2e53a Added mediumName to TanMedium 2022-02-07 00:18:06 +01:00
dankito 384523e854 Using now CBC and TripleDES as PinTan default values for Operation mode and Encryption algorithm in encryption header 2022-02-07 00:18:05 +01:00
dankito dd74a613f2 Fixed that last two data elements got removed from list - even though that 'Letzte Benutzung' and 'Freigeschaltet am' are optional and may not set resulting in an exception in parseTanGeneratorTanMedium() 2022-02-07 00:18:05 +01:00
dankito d444baeda8 Fixed that if there are no accounts supporting retrieving account transactions addAccountAsync() never returns 2022-02-07 00:17:54 +01:00
dankito 1e987e63ea Adjusting bank name for Deutsche Bank 2022-02-07 00:17:54 +01:00
dankito c50a64f2ee Fixed that all years of dates were too small by 100 years 2022-02-07 00:17:54 +01:00
dankito 45d4f4ae46 Fixed that if continuationId is set and followUpResponse != null, then callback hasn't been called 2022-02-07 00:17:53 +01:00
dankito 61d0ee0cfc Added task packAllForXcode and renamed packForXCode to packForXcode 2022-02-07 00:17:53 +01:00
dankito 388f725c32 Moved fints4k iOS extension methods to common 2022-02-07 00:17:53 +01:00
dankito 85572d7fb2 Added toByteArray() 2022-02-07 00:17:53 +01:00
dankito 7424688b33 Added callbacks to FinTsClientCallback methods so that they can be responded asynchronously 2022-02-07 00:17:53 +01:00
dankito 2889d1b0ce Refactored handling TAN required methods 2022-02-07 00:17:53 +01:00
dankito d18e939818 Fixed that erroneously an error got returned even though lastCreatedMessage was set 2022-02-07 00:17:53 +01:00
dankito 5e2e06b183 Fixed logging exception 2022-02-07 00:17:53 +01:00
dankito a06af50336 Made customerId and userId settable 2022-02-07 00:17:53 +01:00
dankito b5622a5d90 Fixed that user hasn't been asked for his/her TAN procedure 2022-02-07 00:17:53 +01:00
dankito 5734fd38f0 Removed unused FinTsClientForCustomerSwift 2022-02-07 00:17:53 +01:00
dankito 23469c74ce Fixed variables setup 2022-02-07 00:17:53 +01:00
dankito 3b3ada38ca Removed -Async() methods with coroutines as methods now become (except on iOS) async through IWebClient 2022-02-07 00:17:53 +01:00
dankito 8e221f17ce Made IWebClient and FinTsClient async so that on iOS everything but the web request can run on the main thread -> we don't need to freeze objects to pass them between threads 2022-02-07 00:17:53 +01:00
dankito a101a37db2 Little refactorings 2022-02-07 00:17:53 +01:00
dankito 051fc9a3e9 Removed platform specific GetTransactionsParameter 2022-02-07 00:17:53 +01:00
dankito 1eecb07296 Renamed FinTsClientSwift to FinTsClientForCustomerSwift 2022-02-07 00:17:53 +01:00
dankito 19c8e4ea8e Using now Date and UUID from common in fints4k. Could therefore remove klock 2022-02-07 00:17:53 +01:00
dankito d50f458ef4 Extracted Logger to new module common 2022-02-07 00:17:53 +01:00
dankito fa6fdd0800 Started FinTsClientSwift but which results due Kotlin/Native's shared XOR mutable in very ugly code 2022-02-07 00:17:53 +01:00
dankito 7e19930742 Forgot to commit removed suspend 2022-02-07 00:17:53 +01:00
dankito 3dc8e64127 Moved EncryptionDataSegmentHeaderRegex from ResponseParser to MessageUtils 2022-02-07 00:17:53 +01:00
dankito d97375d949 Removed serialization dependencies 2022-02-07 00:17:53 +01:00
dankito 46783b6118 Fixed that Ionspin BigDecimal hasn't been removed 2022-02-07 00:17:53 +01:00
dankito 52ee0a0f73 Removed suspend from methods as coroutines don't really work in Kotlin/Native 2022-02-07 00:17:53 +01:00
dankito 4999404113 Added iOS target 2022-02-07 00:17:53 +01:00
dankito 47790b0486 Fixed Atrium JVM dependency 2022-02-07 00:17:53 +01:00
dankito 03bdb19668 Introduced Amount to be able to remove Ionspin BigDecimal dependency 2022-02-07 00:17:53 +01:00
dankito 9a5e0a1098 Made FinTsClient methods suspendable; could remove ThreadPool for that 2022-02-07 00:17:53 +01:00
dankito e1d08d3304 Added maven-publish plugin 2022-02-07 00:17:53 +01:00
dankito 1c049b4bf3 Added example code to get it at least working in browser 2022-02-07 00:17:53 +01:00
dankito 2dff398baa Implemented catching exceptions 2022-02-07 00:17:53 +01:00
dankito fbaa9fa941 Added JavaScript target. - Had to remove @JvmOverloads for that. - Had to replace Math.pow() and String.format(). 2022-02-07 00:17:53 +01:00
dankito 16707aa70a Added a quick fix for logging in to e.g. Deutsche Bank. TODO: find a general solution 2022-02-07 00:17:53 +01:00
dankito 134b6e4f5e Fixed that may SmsTAN gets chosen 2022-02-07 00:17:53 +01:00
dankito 75e77eb84a Fixed that balance of pre booked transactions may be empty 2022-02-07 00:17:53 +01:00
dankito 16284e5782 Removed useStrongAuthentication from createInitDialogMessage() as this value can be determined by if user's TAN procedure is selected or not 2022-02-07 00:17:53 +01:00
dankito 2f4bac9fbf Fixed selectSuggestedTanProcedure() so that SmsTan(costs money) or ChipTanUSB (not supported) don't get selected by default 2022-02-07 00:17:53 +01:00
dankito e44a68addc Converted fints4k to a Kotlin multi platform project 2022-02-07 00:17:53 +01:00
dankito b2374d2ac2 Removed unused getTransactionsFromResponse() 2022-02-07 00:17:53 +01:00
dankito 92231a72a1 Sorting now by value date instead of booking date 2022-02-07 00:17:53 +01:00
dankito 9ebc23016c Forgot to commit adding tanRequiredButWeWereToldToAbortIfSo 2022-02-07 00:17:53 +01:00
dankito 614074b9b9 Implemented abortIfTanIsRequired so that at app start we can try to get all accounts' transaction without that user is being asked to enter a TAN if retrieving transaction without TAN isn't supported 2022-02-07 00:17:53 +01:00
dankito 3072517eef Fixed that for ChipTan manuell and USB there's no flicker code to decode 2022-02-07 00:17:53 +01:00
dankito 3c683d57a8 Fixed that usage types only consist of upper case letters 2022-02-07 00:17:53 +01:00
dankito 160262cdff Fixed that Thh:mm:ss(:SSS) is considered as field code 2022-02-07 00:17:53 +01:00
dankito a16cf630b4 Implemented mapping all account transaction fields; Renamed usage to unparsedUsage, isCancellation to isReversal, customerReference to referenceForTheAccountOwner, bankReference to referenceOfTheAccountServicingInstitution and referenceReferenceNumber to relatedReferenceNumber 2022-02-07 00:17:53 +01:00
dankito ac78758262 Forgot to commit that Turnover and TransactionDetails have been renamed 2022-02-07 00:17:53 +01:00
dankito 8589a4efaa Fixed that non formatted usage parts got joined without spaces making them a bit unreadable 2022-02-07 00:17:52 +01:00
dankito 676eb721e7 Renamed Turnover to StatementLine and TransactionDetails to InformationToAccountOwner 2022-02-07 00:17:52 +01:00
dankito d33de9a009 Added parsing Statement Line's fund code and supplementaryDetails 2022-02-07 00:17:52 +01:00
dankito 55fc0ca266 Renamed ReferenceReferenceNumberCode to RelatedReferenceNumberCode and simplified splitting statementAndMaySequenceNumber and accountIdentification 2022-02-07 00:17:52 +01:00
dankito 4cf2fc0973 Renamed parseMt940Chunk() to parseTransactionsChunk(), parseMt940String() calls now parseMt940Chunk(), added comments 2022-02-07 00:17:52 +01:00
dankito 012f164414 Implemented if a message contains large binary parts, e.g. when retrieving account transactions, these binary parts get extracted directly. For small binary parts iterating over string is faster then creating substring 2022-02-07 00:17:52 +01:00
dankito 4a890a0ba7 Fixed getting remainder without that an exception gets thrown 2022-02-07 00:17:52 +01:00
dankito e749a88c83 Implemented parsing each received MT940 part immediately and passing it on to UI 2022-02-07 00:17:52 +01:00
dankito b89414b1f1 Fixed detecting when dash at start of line is not a statement separator 2022-02-07 00:17:52 +01:00
dankito 08b21980f9 Simplified removing new line characters 2022-02-07 00:17:52 +01:00
dankito 419e97d138 Improved performance for splitting into statements by factor 10 2022-02-07 00:17:52 +01:00
dankito bee07743d9 Fixed detecting and correcting annual jump from booking date to value date 2022-02-07 00:17:52 +01:00
dankito b93ce1ca0d Collecting now all chars that should be added to part in a StringBuilder which seems to be the fastest solution 2022-02-07 00:17:52 +01:00
dankito 40c5d64103 Removed unused allAccounts and continuationId 2022-02-07 00:17:52 +01:00
dankito 3d73289649 Added splitIntoPartsAndUnmaskCharByChar(). It's uglier but more efficient on strings with many separators 2022-02-07 00:17:52 +01:00
dankito fd1343d8b9 Could half the mapping time by checking first if the string contains the masking character before calling replace() (why does this make any difference?) 2022-02-07 00:17:52 +01:00
dankito face00e2a7 Sped up parsing job TAN configurations a bit 2022-02-07 00:17:52 +01:00
dankito bd77a8b6f4 Sped up parsing allowed job names 2022-02-07 00:17:52 +01:00
dankito 2401b0e85c Renamed BankingAndroidApp package from net.dankito.fints4java.android to net.dankito.banking.ui.android 2022-02-07 00:17:52 +01:00
dankito 53ebba0c9f Moved fints4k library package from net.dankito.fints to net.dankito.banking.fints 2022-02-07 00:17:52 +01:00
dankito 247e77586a Getting customer system ID now when opening a dialog -> no extra dialog just to get customer system id is needed anymore. Hope that works for all banks 2022-02-07 00:17:52 +01:00
dankito d4b900b770 Forgot to commit the prettyPrintHbciMessage() got removed from old place 2022-02-07 00:17:52 +01:00
dankito 685e4209c3 Implemented sending message log 2022-02-07 00:17:52 +01:00
dankito 9e31180e52 Renamed remaining classed from 'fints4java' to 'fints4j' 2022-02-07 00:17:52 +01:00
dankito de8b2d5bd9 Implemented removing account transactions from response for message log 2022-02-07 00:17:52 +01:00
dankito 4014b92810 Implemented that close dialog responses don't get parsed 2022-02-07 00:17:52 +01:00
dankito 0e9097f8cc Implemented to not close dialogs when adding a new account to speed things up a bit 2022-02-07 00:17:52 +01:00
dankito 124b3ca9f6 Implemented if bank already closed dialog no close dialog message gets send anymore to bank 2022-02-07 00:17:52 +01:00
dankito 231bf41cb3 Fixed that challengeHHD_UC sometimes got decoded wrong, there was then a byte missing as binary data got unmasked 2022-02-07 00:17:52 +01:00
dankito 998c6d0c01 Implemented extracting segment that is embedded in encrypted data segment HNVSD 2022-02-07 00:17:52 +01:00
dankito 6935ce2a59 Removed accidentally checked in constructor keyword 2022-02-07 00:17:52 +01:00
dankito 26c9ef02a3 Implemented decoding control bytes 2022-02-07 00:17:52 +01:00
dankito 827fd7bc92 Implemented detecting a chipTAN's HHD version 2022-02-07 00:17:52 +01:00
dankito 5e57d2a490 Added collecting additional information about TanProcedureParameter (to detect HHD version) and other TAN relevant information like setting SMS Abbuchungskonto or Auftraggeberkonto is required 2022-02-07 00:17:52 +01:00
dankito cee92e4d2d Refactored code a bit 2022-02-07 00:17:52 +01:00
dankito b18a9a04f4 Implemented that if an integer is enter only for bank code is search, otherwise only for bank name and city 2022-02-07 00:17:52 +01:00
dankito 532515badd Renamed handleMayRequiredTan() to handleMayRequiresTan() 2022-02-07 00:17:52 +01:00
dankito 13f772a978 Fixed that rebuildMessage() increased message number even though createMessage() below also increased it -> message had wrong number and got rejected by bank 2022-02-07 00:17:52 +01:00
dankito bfdb3833a6 Checking now all responses if a TAN is required and if if contains a continuation ID (Aufsetzpunkt) 2022-02-07 00:17:52 +01:00
dankito deb7f3ad36 Renamed convertToAllowedCharacters() to convertDiacriticsAndReservedXmlCharacters(), removed side effect that containsOnlyAllowedCharacters() converts diacritics and XML characters and added default implementation convertDiacriticsAndReservedXmlCharactersAndCheckIfContainsOnlyAllowedCharacters() 2022-02-07 00:17:52 +01:00
dankito f89e2855d2 Fixed that even though by SEPA standard it's allowed to leave usage empty, some banks only accept non-empty usages 2022-02-07 00:17:52 +01:00
dankito 8bc3f0fe8e Fixed setting all account information on KontoverbindungInternation for SEPA money transfer 2022-02-07 00:17:52 +01:00
dankito 593ad2be8e Fixed that some banks don't allow setting timezone 2022-02-07 00:17:52 +01:00
dankito e18ffb8a83 Implemented replacing diacritics and reserved XML characters in SEPA messages 2022-02-07 00:17:52 +01:00
dankito a56240a300 Added comment that retrieving TAN media (= TAN generator) list is only supported for accounts with chipTAN TAN procedures 2022-02-07 00:17:52 +01:00
dankito f2a12a0717 Fixed that supported SEPA messages is an info of bank parameter data, not of user data 2022-02-07 00:17:52 +01:00
dankito cd77da6da3 Fixed that for accounts that only have appTAN, pushTAN, smsTAN, ... as TAN procedures test getTanMediaList() would fail 2022-02-07 00:17:52 +01:00
dankito 7226b0965d Only creating expensive log message if DEBUG log level is really enabled 2022-02-07 00:17:52 +01:00
dankito 2df12c4984 Started implementing message log (so that it later can be displayed to user) 2022-02-07 00:17:52 +01:00
dankito ea96818d60 Implemented removing entered white spaces 2022-02-07 00:17:52 +01:00
dankito 3c56f28efe Fixed library name 2022-02-07 00:17:52 +01:00
dankito a0e7fe0534 Implemented setting selected TAN procedure without asking user if there is only one allowed TAN procedure 2022-02-07 00:17:52 +01:00
dankito 1859fb2575 Implemented parsing PinInfo and setting HKTAN only if required according to PinInfo 2022-02-07 00:17:52 +01:00
dankito de91056094 Fixed that sheet number may is omitted 2022-02-07 00:17:52 +01:00
dankito 88effa5e1f Updated JavaShowcase 2022-02-07 00:17:52 +01:00
dankito 302dc6f8ed Renamed userDidNotEnterTan() to userDidNotEnterAtc() 2022-02-07 00:17:52 +01:00
dankito 6b53355b97 For public signature removed parameter hasRetrievedTransactionsWithTanJustBefore from tryGetTransactionsOfLast90DaysWithoutTan() 2022-02-07 00:17:52 +01:00
dankito 11359b5664 Added @JvmOverloads 2022-02-07 00:17:52 +01:00
dankito 394406c785 Set version to 1.0.0 2022-02-07 00:17:52 +01:00
dankito 8f0b2411c5 Addd @JvmOverloads 2022-02-07 00:17:52 +01:00
dankito bea45cb661 Implemented instant payment money transfer 2022-02-07 00:17:52 +01:00
dankito 8c6c65c7b0 Added enum AccountFeature to be better extensible of upcoming implemented features 2022-02-07 00:17:52 +01:00
dankito 68dc62d02c Restructured accounts property 2022-02-07 00:17:52 +01:00
dankito a6cc51801e Moved pure test code (getBestAccountForRetrievingTransactions()) to tests 2022-02-07 00:17:52 +01:00
dankito b556205134 Fixed removing white spaces from entered IBANs and BICs 2022-02-07 00:17:52 +01:00
dankito 57911d835e Moved DialogContext.increaseMessageNumber() to a central place 2022-02-07 00:17:52 +01:00
dankito f21227c5fa Made bank transfer usage unique to avoid 'Auftrag wegen Doppeleinreichung abgelehnt' error 2022-02-07 00:17:52 +01:00
dankito fcda1a0e1a Setting dialogId now in a central place 2022-02-07 00:17:52 +01:00
dankito 333747a5e4 Implemented DialogContext to keep track of dialog's current state and to not have to pass BankData, CustomerData and ProductData to almost all methods 2022-02-07 00:17:52 +01:00
dankito 584adf9375 Fixed that there was no account on customer 2022-02-07 00:17:52 +01:00
dankito 2dda31ec38 Fixed that colon is now a legal character 2022-02-07 00:17:52 +01:00
dankito 5003a5bffe Fixed parseBankParameters_MaxMessageSizeIsAnEmptyString() 2022-02-07 00:17:52 +01:00
dankito b7ed5aa015 Fixed that balance of prebooked transactions is optional 2022-02-07 00:17:52 +01:00
dankito 737061f606 Fixed that photoTAN of comdirect is encoded the same way as photoTAN with chipTAN. So i guess it's the same with QrTan, e.g. from 1822 direct 2022-02-07 00:17:52 +01:00
dankito 84c0011e13 Fixed that if getting user's TAN procedures comdirect says that message is invalid but it isn't 2022-02-07 00:17:52 +01:00
dankito 496e73dc9f Renamed fints4java to fints4k 2022-02-07 00:17:52 +01:00