From c4189db548efafe4406c32b96aad9ad7ec397f61 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 3 May 2021 22:22:53 +0200 Subject: [PATCH] Stripe: Allow destination charges --- src/pretix/plugins/stripe/payment.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/pretix/plugins/stripe/payment.py b/src/pretix/plugins/stripe/payment.py index 4fffd14f0..89ef28a39 100644 --- a/src/pretix/plugins/stripe/payment.py +++ b/src/pretix/plugins/stripe/payment.py @@ -290,6 +290,14 @@ class StripeSettingsHolder(BasePaymentProvider): )), ] + list(super().settings_form_fields.items()) + moto_settings ) + if not self.settings.connect_client_id or self.settings.secret_key: + d['connect_destination'] = forms.CharField( + label=_('Destination'), + validators=( + StripeKeyValidator(['acct_']), + ), + required=False + ) d.move_to_end('_enabled', last=False) return d @@ -358,10 +366,10 @@ class StripeMethod(BasePaymentProvider): fee = max(fee, self.settings.get('connect_app_fee_min', as_type=Decimal)) if fee: d['application_fee_amount'] = self._decimal_to_int(fee) - if self.settings.connect_destination: - d['transfer_data'] = { - 'destination': self.settings.connect_destination - } + if self.settings.connect_destination: + d['transfer_data'] = { + 'destination': self.settings.connect_destination + } return d def statement_descriptor(self, payment, length=22):