Business-OnlinePayment-Jettis
view release on metacpan or search on metacpan
26 => "Database Error",
27 => "Username Exists",
28 => "Invalid Store Params",
29 => "Unknown",
30 => "Procedure",
31 => "CC Number",
32 => "Invalid Version",
33 => "Invalid Country Code",
34 => "Country Bin",
35 => "High Fraud Country",
36 => "Different Country IP",
37 => "No Account",
38 => "IP Fraud",
39 => "Password Maintenance",
40 => "Password Invalid Chars",
41 => "Duplicate Membership",
42 => "Velocity",
43 => "Too many consecutive errors",
44 => "Missing Password",
45 => "Zip Code Quotes",
46 => "State Quotes",
47 => "Street Quotes",
48 => "Missing Country",
49 => "Country Invalid Chars",
50 => "Missing Quantity",
51 => "Quantity Invalid Chars",
52 => "Missing IP Address",
53 => "Invalid IP Address",
54 => "Merchant Text Area Quotes",
55 => "First Name Length",
56 => "Last Name Length",
57 => "Zip Length",
58 => "City Length",
59 => "State Length",
60 => "Email Length",
61 => "Address Length",
62 => "Merch Area Length",
63 => "Quantity Limit Per Day Exceeded",
64 => "Amount Limit Per Day Exceeded",
65 => "Quantity Limit Per Month Exceeded",
66 => "Amount Limit Per Month Exceeded",
67 => "Credit CC Num Mismatch",
68 => "Credit Price Mismatch",
69 => "Merch ID Mismatch",
70 => "Credit Prod ID Mismatch",
71 => "Invalid Bill Item ID",
72 => "Invalid Prod ID",
73 => "Invalid Merch ID",
74 => "Fraud Scrubbing",
75 => "Already Credited",
76 => "Credit Card BIN Exclusion",
77 => "Email Exclusion",
78 => "IP not reversible",
79 => "Invalid Bill ID",
80 => "Auth already settled",
81 => "Invalid Account Num",
82 => "Mail Zip Code Exclusion",
83 => "Missing IP Code",
84 => "Username Mismatch",
85 => "Password Mismatch",
101 => "Bank Timeout",
102 => "Invalid Request",
103 => "Incomplete",
104 => "Memory Allocation",
105 => "Bugcheck",
106 => "Inhibited",
108 => "Reject",
110 => "CC Number",
111 => "Expiration Date",
112 => "Prefix",
113 => "Amount",
114 => "Linkdown",
115 => "SENO",
116 => "Merchant Number",
117 => "Request",
118 => "Merchant Bank Down",
119 => "Invalid Transaction Type",
120 => "Call Center",
121 => "Pickup",
122 => "Declined",
123 => "Account Declined",
124 => "Fraud Alert",
125 => "Overlimit",
126 => "Too Small",
127 => "Pin Error",
128 => "Card Expired",
129 => "Bank Invalid Email",
130 => "Batch Unbalanced",
131 => "Batch Unopened",
140 => "Control Invalid",
141 => "Control Readonly",
142 => "Control Bad",
150 => "Duplicate Address",
151 => "Unknown Address",
160 => "Duplicate Merchant Number",
161 => "Merchant Busy",
162 => "Merchant Inhibit",
170 => "AVS",
171 => "AVS Unmatched Void",
172 => "AVS Void Failure",
180 => "Invalid IP code",
181 => "Invalid CVV2",
182 => "Invalid Original Transaction Date",
198 => "Server Timeout",
199 => "Unrecognized",
300 => "Re-Presented Check",
301 => "Invalid ID",
400 => "Failed Routing Mod 10",
401 => "Missing Bank Name",
402 => "Bank Name Quotes",
403 => "Missing Bank Account Number",
404 => "Invalid Bank Account Number",
405 => "Missing Bank Routing Number",
406 => "Invalid Bank Routing Number",
407 => "Missing Check Number",
408 => "Unsupported Transaction Type",
409 => "Invalid Bank Name",
999 => "Unknown Error",
);
sub set_defaults {
my $self = shift;
$self->server('join.billingservices.com');
$self->port('443');
$self->path('/psys/txnUrl');
$self->build_subs(qw( product_id merchant_id ));
}
sub revmap_fields {
my($self, %map) = @_;
my %content = $self->content();
foreach(keys %map) {
$content{$_} = ref($map{$_})
? ${ $map{$_} }
: $content{$map{$_}};
}
$self->content(%content);
}
sub submit {
my $self = shift;
my %content = $self->content();
my $action = lc($content{'action'});
if ( $action eq 'normal authorization' ) {
} else {
croak "$action not (yet) supported";
}
my $type = lc($content{'type'});
if ( $type eq 'check' ) {
} else {
croak "$type not (yet) supported";
}
$self->revmap_fields(
SUCCESS_URL => \'https://secure.suicidegirls.com/',
PRODUCT_ID => \($self->product_id()),
MERCHANT_ID => 'login',
VERSION => \'1.0',
SOR => \'N',
REMOTE_ADDR => \'10.0.0.1',
TERMS_AGREE => \'Y',
CHECK_AGE => \'Y',
( run in 1.841 second using v1.01-cache-2.11-cpan-8dfa8b56332 )