Extend docs on PayPal subscriber report.
This commit is contained in:
		
							parent
							
								
									8d5d951369
								
							
						
					
					
						commit
						2d41e03763
					
				
					 1 changed files with 25 additions and 1 deletions
				
			
		| 
						 | 
					@ -1,4 +1,11 @@
 | 
				
			||||||
"""Download subscriber info from PayPal.
 | 
					"""Download subscribers or subscriber transactions from PayPal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Used to help Conservancy keep track of Sustainers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Prints out either a list of recurring payment transactions or a list of unique
 | 
				
			||||||
 | 
					recurring payment subscriber profiles. This recreates the features available in
 | 
				
			||||||
 | 
					the previous PayPal SOAP API where you could query for all ProfileIDs
 | 
				
			||||||
 | 
					(identifying unique subscribers).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Run it like this:
 | 
					Run it like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +14,16 @@ $ export PAYPAL_CLIENT_SECRET=YYY
 | 
				
			||||||
$ python3 paypal_report.py profiles 2021-11-01T00:00:00-07:00 2021-11-30T23:59:59-07:00 > profiles.txt
 | 
					$ python3 paypal_report.py profiles 2021-11-01T00:00:00-07:00 2021-11-30T23:59:59-07:00 > profiles.txt
 | 
				
			||||||
$ python3 paypal_report.py transactions 2021-11-01T00:00:00-07:00 2021-11-30T23:59:59-07:00 > transactions.txt
 | 
					$ python3 paypal_report.py transactions 2021-11-01T00:00:00-07:00 2021-11-30T23:59:59-07:00 > transactions.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The PayPal OAuth 2.0 client ID and secret can be obtained from the Developer
 | 
				
			||||||
 | 
					Dashboard as described here: https://developer.paypal.com/api/rest/.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This tool isn't directly related Beancount, but it may duplicate some
 | 
				
			||||||
 | 
					functionality from the PayPal importer and paypal_rest tools, which I wasn't
 | 
				
			||||||
 | 
					aware of at the time. See:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - conservancy_beancount/doc/PayPalQuery.md
 | 
				
			||||||
 | 
					 - NPO-Accounting/paypal_rest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"""
 | 
					"""
 | 
				
			||||||
import argparse
 | 
					import argparse
 | 
				
			||||||
import collections
 | 
					import collections
 | 
				
			||||||
| 
						 | 
					@ -107,6 +124,12 @@ def get_transactions_for_period(access_token, start_date, end_date, page=1):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def report_on_unique_profiles(transactions):
 | 
					def report_on_unique_profiles(transactions):
 | 
				
			||||||
 | 
					    """Print a list of subscribers from a set of transactions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PayPal doesn't provide a way to query for subscribers directly, so we build
 | 
				
			||||||
 | 
					    this by scanning through the list of transactions and finding the unique
 | 
				
			||||||
 | 
					    subscribers.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
    records = set()
 | 
					    records = set()
 | 
				
			||||||
    for t in transactions:
 | 
					    for t in transactions:
 | 
				
			||||||
        transaction_info = t['transaction_info']
 | 
					        transaction_info = t['transaction_info']
 | 
				
			||||||
| 
						 | 
					@ -128,6 +151,7 @@ def report_on_unique_profiles(transactions):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def report_on_transactions(transactions):
 | 
					def report_on_transactions(transactions):
 | 
				
			||||||
 | 
					    """Print a formatted list of transactions."""
 | 
				
			||||||
    for t in transactions:
 | 
					    for t in transactions:
 | 
				
			||||||
        transaction_info = t['transaction_info']
 | 
					        transaction_info = t['transaction_info']
 | 
				
			||||||
        if 'paypal_reference_id' in transaction_info:
 | 
					        if 'paypal_reference_id' in transaction_info:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue