package Business::PayPal::API::ReauthorizationRequest; use 5.008001; use strict; use warnings; use SOAP::Lite 0.67; use Business::PayPal::API (); our @ISA = qw(Business::PayPal::API); our @EXPORT_OK = qw(DoReauthorizationRequest); sub DoReauthorizationRequest { my $self = shift; my %args = @_; my %types = ( AuthorizationID => 'xs:string', Amount => 'ebl:BasicAmountType',); $args{currencyID} ||= 'USD'; my @ref_trans = ($self->version_req, SOAP::Data->name( AuthorizationID => $args{AuthorizationID} )->type($types{AuthorizationID}),); push @ref_trans, SOAP::Data->name( Amount => $args{Amount} ) ->type( $types{Amount} ) ->attr( { currencyID => $args{currencyID} } ); my $request = SOAP::Data->name ( DoReauthorizationRequest => \SOAP::Data->value( @ref_trans ) ) ->type("ns:ReauthorizationRequestType"); my $som = $self->doCall( DoReauthorizationReq => $request ) or return; my $path = '/Envelope/Body/DoReauthorizationResponse'; my %response = (); unless( $self->getBasic($som, $path, \%response) ) { $self->getErrors($som, $path, \%response); return %response; } $self->getFields($som, $path, \%response, { AuthorizationID => 'AuthorizationID', Amount => 'Amount', } ); return %response; } 1; __END__ =head1 NAME Business::PayPal::API::ReauthorizationRequest - PayPal ReauthorizationRequest API =head1 SYNOPSIS use Business::PayPal::API::ReauthorizationRequest; ## see Business::PayPal::API documentation for parameters my $pp = new Business::PayPal::API::ReauthorizationRequest ( ... ); my %response = $pp->DoReauthorizationRequest ( AuthorizationID => $transid, Amount => $amount, CurrencyID => $currencyID ); =head1 DESCRIPTION B implements PayPal's B API using SOAP::Lite to make direct API calls to PayPal's SOAP API server. It also implements support for testing via PayPal's I. Please see L for details on using the PayPal sandbox. =head2 DoReauthorizationRequest Implements PayPal's B API call. Supported parameters include: AuthorizationID Amount currencyID (defaults to 'USD' if not supplied) as described in the PayPal "Web Services API Reference" document. The default B setting is 'USD' if not otherwise specified. The DoReauthorization is not allowed before the three day grace period set for the original AuthorizeRequest. Returns a hash containing the results of the transaction. Example: my %resp = $pp->DoReauthorizationRequest ( AuthorizationID => $trans_id, Amount => '15.00', CurrencyID => 'USD' ); unless( $resp{Ack} !~ /Success/ ) { for my $error ( @{$response{Errors}} ) { warn "Error: " . $error->{LongMessage} . "\n"; } } =head2 ERROR HANDLING See the B section of B for information on handling errors. =head2 EXPORT None by default. =head1 SEE ALSO L =head1 AUTHOR Danny Hembree Edanny@dynamical.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2006 by Danny Hembree This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available. =cut