mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Stripe: Only use alphanumeric characters in statement descriptors
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import hashlib
|
import hashlib
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
import re
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
@@ -271,6 +272,13 @@ class StripeMethod(BasePaymentProvider):
|
|||||||
d['application_fee_amount'] = self._decimal_to_int(fee)
|
d['application_fee_amount'] = self._decimal_to_int(fee)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
def statement_descriptor(self, payment, length=22):
|
||||||
|
return '{event}-{code} {eventname}'.format(
|
||||||
|
event=self.event.slug.upper(),
|
||||||
|
code=payment.order.code,
|
||||||
|
eventname=re.sub('[^a-zA-Z0-9 ]', '', str(self.event.name))
|
||||||
|
)[:length]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def api_kwargs(self):
|
def api_kwargs(self):
|
||||||
if self.settings.connect_client_id and self.settings.connect_user_id:
|
if self.settings.connect_client_id and self.settings.connect_user_id:
|
||||||
@@ -311,11 +319,7 @@ class StripeMethod(BasePaymentProvider):
|
|||||||
try:
|
try:
|
||||||
params = {}
|
params = {}
|
||||||
if not source.startswith('src_'):
|
if not source.startswith('src_'):
|
||||||
params['statement_descriptor'] = '{event}-{code} {eventname}'.format(
|
params['statement_descriptor'] = self.statement_descriptor(payment)
|
||||||
event=self.event.slug.upper(),
|
|
||||||
code=payment.order.code,
|
|
||||||
eventname=str(self.event.name)
|
|
||||||
)[:22]
|
|
||||||
params.update(self.api_kwargs)
|
params.update(self.api_kwargs)
|
||||||
params.update(self._connect_kwargs(payment))
|
params.update(self._connect_kwargs(payment))
|
||||||
charge = stripe.Charge.create(
|
charge = stripe.Charge.create(
|
||||||
@@ -642,11 +646,7 @@ class StripeCC(StripeMethod):
|
|||||||
event=self.event.slug.upper(),
|
event=self.event.slug.upper(),
|
||||||
code=payment.order.code
|
code=payment.order.code
|
||||||
),
|
),
|
||||||
statement_descriptor='{event}-{code} {eventname}'.format(
|
statement_descriptor=self.statement_descriptor(payment),
|
||||||
event=self.event.slug.upper(),
|
|
||||||
code=payment.order.code,
|
|
||||||
eventname=str(self.event.name)
|
|
||||||
)[:22],
|
|
||||||
metadata={
|
metadata={
|
||||||
'order': str(payment.order.id),
|
'order': str(payment.order.id),
|
||||||
'event': self.event.id,
|
'event': self.event.id,
|
||||||
@@ -870,11 +870,7 @@ class StripeGiropay(StripeMethod):
|
|||||||
'name': request.session.get('payment_stripe_giropay_account') or ugettext('unknown name')
|
'name': request.session.get('payment_stripe_giropay_account') or ugettext('unknown name')
|
||||||
},
|
},
|
||||||
giropay={
|
giropay={
|
||||||
'statement_descriptor': '{event}-{code} {eventname}'.format(
|
'statement_descriptor': self.statement_descriptor(payment, 35),
|
||||||
event=self.event.slug.upper(),
|
|
||||||
code=payment.order.code,
|
|
||||||
eventname=str(self.event.name)
|
|
||||||
)[:35],
|
|
||||||
},
|
},
|
||||||
redirect={
|
redirect={
|
||||||
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
||||||
@@ -929,11 +925,7 @@ class StripeIdeal(StripeMethod):
|
|||||||
'code': payment.order.code
|
'code': payment.order.code
|
||||||
},
|
},
|
||||||
ideal={
|
ideal={
|
||||||
'statement_descriptor': '{event}-{code} {eventname}'.format(
|
'statement_descriptor': self.statement_descriptor(payment)
|
||||||
event=self.event.slug.upper(),
|
|
||||||
code=payment.order.code,
|
|
||||||
eventname=str(self.event.name)
|
|
||||||
)[:22],
|
|
||||||
},
|
},
|
||||||
redirect={
|
redirect={
|
||||||
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
||||||
@@ -1033,11 +1025,7 @@ class StripeBancontact(StripeMethod):
|
|||||||
'name': request.session.get('payment_stripe_bancontact_account') or ugettext('unknown name')
|
'name': request.session.get('payment_stripe_bancontact_account') or ugettext('unknown name')
|
||||||
},
|
},
|
||||||
bancontact={
|
bancontact={
|
||||||
'statement_descriptor': '{event}-{code} {eventname}'.format(
|
'statement_descriptor': self.statement_descriptor(payment, 35)
|
||||||
event=self.event.slug.upper(),
|
|
||||||
code=payment.order.code,
|
|
||||||
eventname=str(self.event.name)
|
|
||||||
)[:35],
|
|
||||||
},
|
},
|
||||||
redirect={
|
redirect={
|
||||||
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
||||||
@@ -1106,11 +1094,7 @@ class StripeSofort(StripeMethod):
|
|||||||
},
|
},
|
||||||
sofort={
|
sofort={
|
||||||
'country': request.session.get('payment_stripe_sofort_bank_country'),
|
'country': request.session.get('payment_stripe_sofort_bank_country'),
|
||||||
'statement_descriptor': '{event}-{code} {eventname}'.format(
|
'statement_descriptor': self.statement_descriptor(payment, 35)
|
||||||
event=self.event.slug.upper(),
|
|
||||||
code=payment.order.code,
|
|
||||||
eventname=str(self.event.name)
|
|
||||||
)[:35],
|
|
||||||
},
|
},
|
||||||
redirect={
|
redirect={
|
||||||
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
'return_url': build_absolute_uri(self.event, 'plugins:stripe:return', kwargs={
|
||||||
|
|||||||
Reference in New Issue
Block a user