Business-AuthorizeNet-CIM
view release on metacpan or search on metacpan
lib/Business/AuthorizeNet/CIM.pm view on Meta::CPAN
if (ref($args) eq 'HASH') {
for my $dataElement (grep { exists $args->{$_} } qw(unmaskExpirationDate includeIssuerInfo)) {
$writer->dataElement($dataElement, $args->{$dataElement});
}
} else {
$writer->dataElement('unmaskExpirationDate', 'true');
}
}
$writer->endTag('getCustomerPaymentProfileRequest');
return $self->_send($xml);
}
sub getCustomerShippingAddressRequest {
my ($self, $customerProfileId, $customerAddressId) = @_;
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('getCustomerShippingAddressRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('customerProfileId', $customerProfileId);
$writer->dataElement('customerAddressId', $customerAddressId);
$writer->endTag('getCustomerShippingAddressRequest');
$writer->end;
return $self->_send($xml);
}
sub getHostedProfilePageRequest {
my ($self, $customerProfileId, $args) = @_;
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('getHostedProfilePageRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('customerProfileId', $customerProfileId);
if ($args) {
$writer->startTag('hostedProfileSettings');
foreach my $name (keys %{$args}) {
$writer->startTag('setting');
$writer->dataElement('settingName', $name);
$writer->dataElement('settingValue', $args->{$name});
$writer->endTag('setting');
}
$writer->endTag('hostedProfileSettings');
}
$writer->endTag('getHostedProfilePageRequest');
$writer->end;
return $self->_send($xml);
}
sub updateCustomerProfile {
my $self = shift;
my $args = scalar @_ % 2 ? shift : {@_};
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('updateCustomerProfileRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('refId', $args->{refId}) if exists $args->{refId};
$writer->startTag('profile');
foreach my $k ('merchantCustomerId', 'description', 'email') {
$writer->dataElement($k, $args->{$k})
if exists $args->{$k};
}
$writer->dataElement('customerProfileId', $args->{customerProfileId});
$writer->endTag('profile');
$writer->endTag('updateCustomerProfileRequest');
$writer->end;
return $self->_send($xml);
}
sub updateCustomerPaymentProfile {
my $self = shift;
my $args = scalar @_ % 2 ? shift : {@_};
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('updateCustomerPaymentProfileRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('refId', $args->{refId}) if exists $args->{refId};
$writer->dataElement('customerProfileId', $args->{customerProfileId});
$writer->startTag('paymentProfile');
$writer->dataElement('customerType', $args->{'customerType'}) if exists $args->{'customerType'};
my @flds = ('firstName', 'lastName', 'company', 'address', 'city', 'state', 'zip', 'country', 'phoneNumber', 'faxNumber');
my $addr = exists $args->{billTo} ? $args->{billTo} : $args;
if (grep { exists $addr->{$_} } @flds) {
$writer->startTag('billTo');
foreach my $k (@flds) {
$writer->dataElement($k, $addr->{$k})
if exists $addr->{$k};
}
$writer->endTag('billTo');
}
$writer->startTag('payment');
if (exists $args->{creditCard}) {
$writer->startTag('creditCard');
foreach my $k ('cardNumber', 'expirationDate', 'cardCode') {
$writer->dataElement($k, $args->{creditCard}->{$k})
if exists $args->{creditCard}->{$k};
}
$writer->endTag('creditCard');
}
if (exists $args->{bankAccount}) {
$writer->startTag('bankAccount');
foreach my $k ('accountType', 'routingNumber', 'accountNumber', 'nameOnAccount', 'echeckType', 'bankName') {
$writer->dataElement($k, $args->{bankAccount}->{$k});
}
$writer->endTag('bankAccount');
}
if (exists $args->{opaqueData}) {
$writer->startTag('opaqueData');
foreach my $k (qw/dataDescriptor dataValue/) {
$writer->dataElement($k, $args->{opaqueData}->{$k});
}
$writer->endTag('opaqueData');
}
$writer->endTag('payment');
$writer->dataElement('customerPaymentProfileId', $args->{customerPaymentProfileId});
$writer->endTag('paymentProfile');
if ($self->{test_mode}) {
$writer->dataElement('validationMode', 'testMode');
} elsif ($args->{validationMode}) {
$writer->dataElement('validationMode', $args->{validationMode});
} else {
$writer->dataElement('validationMode', 'liveMode');
}
$writer->endTag('updateCustomerPaymentProfileRequest');
$writer->end;
return $self->_send($xml);
}
sub updateCustomerShippingAddress {
my $self = shift;
my $args = scalar @_ % 2 ? shift : {@_};
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('updateCustomerShippingAddressRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('refId', $args->{refId}) if exists $args->{refId};
$writer->dataElement('customerProfileId', $args->{customerProfileId})
if exists $args->{customerProfileId};
$writer->startTag('address');
my @flds = ('firstName', 'lastName', 'company', 'address', 'city', 'state', 'zip', 'country', 'phoneNumber', 'faxNumber');
my $addr = exists $args->{shipToList} ? $args->{shipToList} : $args;
foreach my $k (@flds) {
$writer->dataElement($k, $addr->{$k})
if exists $addr->{$k};
}
$writer->dataElement('customerAddressId', $args->{customerAddressId});
$writer->endTag('address');
$writer->endTag('updateCustomerShippingAddressRequest');
$writer->end;
return $self->_send($xml);
}
sub updateSplitTenderGroupRequest {
my ($self, $splitTenderId, $splitTenderStatus) = @_;
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('updateSplitTenderGroupRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('splitTenderId', $splitTenderId);
$writer->dataElement('splitTenderStatus', $splitTenderStatus);
$writer->endTag('updateSplitTenderGroupRequest');
$writer->end;
return $self->_send($xml);
}
sub validateCustomerPaymentProfile {
my $self = shift;
my $args = scalar @_ % 2 ? shift : {@_};
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('validateCustomerPaymentProfileRequest', 'xmlns' => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$writer->startTag('merchantAuthentication');
$writer->dataElement('name', $self->{login});
$writer->dataElement('transactionKey', $self->{transactionKey});
$writer->endTag('merchantAuthentication');
$writer->dataElement('customerProfileId', $args->{customerProfileId});
$writer->dataElement('customerPaymentProfileId', $args->{customerPaymentProfileId});
$writer->dataElement('customerShippingAddressId', $args->{customerShippingAddressId})
if $args->{customerShippingAddressId};
$writer->dataElement('cardCode', $args->{cardCode}) if $args->{cardCode};
if ($self->{test_mode}) {
$writer->dataElement('validationMode', 'testMode');
} else {
$writer->dataElement('validationMode', 'liveMode');
}
$writer->endTag('validateCustomerPaymentProfileRequest');
$writer->end;
return $self->_send($xml);
}
sub getMerchantDetailsRequest {
my $self = shift;
my $args = scalar @_ % 2 ? shift : {@_};
my $xml;
my $writer = XML::Writer->new(OUTPUT => \$xml);
$writer->startTag('getMerchantDetailsRequest', xmlns => 'AnetApi/xml/v1/schema/AnetApiSchema.xsd');
$self->_addAuthentication($writer);
$writer->endTag('getMerchantDetailsRequest');
$writer->end;
return $self->_send($xml);
}
sub getTransactionDetailsRequest {
( run in 0.660 second using v1.01-cache-2.11-cpan-7fcb06a456a )