diff --git a/lib/Business/PayPal/API/GetRecurringPaymentsProfileDetails.pm b/lib/Business/PayPal/API/GetRecurringPaymentsProfileDetails.pm new file mode 100644 index 0000000..7e8ef87 --- /dev/null +++ b/lib/Business/PayPal/API/GetRecurringPaymentsProfileDetails.pm @@ -0,0 +1,178 @@ +# This file is part of Business:PayPal:API Module. License: Same as Perl. See its README for details. +package Business::PayPal::API::GetRecurringPaymentsProfileDetails; + +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(GetRecurringPaymentsProfileDetails); ## fake exporter + +sub GetRecurringPaymentsProfileDetails { + my $self = shift; + my %args = @_; + + my @trans = + ( + $self->version_req, + SOAP::Data->name( ProfileID => $args{ProfileID} )->type( 'xs:string' ), + ); + + my $request = SOAP::Data->name + ( GetRecurringPaymentsProfileDetailsRequest => \SOAP::Data->value( @trans ) ) + ->type("ns:GetRecurringPaymentsProfileDetailsRequestType"); + + my $som = $self->doCall( GetRecurringPaymentsProfileDetailsReq => $request ) + or return; + + my $path = '/Envelope/Body/GetRecurringPaymentsProfileDetailsResponse'; + + my %response = (); + unless( $self->getBasic($som, $path, \%response) ) { + $self->getErrors($som, $path, \%response); + return %response; + } + + $path .= '/GetRecurringPaymentsProfileDetailsResponseDetails'; + $self->getFields($som, $path, \%response, + { ProfileID => 'ProfileID', + ProfileStatus => 'ProfileStatus', + Description => 'Description', + AggregateAmount => 'AggregateAmount', + RegularAmountPaid => 'RegularAmountPaid', + FinalPaymentDueDate => 'FinalPaymentDueDate', + TrialAmountPaid => 'TrialAmountPaid', + AggregateOptionalAmount => 'AggregateOptionalAmount', + AutoBillOutstandingAmount => 'AutoBillOutstandingAmount', + MaxFailedPayments => 'MaxFailedPayments', + CountryName => 'SubscriberShippingAddress/CountryName', + CityName => 'SubscriberShippingAddress/CityName', + Street1 => 'SubscriberShippingAddress/Street1', + Street2 => 'SubscriberShippingAddress/Street2', + PostalCode => 'SubscriberShippingAddress/PostalCode', + AddressID => 'SubscriberShippingAddress/AddressID', + ExternalAddressID => 'SubscriberShippingAddress/ExternalAddressID', + AddressOwner => 'SubscriberShippingAddress/AddressOwner', + Phone => 'SubscriberShippingAddress/Phone', + AddressStatus => 'SubscriberShippingAddress/AddressStatus', + Name => 'SubscriberShippingAddress/Name', + StateOrProvince => 'SubscriberShippingAddress/StateOrProvince', + BillingStartDate => 'BillingStartDate', + SubscriberName => 'SubscriberName', + TaxAmount => 'CurrentRecurringPaymentsPeriod/TaxAmount', + Amount => 'CurrentRecurringPaymentsPeriod/Amount', + ShippingAmount => 'CurrentRecurringPaymentsPeriod/ShippingAmount', + TotalBillingCycles => 'CurrentRecurringPaymentsPeriod/TotalBillingCycles', + BillingPeriod => 'CurrentRecurringPaymentsPeriod/BillingPeriod', + + + # 'LastPaymentAmount' => '10.00', + # 'NextBillingDate' => '2014-01-17T10:00:00Z', + # 'NumberCyclesRemaining' => '-2', + # 'NumberCyclesCompleted' => '2', + # 'LastPaymentDate' => '2013-12-17T10:59:31Z', + # 'FailedPaymentCount' => '0', + # 'OutstandingBalance' => '0.00' + # }, 'RecurringPaymentsSummaryType' ), + # '{urn:ebay:apis:eBLBaseComponents}RecurringPaymentsSummary', + # bless( { + # 'TaxAmount' => '0.00', + # 'Amount' => '10.00', + # 'ShippingAmount' => '0.00', + # 'TotalBillingCycles' => '0', + # 'BillingFrequency' => '1', + # 'BillingPeriod' => 'Month' + # }, 'BillingPeriodDetailsType' ), + # '{urn:ebay:apis:eBLBaseComponents}RegularRecurringPaymentsPeriod', + + } + ); + + return %response; +} + +1; +__END__ + +=head1 NAME + +Business::PayPal::API::GetRecurringPaymentsProfileDetails - PayPal GetRecurringPaymentsProfileDetails API + +=head1 SYNOPSIS + + use Business::PayPal::API::GetRecurringPaymentsProfileDetails; + my $pp = new Business::PayPal::API::GetRecurringPaymentsProfileDetails ( ... ); + +or + + ## see Business::PayPal::API documentation for parameters + use Business::PayPal::API qw(GetRecurringPaymentsProfileDetails); + my $pp = new Business::PayPal::API( ... ); + + my %response = $pp->GetRecurringPaymentsProfileDetails( ProfileID => $profileID, ); + +=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 GetRecurringPaymentsProfileDetails + +Implements PayPal's B 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: + + +As described in the API document. + + +Example: + + my %resp = $pp->GetRecurringPaymentsProfileDetails( ProfileID => $trans_id ); + print "Payer: $resp{ProfileStatus}\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 + +Bradley M. Kuhn Ebkuhn@ebb.orgE + +adapted from work by: +Scot Wiersdorf Escott@perlcode.orgE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2006 by Scott Wiersdorf +Copyright (C) 2013 by Bradley M. Kuhn + +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