Merge branch 'recurring-payments-profile-details-support'
This commit is contained in:
		
						commit
						20967ab871
					
				
					 1 changed files with 178 additions and 0 deletions
				
			
		
							
								
								
									
										178
									
								
								lib/Business/PayPal/API/GetRecurringPaymentsProfileDetails.pm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										178
									
								
								lib/Business/PayPal/API/GetRecurringPaymentsProfileDetails.pm
									
										
									
									
									
										Normal file
									
								
							|  | @ -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<Business::PayPal::API::GetRecurringPaymentsProfileDetails> implements PayPal's | ||||
| B<GetRecurringPaymentsProfileDetails> 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<sandbox>. Please see L<Business::PayPal::API> for details | ||||
| on using the PayPal sandbox. | ||||
| 
 | ||||
| =head2 GetRecurringPaymentsProfileDetails | ||||
| 
 | ||||
| Implements PayPal's B<GetRecurringPaymentsProfileDetails> 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<ERROR HANDLING> section of B<Business::PayPal::API> for | ||||
| information on handling errors. | ||||
| 
 | ||||
| =head2 EXPORT | ||||
| 
 | ||||
| None by default. | ||||
| 
 | ||||
| =head1 SEE ALSO | ||||
| 
 | ||||
| L<https://developer.paypal.com/en_US/pdf/PP_APIReference.pdf> | ||||
| 
 | ||||
| =head1 AUTHOR | ||||
| 
 | ||||
| Bradley M. Kuhn E<lt>bkuhn@ebb.orgE<gt> | ||||
| 
 | ||||
| adapted from work by: | ||||
| Scot Wiersdorf E<lt>scott@perlcode.orgE<gt> | ||||
| 
 | ||||
| =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 | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn