Website Payments Pro models and helpers

class paypal.pro.helpers.PayPalWPP

This class wraps the PayPal classic APIs, and sends data using Name-Value Pairs (NVP). The methods all take a params dictionary, the contents of which depend on the API being called. All parameter keys should be passed as lowercase values (unless otherwise specified), not the mixed case/upper case that is shown in PayPal docs.

For API parameters, see the PayPal docs for more information:

The method calls all return a paypal.pro.models.PayPalNVP object on success. If an API call does not return ack=Success or ack=SuccessWithWarning, a PayPalFailure exception is raised. The NVP object is available as an attribute named nvp on this exception object.

__init__(request=None, params=BASE_PARAMS)

Initialize the instance using an optional Django HTTP request object, and an optional parameter dictionary which should contain the keys USER, PWD, SIGNATURE and VERSION. If the parameter dictionary is not supplied, these parameters will be taken from settings PAYPAL_WPP_USER, PAYPAL_WPP_PASSWORD, PAYPAL_WPP_SIGNATURE and the builtin version number.

createBillingAgreement()

The CreateBillingAgreement API operation creates a billing agreement with a PayPal account holder. CreateBillingAgreement is only valid for reference transactions.

from paypal.pro.helpers import PayPalWPP

def create_billing_agreement_view(request):
    wpp = PayPalWPP(request)
    token = request.GET.get('token')
    wpp.createBillingAgreement({'token': token})
createRecurringPaymentsProfile()

The CreateRecurringPaymentsProfile API operation creates a recurring payments profile. You must invoke the CreateRecurringPaymentsProfile API operation for each profile you want to create. The API operation creates a profile and an associated billing agreement.

Note: There is a one-to-one correspondence between billing agreements and recurring payments profiles. To associate a recurring payments profile with its billing agreement, you must ensure that the description in the recurring payments profile matches the description of a billing agreement. For version 54.0 and later, use SetExpressCheckout to initiate creation of a billing agreement.

doDirectPayment()

The DoDirectPayment API Operation enables you to process a credit card payment.

doExpressCheckoutPayment()

The DoExpressCheckoutPayment API operation completes an Express Checkout transaction. If you set up a billing agreement in your SetExpressCheckout API call, the billing agreement is created when you call the DoExpressCheckoutPayment API operation.

The DoExpressCheckoutPayment API operation completes an Express Checkout transaction. If you set up a billing agreement in your SetExpressCheckout API call, the billing agreement is created when you call the DoExpressCheckoutPayment API operation.

doReferenceTransaction()

The DoReferenceTransaction API operation processes a payment from a buyer’s account, which is identified by a previous transaction.

from paypal.pro.helpers import PayPalWPP

def do_reference_transaction_view(request):
    wpp = PayPalWPP(request)
    reference_id = request.POST.get('reference_id')
    amount = request.POST.get('amount')
    wpp.doReferenceTransaction({'referenceid': reference_id, 'amt': amount})
getExpressCheckoutDetails()

The GetExpressCheckoutDetails API operation obtains information about a specific Express Checkout transaction.

getTransactionDetails()

The GetTransactionDetails API operation obtains information about a specific transaction.

manageRecurringPaymentsProfileStatus()

The ManageRecurringPaymentsProfileStatus API operation cancels, suspends, or reactivates a recurring payments profile.

setExpressCheckout()

The SetExpressCheckout API operation initiates an Express Checkout transaction. Returns an PayPalNVP object that has the token saved in the .token attribute.

This token can be converted into a URL to redirect to using the helper function express_endpoint_for_token in this module.

See the SetExpressCheckout docs

updateRecurringPaymentsProfile()

The UpdateRecurringPaymentsProfile API operation updates a recurring payments profile.

paypal.pro.helpers.express_endpoint_for_token(token, commit=False)

Returns the PayPal Express Checkout endpoint for a token. Pass commit=True if you will not prompt for confirmation when the user returns to your site.

class paypal.pro.models.PayPalNVP

This stores the response returned by PayPal for any of the API calls above.

It has fields for all the common values. For other values, you can access response_dict which is a dictionary-like object containing everything PayPal returned.