diff --git a/lib/rspayd/czech_payment.rb b/lib/rspayd/czech_payment.rb index 96c5d66..c23ac74 100644 --- a/lib/rspayd/czech_payment.rb +++ b/lib/rspayd/czech_payment.rb @@ -10,7 +10,7 @@ class CzechPayment < Payment # vs - Variabilní symbol. # ss - Specifický symbol. - attr_reader :accountPrefix, :accountNumber, :bankCode, :vs, :ss + attr_reader :accountPrefix, :accountNumber, :bankCode, :vs, :ss, :ks def initialize(options) options = Hash[options.map { |(k, v)| [k.to_sym, v] }] @@ -29,6 +29,7 @@ def initialize(options) @vs = options[:vs] @ss = options[:ss] + @ks = options[:ks] super end @@ -46,6 +47,7 @@ def to_s out = [ super ] out << "*X-VS:#{vs}" if vs out << "*X-SS:#{ss}" if ss + out << "*X-KS:#{ks}" if ks out.join end end diff --git a/test/czech_payment_test.rb b/test/czech_payment_test.rb index 52d73ff..86362c7 100644 --- a/test/czech_payment_test.rb +++ b/test/czech_payment_test.rb @@ -60,6 +60,20 @@ def test_sample_payment assert_equal 'SPD*1.0*ACC:CZ5855000000001265098001*AM:480.50*CC:CZK*RF:7004139146*DT:20120524*MSG:PLATBA ZA ZBOZI*X-SS:1234567890', result end + def test_czech_payment_with_constant_symbol + result = Rspayd::CzechPayment.generate_string( + :accountNumber => '810883001', + :bankCode => '5500', + :amount => 430.00, + :vs => '31030001', + :ks => '1234567890', + :message => 'Platba za domenu' + ) + + assert_equal 'SPD*1.0*ACC:CZ9555000000000810883001*AM:430.00*CC:CZK*MSG:PLATBA ZA DOMENU*X-VS:31030001*X-KS:1234567890', result + end + + def test_iban_checksum_prepend result = Rspayd::CzechPayment.new( :accountNumber => '2950281886',