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…
Reference in a new issue