+sub payinfo_check{
+ my($payby, $payinforef) = @_;
+
+ if ($payby eq 'CARD') {
+ $$payinforef =~ s/\D//g;
+ if ($$payinforef){
+ $$payinforef =~ /^(\d{13,16})$/
+ or return "Illegal (mistyped?) credit card number (payinfo)";
+ $$payinforef = $1;
+ validate($$payinforef) or return "Illegal credit card number";
+ return "Unknown card type" if cardype($$payinforef) eq "Unknown";
+ } else {
+ $$payinforef="N/A";
+ }
+ } else {
+ $$payinforef =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=]*)$/
+ or return "Illegal text (payinfo)";
+ $$payinforef = $1;
+ }
+}
+