get_fields now filters out undefs in 3.x
[Business-OnlinePayment-InternetSecure.git] / InternetSecure.pm
index a4cd4ed..b90f187 100755 (executable)
@@ -43,6 +43,18 @@ sub set_defaults {
                        ));
 }
 
+# OnlinePayment's get_fields now filters out undefs in 3.x. :(
+#
+sub get_fields {
+       my ($self, @fields) = @_;
+
+       my %content = $self->content;
+
+       my %new = map +($_ => $content{$_}), @fields;
+
+       return %new;
+}
+
 # OnlinePayment's remap_fields is buggy, so we simply rewrite it
 #
 sub remap_fields {
@@ -230,9 +242,6 @@ sub parse_response {
 
        $self->server_response($response);
        
-       # FIXME: It's not quite clear whether there should be some decoding, or
-       # if the result is already utf8.)
-
        $response = xml_in($response,
                        ForceArray => [qw(product flag)],
                        GroupTags => { qw(Products product flags flag) },
@@ -342,7 +351,7 @@ Business::OnlinePayment::InternetSecure - InternetSecure backend for Business::O
 
 Business::OnlinePayment::InternetSecure is an implementation of
 L<Business::OnlinePayment> that allows for processing online credit card
-payments through Internet Secure.
+payments through InternetSecure.
 
 See L<Business::OnlinePayment> for more information about the generic
 Business::OnlinePayment interface.
@@ -351,7 +360,7 @@ Business::OnlinePayment interface.
 
 Object creation is done via L<Business::OnlinePayment>; see its manpage for
 details.  The I<merchant_id> processor option is required, and corresponds
-to the merchant ID assigned to you by Internet Secure.
+to the merchant ID assigned to you by InternetSecure.
 
 =head1 METHODS
 
@@ -433,7 +442,7 @@ C<CAD> (default) or C<USD>.
 =item taxes
 
 Taxes to be added automatically.  These should not be included in B<amount>;
-they will be automatically added by Internet Secure later on.
+they will be automatically added by InternetSecure later on.
 
 Available taxes are C<GST>, C<PST> and C<HST>.  Taxes can be combined by
 separating them with spaces, such as C<GST HST>.
@@ -484,9 +493,14 @@ following:
 
 =item avs_response() / cvv2_response()
 
-Results of the AVS and CVV2 checks.  See the Internet Secure documentation for
+Results of the AVS and CVV2 checks.  See the InternetSecure documentation for
 the list of possible values.
 
+=item products_raw()
+
+...
+
+
 =back
 
 
@@ -528,14 +542,17 @@ When using a products list, the B<amount> field passed to B<content()> should
 be left undefined.
 
 
-=head2 Character encodings
-
-...
+=head2 Character encoding
 
+Since communication to/from InternetSecure is encoded with UTF-8, all Unicode
+characters are theoretically available when submitting information via
+B<submit()>.  (Further restrictions may be imposed by InternetSecure itself.)
 
-=head2 products_raw
-
-...
+When using non-ASCII characters, all data provided to B<submit()> should either
+be in the current native encoding (typically latin-1, unless it was modified
+via the C<encoding> pragma), or be decoded via the C<Encode> module.
+Conversely, all data returned after calling B<submit()> will be automatically
+decoded.
 
 
 =head1 EXPORT
@@ -549,11 +566,11 @@ L<Business::OnlinePayment>
 
 =head1 AUTHOR
 
-Frederic Briere, E<lt>fbriere@fbriere.netE<gt>
+Frédéric Brière, E<lt>fbriere@fbriere.netE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2006 by Frederic Briere
+Copyright (C) 2006 by Frédéric Brière
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.8.4 or,