Confirm Paypal payments via PDT and IPN
pypay provides a clean API for confirming Paypal payments via PDT or IPN. It takes the boilerplate out of interacting with these services and normalises the Paypal response into something sensible.
Under the hood pypay uses the excellent Requests library for handling http.
pip install pypay
To check a payment via PDT
import pypay response = pypay.pdt_confirm('your_transaction_id', 'your_identity_token')
To check a payment via IPN
import pypay response = pypay.ipn_confirm('query_string_from_paypal')
Response objects always have two properties
response.confirmed # bool indicating if payment is verified response.details # dict containing all the Paypal variables that were returned
In the event of a problem making the http call to Paypal a pypay.exceptions.RequestError will be thrown.
The values passed to pdt_confirm and ipn_confirm are sanity checked and a pypay.exceptions.InvalidPaypalData will be thrown if they are of the wrong type.
Python version support
pypay runs on Python 2.6, 2.7, 3.3 and 3.4 using the Six compatibility library.