Provided by: libbusiness-onlinepayment-viaklix-perl_0.02-3_all bug

NAME

       Business::OnlinePayment::viaKLIX - viaKLIX backend for Business::OnlinePayment

SYNOPSIS

         use Business::OnlinePayment;

         my $tx = new Business::OnlinePayment(
             'viaKLIX', 'default_ssl_user_id' => 'webuser',
         );

         # See the module documentation for details of content()
         $tx->content(
             type           => 'CC',
             action         => 'Normal Authorization',
             description    => 'Business::OnlinePayment::viaKLIX test',
             amount         => '49.95',
             invoice_number => '100100',
             customer_id    => 'jef',
             name           => 'Jeff Finucane',
             address        => '123 Anystreet',
             city           => 'Anywhere',
             state          => 'GA',
             zip            => '30004',
             email          => 'viaklix@weasellips.com',
             card_number    => '4111111111111111',
             expiration     => '12/09',
             cvv2           => '123',
             order_number   => 'string',
         );

         $tx->submit();

         if ( $tx->is_success() ) {
             print(
                 "Card processed successfully: ", $tx->authorization, "\n",
                 "order number: ",                $tx->order_number,  "\n",
                 "CVV2 response: ",               $tx->cvv2_response, "\n",
                 "AVS code: ",                    $tx->avs_code,      "\n",
             );
         }
         else {
             print(
                 "Card was rejected: ", $tx->error_message, "\n",
                 "order number: ",      $tx->order_number,  "\n",
             );
         }

DESCRIPTION

       This module is a back end driver that implements the interface specified by Business::OnlinePayment to
       support payment handling via viaKLIX's Internet payment solution.

       See Business::OnlinePayment for details on the interface this modules supports.

Standard methods

       set_defaults()
           This  method  sets the 'server' attribute to 'www.viaklix.com' and the port attribute to '443'.  This
           method also sets up the "Module specific methods" described below.

       submit()

Unofficial methods

       This  module  provides  the  following  methods  which  are  not  officially   part   of   the   standard
       Business::OnlinePayment  interface  (as  of  3.00_06) but are nevertheless supported by multiple gateways
       modules and expected to be standardized soon:

       order_number()
       avs_code()
       cvv2_response()

Module specific methods

       This  module  provides  the  following  methods  which  are  not   currently   part   of   the   standard
       Business::OnlinePayment interface:

       expdate_mmyy()
       debug()

Settings

       The following default settings exist:

       server
           www.viaklix.com

       port
           443

       path
           /process.asp

Parameters passed to constructor

       If  any  of the key/value pairs passed to the constructor have a key beginning with "default_" then those
       values are passed to viaKLIX as  a  the  corresponding  form  field  (without  the  "default_")  whenever
       content(%content) lacks that key.

Handling of content(%content)

       The following rules apply to content(%content) data:

   type
       If 'type' matches one of the following keys it is replaced by the right hand side value:

         'visa'               => 'CC',
         'mastercard'         => 'CC',
         'american express'   => 'CC',
         'discover'           => 'CC',

       The  value  of  'type'  is used to set transaction_type().  Currently this module only supports the above
       values.

Setting viaKLIX parameters from content(%content)

       The following rules are applied to map data to viaKLIX parameters from content(%content):

           # viaKLIX param     => $content{<key>}
             ssl_merchant_id   => 'login',
             ssl_pin           => 'password',

             ssl_amount        => 'amount',
             ssl_card_number   => 'card_number',
             ssl_exp_date      => \( $month.$year ), # MM/YY from 'expiration'
             ssl_cvv2          => 'present' whenever cvv2 data is provided
             ssl_cvv2cvc2      => 'cvv2',
             ssl_description   => 'description',
             ssl_invoice_number=> 'invoice_number',
             ssl_customer_code   => 'customer_id',

             ssl_first_name    => 'first_name',
             ssl_last_name     => 'last_name',
             ssl_avs_address   => 'address',
             ssl_city          => 'city',
             ssl_state         => 'state',
             ssl_zip           => \$zip,       # 'zip' with non-alphanumerics removed
             ssl_country       => 'country',
             ssl_phone         => 'phone',
             ssl_email         => 'email',

             CardHolderName    => 'name',
             CustomerName      => 'account_name',

Mapping viaKLIX transaction responses to object methods

       The following methods provides access to the transaction response data resulting from a  viaKLIX  request
       (after submit()) is called:

   order_number()
       This  order_number()  method  returns the ssl_txn_id field for card transactions to uniquely identify the
       transaction.

   result_code()
       The result_code() method returns the ssl_result field for card transactions.  It is  the  numeric  return
       code indicating the outcome of the attempted transaction.

   error_message()
       The  error_message()  method  returns  the ssl_result_message field for transactions.  This provides more
       details about the transaction result.

   authorization()
       The authorization() method returns the ssl_approval_code field, which is the approval code obtained  from
       the card processing network.

   avs_code()
       The avs_code() method returns the ssl_avs_response field from the transaction result.

   cvv2_response()
       The cvv2_response() method returns the ssl_cvvw_response field, which is a response message returned with
       the transaction result.

   expdate_mmyy()
       The  expdate_mmyy()  method  takes a single scalar argument (typically the value in $content{expiration})
       and attempts to parse and format and put the date in MMYY format as required by PayflowPro specification.
       If unable to parse the expiration date simply leave it as is and let the  PayflowPro  system  attempt  to
       handle it as-is.

   debug()
       Enable     or     disble     debugging.      The     value     specified     here     will    also    set
       $Business::OnlinePayment::HTTPS::DEBUG in submit() to aid in troubleshooting problems.

COMPATIBILITY

       This module implements an interface to the viaKLIX API version 2.0

AUTHORS

       Jeff Finucane <viaklix@weasellips.com>

       Based on Business::OnlinePayment::PayflowPro written by Ivan Kohler and Phil Lobbes.

SEE ALSO

       perl(1), Business::OnlinePayment, Carp, and the Developer Guide to the viaKLIX Virtual Terminal.

perl v5.36.0                                       2022-12-10                                       viaKLIX(3pm)