def payment_methods(self): return [ PaymentMethod(provider='vitepay', name='Orange Money', currencies=['XOF'], code='orange_money') ]
def payment_methods(self): return [ PaymentMethod(provider='telesom', name='Zaad', currencies=['USD'], code='zaad') ]
def payment_methods(self): return [ PaymentMethod(provider='lipisha', name='M-PESA', currencies=['KES'], code='mpesa') ]
def payment_methods(self): return [ PaymentMethod( provider='flutterwave', name='Credit card', code='credit_card', currencies=['NGN'], ) ]
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
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'