'Process a PayPal direct payment.'

def process(self, request, item):

    from paypal.pro.helpers import PayPalWPP
    wpp = PayPalWPP(request)
    params = self.cleaned_data
    params['creditcardtype'] = self.fields['acct'].card_type
    params['expdate'] = self.cleaned_data['expdate'].strftime('%m%Y')
    params['ipaddress'] = request.META.get('REMOTE_ADDR', '')
    params.update(item)
    try:
        if ('billingperiod' not in params):
            nvp_obj = wpp.doDirectPayment(params)
        else:
            nvp_obj = wpp.createRecurringPaymentsProfile(params, direct=True)
    except PayPalFailure:
        return False
    return True
