initial import
[Business-OnlinePayment-PPIPayMover.git] / lib / Business / OnlinePayment / PPIPayMover / CreditCardResponse.pm
1 package Business::OnlinePayment::PPIPayMover::CreditCardResponse;\r
2 \r
3 use strict;\r
4 use vars qw(@ISA);\r
5 use Business::OnlinePayment::PPIPayMover::TransactionResponse;\r
6 use Business::OnlinePayment::PPIPayMover::PayerAuthenticationResponse;\r
7 use Business::OnlinePayment::PPIPayMover::constants;\r
8 \r
9 @ISA = qw(Business::OnlinePayment::PPIPayMover::TransactionResponse);\r
10 \r
11 sub new {\r
12   my $class = shift;\r
13   my $InString = shift;\r
14   my $self = $class->SUPER::new($InString);\r
15    \r
16   $self->{oPayerAuthenticationResponse} = undef;\r
17   $self->{strReferenceId} = undef;\r
18   $self->{strBatchId} = undef;\r
19   $self->{strBankTransactionId} = undef;\r
20   $self->{strBankApprovalCode} = undef;\r
21   $self->{strState} = undef;\r
22   $self->{strAuthorizedAmount} = undef;\r
23   $self->{strOriginalAuthorizedAmount} = undef;\r
24   $self->{strCapturedAmount} = undef;\r
25   $self->{strCreditedAmount} = undef;\r
26   $self->{strTimeStampCreated} = undef;\r
27   $self->{strOrderId} = undef;\r
28   $self->{strIsoCode} = undef;\r
29   $self->{strAVSCode} = "None";    # v1.5\r
30   $self->{strCreditCardVerificationResponse} = undef;\r
31   \r
32   if ($self->{iResponseCode} == TRANSACTION_SERVER_ERROR || $self->{iResponseCode} == INVALID_VERSION) {\r
33     return $self;\r
34   }\r
35   if (!($$InString) && !($self->{iResponseCode} == SUCCESSFUL_TRANSACTION)) {\r
36     return $self;\r
37   }\r
38   \r
39   my @temp = split(/\n/, $$InString);\r
40   my $size = @temp;\r
41   if ($size < 10) {\r
42     $self->{strError} .= "input string is in wrong format";\r
43     $self->{iRetVal} = 0;\r
44     return $self;\r
45   }\r
46   \r
47   # Looking to see if there is a nested Payer Authentication Response\r
48   my $payerAuthResponse = new Business::OnlinePayment::PPIPayMover::TransactionResponse($InString,AUTHENTICATION_PREFIX);\r
49   \r
50   if (defined($payerAuthResponse->GetResponseCode)){\r
51         $self->{oPayerAuthenticationResponse} = new Business::OnlinePayment::PPIPayMover::PayerAuthenticationResponse($InString,AUTHENTICATION_PREFIX);\r
52   }\r
53   \r
54   my $name;\r
55   my $value;\r
56   foreach (@temp) {\r
57   \r
58     ($name, $value) = split(/=/, $_, 2);\r
59     \r
60     if ($name eq "capture_reference_id") {\r
61       $self->{strReferenceId} = $value;\r
62     }\r
63     elsif ($name eq "order_id") {\r
64       $self->{strOrderId} = $value;\r
65     }\r
66     elsif ($name eq "iso_code") {\r
67       $self->{strIsoCode} = $value;\r
68     }\r
69     elsif ($name eq "bank_approval_code") {\r
70       $self->{strBankApprovalCode} = $value;\r
71     }\r
72     elsif ($name eq "state") {\r
73       $self->{strState} = $value;\r
74     }\r
75     elsif ($name eq "authorized_amount") {\r
76       $self->{strAuthorizedAmount} = $value;\r
77     }\r
78     elsif ($name eq "original_authorized_amount") {\r
79       $self->{strOriginalAuthorizedAmount} = $value;\r
80     }\r
81     elsif ($name eq "captured_amount") {\r
82       $self->{strCapturedAmount} = $value;\r
83     }\r
84     elsif ($name eq "credited_amount") {\r
85       $self->{strCreditedAmount} = $value;\r
86     }\r
87     elsif ($name eq "time_stamp_created") {\r
88       $self->{strTimeStampCreated} = $value;\r
89     }\r
90     elsif ($name eq "bank_transaction_id") {\r
91       $self->{strBankTransactionId} = $value;\r
92     }\r
93     elsif ($name eq "batch_id") {\r
94       $self->{strBatchId } = $value;\r
95     }\r
96     elsif ($name eq "avs_code") {\r
97       $self->{strAVSCode} = $value;\r
98     }\r
99     elsif ($name eq "credit_card_verification_response") {\r
100       $self->{strCreditCardVerificationResponse} = $value;\r
101     }\r
102     else {\r
103       $self->{strError} .= "Invalid data name: ";\r
104     }\r
105   }\r
106   return $self;\r
107 }\r
108 \r
109 \r
110 sub GetBatchId\r
111 {\r
112   my $self = shift;\r
113   $self->{strBatchId};\r
114 }\r
115 \r
116 sub GetBankTransactionId\r
117 {\r
118   my $self = shift;\r
119   $self->{strBankTransactionId};\r
120 }\r
121 \r
122 sub GetBankApprovalCode\r
123 {\r
124   my $self = shift;\r
125   $self->{strBankApprovalCode};\r
126 }\r
127 \r
128 sub GetState\r
129 {\r
130   my $self = shift;\r
131   $self->{strState};\r
132 }\r
133 \r
134 sub GetAuthorizedAmount\r
135 {\r
136   my $self = shift;\r
137   $self->{strAuthorizedAmount};\r
138 }\r
139 \r
140 sub GetOriginalAuthorizedAmount\r
141 {\r
142   my $self = shift;\r
143   $self->{strOriginalAuthorizedAmount};\r
144 }\r
145 \r
146 sub GetCapturedAmount\r
147 {\r
148   my $self = shift;\r
149   $self->{strCapturedAmount};\r
150 }\r
151 \r
152 sub GetCreditedAmount\r
153 {\r
154   my $self = shift;\r
155   $self->{strCreditedAmount};\r
156 }\r
157 \r
158 sub GetTimeStampCreated\r
159 {\r
160   my $self = shift;\r
161   $self->{strTimeStampCreated};\r
162 }\r
163 \r
164 sub GetOrderId\r
165 {\r
166   my $self = shift;\r
167   $self->{strOrderId};\r
168 }\r
169 \r
170 sub GetIsoCode\r
171 {\r
172   my $self = shift;\r
173   $self->{strIsoCode};\r
174 }\r
175 \r
176 sub GetCaptureReferenceId\r
177 {\r
178   my $self = shift;\r
179   $self->{strReferenceId};\r
180 }\r
181 \r
182 sub GetReferenceId\r
183 {\r
184   my $self = shift;\r
185   $self->{strReferenceId};\r
186 }\r
187 \r
188 sub GetAVSCode {\r
189     my $self = shift;\r
190     $self->{strAVSCode};\r
191 }\r
192 \r
193 sub GetCreditCardVerificationResponse {\r
194     my $self = shift;\r
195     $self->{strCreditCardVerificationResponse};\r
196 }\r
197 \r
198 sub GetPayerAuthenticationResponse {\r
199     my $self = shift;\r
200     $self->{oPayerAuthenticationResponse};\r
201 }\r