Beispiel #1
0
 def payment_methods(self):
     return [
         PaymentMethod(provider='vitepay',
                       name='Orange Money',
                       currencies=['XOF'],
                       code='orange_money')
     ]
Beispiel #2
0
 def payment_methods(self):
     return [
         PaymentMethod(provider='telesom',
                       name='Zaad',
                       currencies=['USD'],
                       code='zaad')
     ]
Beispiel #3
0
 def payment_methods(self):
     return [
         PaymentMethod(provider='lipisha',
                       name='M-PESA',
                       currencies=['KES'],
                       code='mpesa')
     ]
Beispiel #4
0
 def payment_methods(self):
     return [
         PaymentMethod(
             provider='flutterwave',
             name='Credit card',
             code='credit_card',
             currencies=['NGN'],
         )
     ]
Beispiel #5
0
    def get_payment_methods(self, obj):
        if not obj.bank_account:
            return []

        methods = obj.bank_account.payment_methods

        request = self.context['request']

        if request.user.is_authenticated and request.user.can_pledge:
            methods.append(
                PaymentMethod(
                    provider='pledge',
                    code='pledge',
                    name=_('Pledge'),
                    currencies=[
                        'EUR', 'USD', 'NGN', 'UGX', 'KES', 'XOF', 'BGN'
                    ]
                )
            )

        return methods
Beispiel #6
0
class StripePaymentProvider(PaymentProvider):

    title = 'Stripe'

    stripe_payment_methods = [
        PaymentMethod(
            provider='stripe',
            code='credit-card',
            name=_('Credit card'),
            currencies=['EUR', 'USD', 'GBP', 'AUD'],
            countries=[]
        ),
        PaymentMethod(
            provider='stripe',
            code='bancontact',
            name=_('Bancontact'),
            currencies=['EUR'],
            countries=['BE']
        ),
        PaymentMethod(
            provider='stripe',
            code='ideal',
            name=_('iDEAL'),
            currencies=['EUR'],
            countries=['NL']
        ),
        PaymentMethod(
            provider='stripe',
            code='direct-debit',
            name=_('Direct debit'),
            currencies=['EUR'],
        )
    ]

    refund_enabled = True

    @property
    def public_settings(self):
        return {
            'publishable_key': settings.STRIPE['publishable_key'],
            'credit-card': self.credit_card,
            'ideal': self.ideal,
            'bancontact': self.bancontact,
            'direct-debit': self.direct_debit
        }

    @property
    def private_settings(self):
        return {
            'api_key': settings.STRIPE['api_key'],
            'webhook_secret': settings.STRIPE['webhook_secret'],
            'webhook_secret_connect': settings.STRIPE['webhook_secret_connect'],
        }

    credit_card = models.BooleanField(_('Credit card'), default=True)
    ideal = models.BooleanField(_('iDEAL'), default=False)
    bancontact = models.BooleanField(_('Bancontact'), default=False)
    direct_debit = models.BooleanField(_('Direct debit'), default=False)

    @property
    def payment_methods(self):
        methods = []
        for code in ['credit-card', 'ideal', 'bancontact', 'direct-debit']:
            if getattr(self, code.replace('-', '_'), False):
                for method in self.stripe_payment_methods:
                    if method.code == code:
                        methods.append(method)
        return methods

    class Meta(object):
        verbose_name = 'Stripe payment provider'