The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Business::PayPal::API::GetTransactionDetails - PayPal GetTransactionDetails API

VERSION

version 0.77

SYNOPSIS

    use Business::PayPal::API::GetTransactionDetails;
    my $pp = Business::PayPal::API::GetTransactionDetails->new( ... );

or

    # see Business::PayPal::API documentation for parameters
    use Business::PayPal::API qw(GetTransactionDetails);
    my $pp = Business::PayPal::API->new( ... );

    my %response = $pp->GetTransactionDetails( TransactionID => $transid, );

DESCRIPTION

Business::PayPal::API::GetTransactionDetails implements PayPal's GetTransactionDetails 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.

GetTransactionDetails

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

  TransactionID

as described in the PayPal "Web Services API Reference" document.

Returns a hash containing the transaction details, including these fields:

  Business
  Receiver
  ReceiverID

  Payer
  PayerID
  PayerStatus

  Salutation
  FirstName
  MiddleName
  LastName

  PayerCountry
  PayerBusiness

  AddressOwner
  AddressStatus
  ADD_Name
  Street1
  Street2
  CityName
  StateOrProvince
  Country
  CountryName
  Phone
  PostalCode

  TransactionID
  ParentTransactionID
  ReceiptID
  TransactionType
  PaymentType
  PaymentDate
  GrossAmount
  FeeAmount
  SettleAmount
  TaxAmount
  ExchangeRate
  PaymentStatus
  PendingReason
  ReasonCode

  InvoiceID
  Custom
  Memo
  SalesTax

  PII_SaleTax
  PII_Name
  PII_Number
  PII_Quantity
  PII_Amount
  PII_Options

  PII_SubscriptionID
  PII_SubscriptionDate
  PII_EffectiveDate
  PII_RetryTime
  PII_Username
  PII_Password
  PII_Recurrences
  PII_reattempt
  PII_recurring
  PII_Amount
  PII_period

  PII_BuyerID
  PII_ClosingDate
  PII_multiItem

As described in the API document. Note: some fields have prefixes to remove ambiguity for like-named fields (e.g., "PII_").

If there are multiple PaymentItems, then an additional field 'PaymentItems' will be available with an arrayref of PaymentItem records:

  PaymentItems => [ { SalesTax => ...,
                      Name     => '...',
                      Number   => '...',
                      Quantity => '...',
                      Amount   => '...',
                      Options  => { 'key0' => 'value0',
                                    'key1' => 'value1' },
                    },
                    { SalesTax => ..., etc.
                    } ]

Example:

  my %resp = $pp->GetTransactionDetails( TransactionID => $trans_id );
  print "Payer: $resp{Payer}\n";

  for my $item ( @{ $resp{PaymentItems} } ) {
      print "Name: " . $item->{Name} . "\n";
      print "Amt: " . $item->{Amount} . "\n";
      for my $optionname (keys %$item->{Options}) {
          print "Option: $optionname is " . $item->{Options}{$optionname} . "\n";
      }
  }

PaymentItem Options Limitations

Note, BTW, that PayPal has a limitation such that each PaymentItem can contain only two Options. See: https://www.paypal.com/cgi-bin/webscr?cmd=p/xcl/rec/options-help-outside https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/

This hack may be of interest if you want to sneak in four options: https://ppmts.custhelp.com/app/answers/detail/a_id/298/kw/soap%20gettransactiondetails%20option

ERROR HANDLING

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

EXPORT

None by default.

SEE ALSO

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

AUTHORS

  • Scott Wiersdorf <scott@perlcode.org>

  • Danny Hembree <danny@dynamical.org>

  • Bradley M. Kuhn <bkuhn@ebb.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2006-2017 by Scott Wiersdorf, Danny Hembree, Bradley M. Kuhn.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.