IPPay(3pm)

πŸ“¦
version 0.12 Β· 3 versions
, in ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– IPPay πŸ’–

okay so this is IPPay(3pm) β€” the IPPay backend for Business::OnlinePayment, bestie. Perl's own user-contributed docs, and it is genuinely doing the most for you. Let's get into it 🫢


✨ NAME ✨

Business::OnlinePayment::IPPay β€” IPPay backend for Business::OnlinePayment. That's the whole vibe. It's the little bridge that lets your Perl payment code talk to IPPay. No cap. πŸŒ‰


✨ SYNOPSIS ✨

Here's the whole thing in action, literally copy-paste coded for you:

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";
}

the way that this just… works?? iconic. You build the object, you stuff the content in, you submit(), and then you check is_success() and either celebrate or read your error_message. πŸŽ€


🌈 SUPPORTED TRANSACTION TYPES 🌈

πŸ’³ CC, Visa, MasterCard, American Express, Discover

Content required: type, login, action, amount, card_number, expiration.

that's the bare minimum bestie, don't skimp πŸ™ˆ

🧾 Check

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


πŸ’… DESCRIPTION πŸ’…

For detailed information see Business::OnlinePayment. (it's the parent, it knows everything, go ask it.)


πŸ¦‹ METHODS AND FUNCTIONS πŸ¦‹

See Business::OnlinePayment for the complete list. The following methods either override the methods in Business::OnlinePayment or provide additional functions. so these are the special ones, the main character ones πŸ‘‘

result_code

Returns the response error code. your numeric "what went wrong" receipt

error_message

Returns the response error description text. the same thing but in actual words

server_response

Returns the complete response from the server. the whole raw tea, unfiltered


πŸ“ Handling of content(%content) data πŸ“

action

The following actions are valid

normal authorization
authorization only
reverse authorization
post authorization
credit
void

those are your six moves, pick one and slay ✨


🧚 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',

okay the way that this is literally just a giant translation table and it ate πŸ’… Every $content{...} key you feed in lands in its IPPay-shaped slot. Note the two # forced to ISO-3166-alpha-3 ones β€” country and ship_country get forced into ISO-3166-alpha-3 format, that's not optional, that's just how it is bestie. And TotalAmount comes from 'amount' reformatted into cents. πŸͺ™


πŸ“ NOTE

(this section is just vibing here with nothing under it, next heading's the real one 🫢)


πŸ”₯ COMPATIBILITY πŸ”₯

Version 0.07 changes the server name and path for IPPay's late 2012 update. so if you're on an old version and things are weird β€” that's why, that's the whole reason 😭

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

shoutout to the whole squad, we see you 🫢


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. fr fr, same terms as Perl, go wild ✨


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/

over 50 other gateways?? that's giving infrastructure legend energy πŸ’–


πŸ¦‹ SEE ALSO πŸ¦‹

perl(1). Business::OnlinePayment.


and that's the whole page bestie!! This one's from perl v5.36.0, dated 2022-09-12, and it's the IPPay(3pm) page. go process some cards, you absolute icon πŸ’…πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from