IPPay(3pm)

NAME
Business::OnlinePayment::IPPay - IPPay backend for Business::OnlinePayment

SYNOPSIS
  use Business::OnlinePayment;

  my $tx =
    new Business::OnlinePayment( "IPPay",
                                 'default_Origin' => 'PHONE ORDER',
                               );
  $tx->content(
      type           => 'VISA',
      login          => 'testdrive',
      password       => '', #password
      action         => 'Normal Authorization',
      description    => 'Business::OnlinePayment test',
      amount         => '49.95',
      customer_id    => 'tfb',
      name           => 'Tofu Beast',
      address        => '123 Anystreet',
      city           => 'Anywhere',
      state          => 'UT',
      zip            => '84058',
      card_number    => '4007000000027',
      expiration     => '09/02',
      cvv2           => '1234', #optional
  );
  $tx->submit();

  if($tx->is_success()) {
      print "Card processed successfully: ".$tx->authorization."\n";
  } else {
      print "Card was rejected: ".$tx->error_message."\n";
  }

SUPPORTED TRANSACTION TYPES

  CC, Visa, MasterCard, American Express, Discover
Content required: type, login, action, amount, card_number, expiration.

  Check
Content required: type, login, action, amount, name, account_number, routing_code.

DESCRIPTION
For detailed information see Business::OnlinePayment.

METHODS AND FUNCTIONS
See Business::OnlinePayment for the complete list. The following methods either override the methods in Business::OnlinePayment or provide additional functions.

  result_code
Returns the response error code.

  error_message
Returns the response error description text.

  server_response
Returns the complete response from the server.

Handling of content(%content) data:

  action
The following actions are valid

  normal authorization
  authorization only
  reverse authorization
  post authorization
  credit
  void

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

      # param => $content{<key>}
      TransactionType     => 'TransactionType',
      TerminalID          => 'login',
      TransactionID       => 'order_number',
      RoutingCode         => 'RoutingCode',
      Approval            => 'authorization',
      BatchID             => 'BatchID',
      Origin              => 'Origin',
      Password            => 'password',
      OrderNumber         => 'invoice_number',
      CardNum             => 'card_number',
      CVV2                => 'cvv2',
      Issue               => 'issue_number',
      CardExpMonth        => \( $month ), # MM from MM(-)YY(YY) of 'expiration'
      CardExpYear         => \( $year ), # YY from MM(-)YY(YY) of 'expiration'
      CardStartMonth      => \( $month ), # MM from MM(-)YY(YY) of 'card_start'
      CardStartYear       => \( $year ), # YY from MM(-)YY(YY) of 'card_start'
      Track1              => 'track1',
      Track2              => 'track2',
      ACH
        AccountNumber       => 'account_number',
        ABA                 => 'routing_code',
        CheckNumber         => 'check_number',
      CardName            => 'name',
      DispositionType     => 'DispositionType',
      TotalAmount         => 'amount' reformatted into cents
      FeeAmount           => 'FeeAmount',
      TaxAmount           => 'TaxAmount',
      BillingAddress      => 'address',
      BillingCity         => 'city',
      BillingStateProv    => 'state',
      BillingPostalCode   => 'zip',
      BillingCountry      => 'country',           # forced to ISO-3166-alpha-3
      BillingPhone        => 'phone',
      Email               => 'email',
      UserIPAddress        => 'customer_ip',
      UserHost            => 'UserHost',
      UDField1            => 'UDField1',
      UDField2            => 'UDField2',
      ActionCode          => 'ActionCode',
      IndustryInfo
        Type                => 'IndustryInfo',
      ShippingInfo
        CustomerPO          => 'CustomerPO',
        ShippingMethod      => 'ShippingMethod',
        ShippingName        => 'ship_name',
        ShippingAddr
          Address             => 'ship_address',
          City                => 'ship_city',
          StateProv           => 'ship_state',
          Country             => 'ship_country',  # forced to ISO-3166-alpha-3
          Phone               => 'ship_phone',

NOTE

COMPATIBILITY
Version 0.07 changes the server name and path for IPPay's late 2012 update.

Business::OnlinePayment::IPPay uses IPPay XML Product Specifications version 1.1.2.

See http://www.ippay.com/ for more information.

AUTHORS
Original author: Jeff Finucane

Current maintainer: Ivan Kohler <ivan-ippay@freeside.biz>

Reverse Authorization patch from dougforpres

COPYRIGHT AND LICENSE
Copyright (c) 1999 Jason Kohles Copyright (c) 2002-2003 Ivan Kohler Copyright (c) 2008-2022 Freeside Internet Services, Inc.

All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

ADVERTISEMENT
Need a complete, open-source back-office and customer self-service solution? The Freeside software includes support for credit card and electronic check processing with IPPay and over 50 other gateways, invoicing, integrated trouble ticketing, and customer signup and self-service web interfaces.

http://freeside.biz/freeside/

SEE ALSO
perl(1). Business::OnlinePayment.