Extracted SegmentId
This commit is contained in:
parent
bf70706f9c
commit
b44482d246
|
@ -4,6 +4,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.tan.TanProcess
|
||||||
import net.dankito.fints.messages.nachrichten.Nachricht
|
import net.dankito.fints.messages.nachrichten.Nachricht
|
||||||
import net.dankito.fints.messages.segmente.ISegmentNumberGenerator
|
import net.dankito.fints.messages.segmente.ISegmentNumberGenerator
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.messages.segmente.SegmentNumberGenerator
|
import net.dankito.fints.messages.segmente.SegmentNumberGenerator
|
||||||
import net.dankito.fints.messages.segmente.implementierte.*
|
import net.dankito.fints.messages.segmente.implementierte.*
|
||||||
import net.dankito.fints.model.BankData
|
import net.dankito.fints.model.BankData
|
||||||
|
@ -61,7 +62,7 @@ open class MessageBuilder(protected val generator: ISegmentNumberGenerator = Seg
|
||||||
return createMessage(true, true, bank, customer, dialogData, listOf(
|
return createMessage(true, true, bank, customer, dialogData, listOf(
|
||||||
IdentifikationsSegment(generator.resetSegmentNumber(2), bank, customer),
|
IdentifikationsSegment(generator.resetSegmentNumber(2), bank, customer),
|
||||||
Verarbeitungsvorbereitung(generator.getNextSegmentNumber(), bank, customer, product),
|
Verarbeitungsvorbereitung(generator.getNextSegmentNumber(), bank, customer, product),
|
||||||
ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, "HKIDN") // TODO: make job reference referencable, don't hard code
|
ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, SegmentId.Identification.id)
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.Segmentkennung
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.Segmentnummer
|
import net.dankito.fints.messages.datenelemente.implementierte.Segmentnummer
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.Segmentversion
|
import net.dankito.fints.messages.datenelemente.implementierte.Segmentversion
|
||||||
import net.dankito.fints.messages.datenelementgruppen.Datenelementgruppe
|
import net.dankito.fints.messages.datenelementgruppen.Datenelementgruppe
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
|
|
||||||
|
|
||||||
open class Segmentkopf @JvmOverloads constructor(
|
open class Segmentkopf @JvmOverloads constructor(
|
||||||
|
@ -18,4 +19,7 @@ open class Segmentkopf @JvmOverloads constructor(
|
||||||
Segmentnummer(segmentNumber),
|
Segmentnummer(segmentNumber),
|
||||||
Segmentversion(segmentVersion) // TODO: how to conditionally add Bezugsegment?
|
Segmentversion(segmentVersion) // TODO: how to conditionally add Bezugsegment?
|
||||||
), Existenzstatus.Mandatory) {
|
), Existenzstatus.Mandatory) {
|
||||||
|
|
||||||
|
constructor(id: SegmentId, segmentVersion: Int, segmentNumber: Int) : this(id.id, segmentVersion, segmentNumber)
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package net.dankito.fints.messages.segmente
|
||||||
|
|
||||||
|
|
||||||
|
enum class SegmentId(val id: String) {
|
||||||
|
|
||||||
|
MessageHeader("HNHBK"),
|
||||||
|
|
||||||
|
MessageClosing("HNHBS"),
|
||||||
|
|
||||||
|
EncryptionHeader("HNVSK"),
|
||||||
|
|
||||||
|
EncryptionData("HNVSD"),
|
||||||
|
|
||||||
|
SignatureHeader("HNSHK"),
|
||||||
|
|
||||||
|
SignatureClosing("HNSHA"),
|
||||||
|
|
||||||
|
DialogEnd("HKEND"),
|
||||||
|
|
||||||
|
ProcessingPreparation("HKVVB"),
|
||||||
|
|
||||||
|
Identification("HKIDN"),
|
||||||
|
|
||||||
|
Tan("HKTAN")
|
||||||
|
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.DialogId
|
import net.dankito.fints.messages.datenelemente.implementierte.DialogId
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.DialogData
|
import net.dankito.fints.model.DialogData
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,6 +13,6 @@ class Dialogende(
|
||||||
dialogData: DialogData
|
dialogData: DialogData
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HKEND", 1, segmentNumber),
|
Segmentkopf(SegmentId.DialogEnd, 1, segmentNumber),
|
||||||
DialogId(dialogData.dialogId)
|
DialogId(dialogData.dialogId)
|
||||||
), Existenzstatus.Mandatory)
|
), Existenzstatus.Mandatory)
|
|
@ -7,6 +7,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatu
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Kreditinstitutskennung
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Kreditinstitutskennung
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.BankData
|
import net.dankito.fints.model.BankData
|
||||||
import net.dankito.fints.model.CustomerData
|
import net.dankito.fints.model.CustomerData
|
||||||
|
|
||||||
|
@ -17,7 +18,7 @@ open class IdentifikationsSegment(
|
||||||
customer: CustomerData
|
customer: CustomerData
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HKIDN", 2, segmentNumber),
|
Segmentkopf(SegmentId.Identification, 2, segmentNumber),
|
||||||
Kreditinstitutskennung(bank.countryCode, bank.bankCode),
|
Kreditinstitutskennung(bank.countryCode, bank.bankCode),
|
||||||
KundenID(customer.customerId),
|
KundenID(customer.customerId),
|
||||||
KundensystemID(customer.customerSystemId),
|
KundensystemID(customer.customerSystemId),
|
||||||
|
|
|
@ -4,6 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.Nachrichtennummer
|
import net.dankito.fints.messages.datenelemente.implementierte.Nachrichtennummer
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.DialogData
|
import net.dankito.fints.model.DialogData
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,6 +16,6 @@ open class Nachrichtenabschluss(
|
||||||
dialogData: DialogData
|
dialogData: DialogData
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HNHBS", 1, segmentNumber),
|
Segmentkopf(SegmentId.MessageClosing, 1, segmentNumber),
|
||||||
Nachrichtennummer(dialogData.messageNumber)
|
Nachrichtennummer(dialogData.messageNumber)
|
||||||
), Existenzstatus.Mandatory)
|
), Existenzstatus.Mandatory)
|
|
@ -4,6 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.*
|
import net.dankito.fints.messages.datenelemente.implementierte.*
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.DialogData
|
import net.dankito.fints.model.DialogData
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,7 +14,7 @@ open class Nachrichtenkopf(
|
||||||
dialogData: DialogData
|
dialogData: DialogData
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HNHBK", 3, segmentNumber),
|
Segmentkopf(SegmentId.MessageHeader, 3, segmentNumber),
|
||||||
Nachrichtengroesse(messageSize),
|
Nachrichtengroesse(messageSize),
|
||||||
HbciVersionDatenelement(HbciVersion.FinTs_3_0_0),
|
HbciVersionDatenelement(HbciVersion.FinTs_3_0_0),
|
||||||
DialogId(dialogData.dialogId),
|
DialogId(dialogData.dialogId),
|
||||||
|
|
|
@ -6,6 +6,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.signatur.Sicherhe
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.BenutzerdefinierteSignatur
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.BenutzerdefinierteSignatur
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +19,7 @@ open class Signaturabschluss(
|
||||||
pinOrTan: String
|
pinOrTan: String
|
||||||
)
|
)
|
||||||
: Segment(listOf(
|
: Segment(listOf(
|
||||||
Segmentkopf("HNSHA", 2, segmentNumber),
|
Segmentkopf(SegmentId.SignatureClosing, 2, segmentNumber),
|
||||||
Sicherheitskontrollreferenz(securityControlReference), // has to be the same as in Signaturkopf
|
Sicherheitskontrollreferenz(securityControlReference), // has to be the same as in Signaturkopf
|
||||||
NotAllowedDatenelement(), // only used for HBCI, not allowed for PIN/TAN
|
NotAllowedDatenelement(), // only used for HBCI, not allowed for PIN/TAN
|
||||||
BenutzerdefinierteSignatur(pinOrTan)
|
BenutzerdefinierteSignatur(pinOrTan)
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.signatur.*
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.*
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.*
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.BankData
|
import net.dankito.fints.model.BankData
|
||||||
import net.dankito.fints.model.CustomerData
|
import net.dankito.fints.model.CustomerData
|
||||||
|
|
||||||
|
@ -35,7 +36,7 @@ open class Signaturkopf(
|
||||||
keyVersion: Int
|
keyVersion: Int
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HNSHK", 4, segmentNumber), // allowed
|
Segmentkopf(SegmentId.SignatureHeader, 4, segmentNumber), // allowed
|
||||||
Sicherheitsprofil(customer.securityMethod!!, customer.version!!), // allowed: method: RAH, PIN;
|
Sicherheitsprofil(customer.securityMethod!!, customer.version!!), // allowed: method: RAH, PIN;
|
||||||
SicherheitsfunktionKodiert(customer.selectedTanProcedure?.securityFunction!!), // allowed: 1, 2
|
SicherheitsfunktionKodiert(customer.selectedTanProcedure?.securityFunction!!), // allowed: 1, 2
|
||||||
Sicherheitskontrollreferenz(securityControlReference), // allowed: <>0
|
Sicherheitskontrollreferenz(securityControlReference), // allowed: <>0
|
||||||
|
|
|
@ -4,6 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.*
|
import net.dankito.fints.messages.datenelemente.implementierte.*
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.BankData
|
import net.dankito.fints.model.BankData
|
||||||
import net.dankito.fints.model.CustomerData
|
import net.dankito.fints.model.CustomerData
|
||||||
import net.dankito.fints.model.ProductData
|
import net.dankito.fints.model.ProductData
|
||||||
|
@ -15,7 +16,7 @@ open class Verarbeitungsvorbereitung(
|
||||||
customer: CustomerData,
|
customer: CustomerData,
|
||||||
product: ProductData
|
product: ProductData
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HKVVB", 3, segmentNumber),
|
Segmentkopf(SegmentId.ProcessingPreparation, 3, segmentNumber),
|
||||||
BPDVersion(bank.bpdVersion, Existenzstatus.Mandatory),
|
BPDVersion(bank.bpdVersion, Existenzstatus.Mandatory),
|
||||||
UPDVersion(customer.updVersion, Existenzstatus.Mandatory),
|
UPDVersion(customer.updVersion, Existenzstatus.Mandatory),
|
||||||
DialogspracheDatenelement(customer.selectedLanguage, Existenzstatus.Mandatory),
|
DialogspracheDatenelement(customer.selectedLanguage, Existenzstatus.Mandatory),
|
||||||
|
|
|
@ -4,6 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.encryption.PinTanVerschluesselteDatenDatenelement
|
import net.dankito.fints.messages.datenelemente.implementierte.encryption.PinTanVerschluesselteDatenDatenelement
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -13,6 +14,6 @@ open class VerschluesselteDaten(
|
||||||
payload: String
|
payload: String
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HNVSD", 1, 999),
|
Segmentkopf(SegmentId.EncryptionData, 1, 999),
|
||||||
PinTanVerschluesselteDatenDatenelement(payload)
|
PinTanVerschluesselteDatenDatenelement(payload)
|
||||||
), Existenzstatus.Mandatory)
|
), Existenzstatus.Mandatory)
|
|
@ -12,6 +12,7 @@ import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.Si
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.SicherheitsidentifikationDetails
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.SicherheitsidentifikationDetails
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.Sicherheitsprofil
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.signatur.Sicherheitsprofil
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
import net.dankito.fints.model.BankData
|
import net.dankito.fints.model.BankData
|
||||||
import net.dankito.fints.model.CustomerData
|
import net.dankito.fints.model.CustomerData
|
||||||
|
|
||||||
|
@ -44,7 +45,7 @@ open class Verschluesselungskopf(
|
||||||
algorithm: Komprimierungsfunktion
|
algorithm: Komprimierungsfunktion
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HNVSK", 3, 998),
|
Segmentkopf(SegmentId.EncryptionHeader, 3, 998),
|
||||||
Sicherheitsprofil(customer.securityMethod!!, customer.version!!),
|
Sicherheitsprofil(customer.securityMethod!!, customer.version!!),
|
||||||
SicherheitsfunktionKodiert(Sicherheitsfunktion.Klartext), // allowed: 4
|
SicherheitsfunktionKodiert(Sicherheitsfunktion.Klartext), // allowed: 4
|
||||||
RolleDesSicherheitslieferantenKodiert(), // allowed: 1, 4
|
RolleDesSicherheitslieferantenKodiert(), // allowed: 1, 4
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.NotAllowedDatenel
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.*
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.*
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
import net.dankito.fints.messages.segmente.SegmentId
|
||||||
|
|
||||||
|
|
||||||
open class ZweiSchrittTanEinreichung(
|
open class ZweiSchrittTanEinreichung(
|
||||||
|
@ -18,7 +19,7 @@ open class ZweiSchrittTanEinreichung(
|
||||||
tanMediaIdentifier: String? = "N" // TODO: why 'N'?
|
tanMediaIdentifier: String? = "N" // TODO: why 'N'?
|
||||||
|
|
||||||
) : Segment(listOf(
|
) : Segment(listOf(
|
||||||
Segmentkopf("HKTAN", 6, segmentNumber),
|
Segmentkopf(SegmentId.Tan, 6, segmentNumber),
|
||||||
TANProzessDatenelement(process),
|
TANProzessDatenelement(process),
|
||||||
// AuftragsHashwert(), // M: bei AuftragsHashwertverfahren<>0 und TAN-Prozess=1. N: sonst
|
// AuftragsHashwert(), // M: bei AuftragsHashwertverfahren<>0 und TAN-Prozess=1. N: sonst
|
||||||
Auftragsreferenz(jobReference, Existenzstatus.Mandatory), // M: bei TAN-Prozess=2, 3, 4. O: bei TAN-Prozess=1
|
Auftragsreferenz(jobReference, Existenzstatus.Mandatory), // M: bei TAN-Prozess=2, 3, 4. O: bei TAN-Prozess=1
|
||||||
|
|
Loading…
Reference in New Issue