Business::PayPal::API::TransactionSearch - PayPal TransactionSearch API


Business-PayPal-API documentation Contained in the Business-PayPal-API distribution.

Index


Code Index:

NAME

Top

Business::PayPal::API::TransactionSearch - PayPal TransactionSearch API

SYNOPSIS

Top

  use Business::PayPal::API::TransactionSearch;

  ## see Business::PayPal::API documentation for parameters
  my $pp = new Business::PayPal::API::TransactionSearch ( ... );

  my %response = $pp->TransactionSearch( StartDate => '1998-01-01T00:00:00Z',
                                         TransactionID => $transid, );

DESCRIPTION

Top

Business::PayPal::API::TransactionSearch implements PayPal's TransactionSearch API using SOAP::Lite to make direct API calls to PayPal's SOAP API server. It also implements support for testing via PayPal's sandbox. Please see Business::PayPal::API for details on using the PayPal sandbox.

TransactionSearch

Implements PayPal's TransactionSearch API call. Supported parameters include:

  StartDate (required)
  EndDate
  Payer
  Receiver
  TransactionID
  PayerName
  AuctionItemNumber
  InvoiceID
  TransactionClass
  Amount
  CurrencyCode
  Status

as described in the PayPal "Web Services API Reference" document. The syntax for StartDate is:

  YYYY-MM-DDTHH:MM:SSZ

'T' and 'Z' are literal characters 'T' and 'Z' respectively, e.g.:

  2005-12-22T08:51:28Z

Returns a list reference containing up to 100 matching records (as per the PayPal Web Services API). Each record is a hash reference with the following fields:

  Timestamp
  Timezone
  Type
  Payer
  PayerDisplayName
  TransactionID
  Status
  GrossAmount
  FeeAmount
  NetAmount

Example:

  my $records = $pp->TransactionSearch( StartDate => '2006-03-21T22:29:55Z',
                                        InvoiceID => '599294993', );

  for my $rec ( @$records ) {
      print "Record:\n";
      print "TransactionID: " . $rec->{TransactionID} . "\n";
      print "Payer Email: " . $rec->{Payer} . "\n";
      print "Amount: " . $rec->{GrossAmount} . "\n\n";
  }

ERROR HANDLING

See the ERROR HANDLING section of Business::PayPal::API for information on handling errors.

EXPORT

None by default.

SEE ALSO

Top

https://developer.paypal.com/en_US/pdf/PP_APIReference.pdf

AUTHOR

Top

Scot Wiersdorf <scott@perlcode.org>

COPYRIGHT AND LICENSE

Top


Business-PayPal-API documentation Contained in the Business-PayPal-API distribution.

package Business::PayPal::API::TransactionSearch;

use 5.008001;
use strict;
use warnings;

use SOAP::Lite 0.67;
use Business::PayPal::API ();

our @ISA = qw(Business::PayPal::API);
our $VERSION = '0.11';
our $CVS_VERSION = '$Id: TransactionSearch.pm,v 1.3 2006/03/24 17:11:37 scott Exp $';
our @EXPORT_OK = qw( TransactionSearch );

sub TransactionSearch {
    my $self = shift;
    my %args = @_;

    my %types = ( StartDate        => 'xs:dateTime',
                  EndDate          => 'xs:dateTime',
                  Payer            => 'ebl:EmailAddressType',
                  Receiver         => 'ebl:EmailAddressType',
                  ReceiptID        => 'xs:string',
                  TransactionID    => 'xs:string',
                  InvoiceID        => 'xs:string',
                  PayerName        => 'xs:string',
                  AuctionItemNumer => 'xs:string',
                  TransactionClass => '',
                  Amount           => 'ebl:BasicAmountType',
                  CurrencyCode     => 'xs:token',
                  Status           => '',
                );

    my @trans = 
      (
       $self->version_req,
       SOAP::Data->name( StartDate => $args{StartDate} )->type( delete $types{StartDate} )
      );

    for my $type ( keys %types ) {
        next unless $args{$type};
        push @trans, SOAP::Data->name( $type => $args{$type} )->type($types{$type});
    }

    my $request = SOAP::Data->name
      ( TransactionSearchRequest => \SOAP::Data->value( @trans ) )
	->type("ns:TransactionSearchRequestType");

    my $som = $self->doCall( TransactionSearchReq => $request )
      or return;

    my $path = '/Envelope/Body/TransactionSearchResponse';

    my %response = ();
    unless( $self->getBasic($som, $path, \%response) ) {
        $self->getErrors($som, $path, \%response);
        return %response;
    }

    return $self->getFieldsList( $som, $path . '/PaymentTransactions',
                                 { Timestamp        => 'Timestamp',
                                   Timezone         => 'Timezone',
                                   Type             => 'Type',
                                   Payer            => 'Payer',
                                   PayerDisplayName => 'PayerDisplayName',
                                   TransactionID    => 'TransactionID',
                                   Status           => 'Status',
                                   GrossAmount      => 'GrossAmount',
                                   FeeAmount        => 'FeeAmount',
                                   NetAmount        => 'NetAmount',
                                 } );
}

1;
__END__