+ push @order, (
+ avsZip => $item->zip,
+ avsAddress1 => substr($item->address, 0, 30),
+ avsAddress2 => substr($item->address2, 0, 30),
+ avsCity => substr($item->city, 0, 20),
+ avsState => substr($item->state, 0, 2),
+ avsName => substr($item->first_name. ' '. $item->last_name, 0, 30),
+ ( $paymentech_countries{ $item->country }
+ ? ( avsCountryCode => $item->country )
+ : ()
+ ),
+ orderID => $item->tid,
+ amount => int( $item->amount * 100 ),
+ );
+ while (@order) {
+ my $key = shift @order;
+ my $value = shift @order;
+ $xml->dataElement($key, $value);
+ }
+ $xml->endTag('newOrder');
+ } # if action eq 'payment'
+ else {
+ die "action ".$item->action." not supported";
+ }
+ '';
+}