forked from CGM_Public/pretix_original
Stripe connect: Fix issues with test keys
This commit is contained in:
@@ -5,5 +5,9 @@
|
|||||||
{% compress js %}
|
{% compress js %}
|
||||||
<script type="text/javascript" src="{% static "pretixplugins/stripe/pretix-stripe.js" %}"></script>
|
<script type="text/javascript" src="{% static "pretixplugins/stripe/pretix-stripe.js" %}"></script>
|
||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
<script type="text/plain" id="stripe_pubkey">{{ settings.publishable_key }}</script>
|
{% if settings.endpoint == "test" and settings.publishable_test_key %}
|
||||||
|
<script type="text/plain" id="stripe_pubkey">{{ settings.publishable_test_key }}</script>
|
||||||
|
{% else %}
|
||||||
|
<script type="text/plain" id="stripe_pubkey">{{ settings.publishable_key }}</script>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ def oauth_return(request, *args, **kwargs):
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
gs = GlobalSettingsObject()
|
gs = GlobalSettingsObject()
|
||||||
|
testdata = {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
resp = requests.post('https://connect.stripe.com/oauth/token', data={
|
resp = requests.post('https://connect.stripe.com/oauth/token', data={
|
||||||
@@ -82,8 +83,27 @@ def oauth_return(request, *args, **kwargs):
|
|||||||
logger.exception('Failed to obtain OAuth token')
|
logger.exception('Failed to obtain OAuth token')
|
||||||
messages.error(request, _('An error occured during connecting with Stripe, please try again.'))
|
messages.error(request, _('An error occured during connecting with Stripe, please try again.'))
|
||||||
else:
|
else:
|
||||||
|
if data['livemode']:
|
||||||
|
try:
|
||||||
|
testresp = requests.post('https://connect.stripe.com/oauth/token', data={
|
||||||
|
'grant_type': 'refresh_token',
|
||||||
|
'client_secret': gs.settings.payment_stripe_connect_test_secret_key,
|
||||||
|
'refresh_token': data['refresh_token']
|
||||||
|
})
|
||||||
|
testdata = testresp.json()
|
||||||
|
except:
|
||||||
|
logger.exception('Failed to obtain OAuth token')
|
||||||
|
messages.error(request, _('An error occured during connecting with Stripe, please try again.'))
|
||||||
|
return redirect(reverse('control:event.settings.payment.provider', kwargs={
|
||||||
|
'organizer': event.organizer.slug,
|
||||||
|
'event': event.slug,
|
||||||
|
'provider': 'stripe_settings'
|
||||||
|
}))
|
||||||
|
|
||||||
if 'error' in data:
|
if 'error' in data:
|
||||||
messages.error(request, _('Stripe returned an error: {}').format(data['error_description']))
|
messages.error(request, _('Stripe returned an error: {}').format(data['error_description']))
|
||||||
|
elif data['livemode'] and 'error' in testdata:
|
||||||
|
messages.error(request, _('Stripe returned an error: {}').format(testdata['error_description']))
|
||||||
else:
|
else:
|
||||||
messages.success(request, _('Your Stripe account is now connected to pretix. You can change the settings in '
|
messages.success(request, _('Your Stripe account is now connected to pretix. You can change the settings in '
|
||||||
'detail below.'))
|
'detail below.'))
|
||||||
@@ -93,6 +113,11 @@ def oauth_return(request, *args, **kwargs):
|
|||||||
event.settings.payment_stripe_connect_user_id = data['stripe_user_id']
|
event.settings.payment_stripe_connect_user_id = data['stripe_user_id']
|
||||||
event.settings.payment_stripe_connect_user_name = account['business_name']
|
event.settings.payment_stripe_connect_user_name = account['business_name']
|
||||||
|
|
||||||
|
if data['livemode']:
|
||||||
|
event.settings.payment_stripe_publishable_test_key = testdata['stripe_publishable_key']
|
||||||
|
else:
|
||||||
|
event.settings.payment_stripe_publishable_test_key = event.settings.payment_stripe_publishable_key
|
||||||
|
|
||||||
if request.session.get('payment_stripe_oauth_enable', False):
|
if request.session.get('payment_stripe_oauth_enable', False):
|
||||||
event.settings.payment_stripe__enabled = True
|
event.settings.payment_stripe__enabled = True
|
||||||
del request.session['payment_stripe_oauth_enable']
|
del request.session['payment_stripe_oauth_enable']
|
||||||
@@ -233,6 +258,7 @@ def source_webhook(event, event_json, source_id):
|
|||||||
@require_POST
|
@require_POST
|
||||||
def oauth_disconnect(request, **kwargs):
|
def oauth_disconnect(request, **kwargs):
|
||||||
del request.event.settings.payment_stripe_publishable_key
|
del request.event.settings.payment_stripe_publishable_key
|
||||||
|
del request.event.settings.payment_stripe_publishable_test_key
|
||||||
del request.event.settings.payment_stripe_connect_access_token
|
del request.event.settings.payment_stripe_connect_access_token
|
||||||
del request.event.settings.payment_stripe_connect_refresh_token
|
del request.event.settings.payment_stripe_connect_refresh_token
|
||||||
del request.event.settings.payment_stripe_connect_user_id
|
del request.event.settings.payment_stripe_connect_user_id
|
||||||
|
|||||||
Reference in New Issue
Block a user