2.5 KiB
2.5 KiB
EPC QR Code
Vermarktet als GiroCode, scan2Code, Zahlen mit Code, ... ist der EPC QR Code ein Standard des European Payments Council zum Übermitteln von Überweisungsdaten mittels eines QR Codes.
Der EPC QR Code enthält Überweisungsdaten wie IBAN, Empfängername, Betrag, ...
Eine Clientanwendung scannt dieses QR Code und kann sofort alle Überweisungsdaten anzeigen und, sofern vom Kunden gewünscht,
diese Überweisung direkt ausführen.
Setup
Gradle:
repositories {
// ... mavenCentral() etc.
maven {
setUrl("https://maven.dankito.net/api/packages/codinux/maven")
}
}
dependencies {
implementation("net.codinux.banking.epcqrcode:epc-qr-code:0.5.0")
}
Maven:
<repositories>
<repository>
<id>codinux</id>
<url>https://git.dankito.net/api/packages/codinux/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.codinux.banking.epcqrcode</groupId>
<artifactId>epc-qr-code-jvm</artifactId>
<version>0.5.0</version>
</dependency>
</dependencies>
EPC QR Code erstellen
val generator = net.codinux.banking.epcqrcode.EpcQrCodeGenerator()
// these are the only two mandatory fields:
val receiverName = "Belgian Red Cross"
val iban = "BE72000000001616"
// optional but recommended fields:
val bic: String? = null
val amount: String? = "1"
val reference: String? = "Donation"
val informationForUser: String? = "Was für ein schönes EPC QR Code Beispiel" // not used / displayed by most applications
val qrCodeHeightAndWidth = 400
val imageFormat = ImageFormat.PNG
// generate EPC QR code and QR code image
val result = generator.generateEpcQrCode(EpcQrCodeConfig(receiverName, iban, bic, amount, reference, informationForUser,
qrCodeHeightAndWidth = qrCodeHeightAndWidth, imageFormat = imageFormat))
val imageBytes = result.bytes // now show these in UI
EPC QR Code dekodieren
Dekodieren Sie zuerst den QR Code mittels einer QR Code Library. Den im QR Code Text übergeben Sie dann an
EpcQrCodeParser
zum dekodieren der Überweisungsdaten:
val decodedQrCodeText: String = "..." // the text that is contained / read from QR code
val parser = net.codinux.banking.epcqrcode.parser.EpcQrCodeParser()
val result = parser.parseEpcQrCode(decodedQrCodeText)
val epcQrCode = result.epcQrCode
if (epcQrCode != null) {
println("Receiver = ${epcQrCode.receiverName}, IBAN = ${epcQrCode.iban}, amount = ${epcQrCode.amount}, ...")
} else {
println("Code not decode EPC QR code: ${result.error}")
}