codebude / QRCoder

A pure C# Open Source QR Code implementation
MIT License
4.66k stars 1.1k forks source link

Girocode / PayloadGenerator, BIC validation errors when not passed in to Girocode constructor, with SCT version set to 2 #582

Open Mies75 opened 1 month ago

Mies75 commented 1 month ago

Type of issue

[x] Bug
[ ] Question (e.g. about handling/usage)
[ ] Request for new feature/improvement

Expected Behavior

A new instance of Girocode should not throw a nullrefexception or return validation errors when BIC is not supplied and SCT version is set to Girocode.GirocodeVersion.Version2.

Current Behavior

BIC is validated regardless of Girocode.GirocodeVersion. When not supplied a null ref occurs on _iban = iban.Replace(" ", "").ToUpper();

Possible Solution (optional)

Always validate BIC when Girocode.GirocodeVersion.Version1. Only validate BIC when Girocode.GirocodeVersion.Version2 and BIC is supplied.

Steps to Reproduce (for bugs)

var payload = new Girocode(iban:"NL86INGB0002445588", bic: null, name: "a name", remittanceInformation: "some info", amount: 1337.99m, version: Girocode.GirocodeVersion.Version2, encoding: Girocode.GirocodeEncoding.UTF_8);

Your Environment