[#153] fix payment validation - amount >= 0, and tests

payment validation: amount >= 0,
by returns nil if first_name or last_name not given
tests