/usr/local/CPAN/Business-OnlinePayment-PPIPayMover/Business/OnlinePayment/PPIPayMover/CreditCardResponse.pm
package Business::OnlinePayment::PPIPayMover::CreditCardResponse;
use strict;
use vars qw(@ISA);
use Business::OnlinePayment::PPIPayMover::TransactionResponse;
use Business::OnlinePayment::PPIPayMover::PayerAuthenticationResponse;
use Business::OnlinePayment::PPIPayMover::constants;
@ISA = qw(Business::OnlinePayment::PPIPayMover::TransactionResponse);
sub new {
my $class = shift;
my $InString = shift;
my $self = $class->SUPER::new($InString);
$self->{oPayerAuthenticationResponse} = undef;
$self->{strReferenceId} = undef;
$self->{strBatchId} = undef;
$self->{strBankTransactionId} = undef;
$self->{strBankApprovalCode} = undef;
$self->{strState} = undef;
$self->{strAuthorizedAmount} = undef;
$self->{strOriginalAuthorizedAmount} = undef;
$self->{strCapturedAmount} = undef;
$self->{strCreditedAmount} = undef;
$self->{strTimeStampCreated} = undef;
$self->{strOrderId} = undef;
$self->{strIsoCode} = undef;
$self->{strAVSCode} = "None"; # v1.5
$self->{strCreditCardVerificationResponse} = undef;
if ($self->{iResponseCode} == TRANSACTION_SERVER_ERROR || $self->{iResponseCode} == INVALID_VERSION) {
return $self;
}
if (!($$InString) && !($self->{iResponseCode} == SUCCESSFUL_TRANSACTION)) {
return $self;
}
my @temp = split(/\n/, $$InString);
my $size = @temp;
if ($size < 10) {
$self->{strError} .= "input string is in wrong format";
$self->{iRetVal} = 0;
return $self;
}
# Looking to see if there is a nested Payer Authentication Response
my $payerAuthResponse = new Business::OnlinePayment::PPIPayMover::TransactionResponse($InString,AUTHENTICATION_PREFIX);
if (defined($payerAuthResponse->GetResponseCode)){
$self->{oPayerAuthenticationResponse} = new Business::OnlinePayment::PPIPayMover::PayerAuthenticationResponse($InString,AUTHENTICATION_PREFIX);
}
my $name;
my $value;
foreach (@temp) {
($name, $value) = split(/=/, $_, 2);
if ($name eq "capture_reference_id") {
$self->{strReferenceId} = $value;
}
elsif ($name eq "order_id") {
$self->{strOrderId} = $value;
}
elsif ($name eq "iso_code") {
$self->{strIsoCode} = $value;
}
elsif ($name eq "bank_approval_code") {
$self->{strBankApprovalCode} = $value;
}
elsif ($name eq "state") {
$self->{strState} = $value;
}
elsif ($name eq "authorized_amount") {
$self->{strAuthorizedAmount} = $value;
}
elsif ($name eq "original_authorized_amount") {
$self->{strOriginalAuthorizedAmount} = $value;
}
elsif ($name eq "captured_amount") {
$self->{strCapturedAmount} = $value;
}
elsif ($name eq "credited_amount") {
$self->{strCreditedAmount} = $value;
}
elsif ($name eq "time_stamp_created") {
$self->{strTimeStampCreated} = $value;
}
elsif ($name eq "bank_transaction_id") {
$self->{strBankTransactionId} = $value;
}
elsif ($name eq "batch_id") {
$self->{strBatchId } = $value;
}
elsif ($name eq "avs_code") {
$self->{strAVSCode} = $value;
}
elsif ($name eq "credit_card_verification_response") {
$self->{strCreditCardVerificationResponse} = $value;
}
else {
$self->{strError} .= "Invalid data name: ";
}
}
return $self;
}
sub GetBatchId
{
my $self = shift;
$self->{strBatchId};
}
sub GetBankTransactionId
{
my $self = shift;
$self->{strBankTransactionId};
}
sub GetBankApprovalCode
{
my $self = shift;
$self->{strBankApprovalCode};
}
sub GetState
{
my $self = shift;
$self->{strState};
}
sub GetAuthorizedAmount
{
my $self = shift;
$self->{strAuthorizedAmount};
}
sub GetOriginalAuthorizedAmount
{
my $self = shift;
$self->{strOriginalAuthorizedAmount};
}
sub GetCapturedAmount
{
my $self = shift;
$self->{strCapturedAmount};
}
sub GetCreditedAmount
{
my $self = shift;
$self->{strCreditedAmount};
}
sub GetTimeStampCreated
{
my $self = shift;
$self->{strTimeStampCreated};
}
sub GetOrderId
{
my $self = shift;
$self->{strOrderId};
}
sub GetIsoCode
{
my $self = shift;
$self->{strIsoCode};
}
sub GetCaptureReferenceId
{
my $self = shift;
$self->{strReferenceId};
}
sub GetReferenceId
{
my $self = shift;
$self->{strReferenceId};
}
sub GetAVSCode {
my $self = shift;
$self->{strAVSCode};
}
sub GetCreditCardVerificationResponse {
my $self = shift;
$self->{strCreditCardVerificationResponse};
}
sub GetPayerAuthenticationResponse {
my $self = shift;
$self->{oPayerAuthenticationResponse};
}