summaryrefslogtreecommitdiff
path: root/addons/payment_stripe_sca/controllers/main.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-09-17 17:49:09 +0200
committerChristophe Simonis <chs@odoo.com>2019-09-17 17:49:09 +0200
commit080f8b1f96dec30fd9568a81342b5d20cc9d521a (patch)
tree14cecabb2c6502e73d93178bd322722e2e62f07d /addons/payment_stripe_sca/controllers/main.py
parentc12bd7125a1c64339e02ae0563f667b8de931b3b (diff)
parentd8ce75466e4a6728cccfc7696a65a399e9cf23f1 (diff)
[MERGE] forward port branch saas-12.3 up to d8ce75466e4
Diffstat (limited to 'addons/payment_stripe_sca/controllers/main.py')
-rw-r--r--addons/payment_stripe_sca/controllers/main.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/addons/payment_stripe_sca/controllers/main.py b/addons/payment_stripe_sca/controllers/main.py
new file mode 100644
index 00000000000..fb1bda1de54
--- /dev/null
+++ b/addons/payment_stripe_sca/controllers/main.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+import logging
+import pprint
+import werkzeug
+
+from odoo.http import route, request
+from odoo.addons.payment_stripe.controllers.main import StripeController
+
+_logger = logging.getLogger(__name__)
+
+
+class StripeControllerSCA(StripeController):
+ _success_url = '/payment/stripe/success'
+ _cancel_url = '/payment/stripe/cancel'
+
+ @route(['/payment/stripe/success', '/payment/stripe/cancel'], type='http', auth='public')
+ def stripe_success(self, **kwargs):
+ request.env['payment.transaction'].sudo().form_feedback(kwargs, 'stripe')
+ return werkzeug.utils.redirect('/payment/process')
+
+ @route(['/payment/stripe/s2s/create_json_3ds'], type='json', auth='public', csrf=False)
+ def stripe_s2s_create_json_3ds(self, verify_validity=False, **kwargs):
+ if not kwargs.get('partner_id'):
+ kwargs = dict(kwargs, partner_id=request.env.user.partner_id.id)
+ token = request.env['payment.acquirer'].browse(int(kwargs.get('acquirer_id'))).s2s_process(kwargs)
+
+ if not token:
+ res = {
+ 'result': False,
+ }
+ return res
+
+ res = {
+ 'result': True,
+ 'id': token.id,
+ 'short_name': token.short_name,
+ '3d_secure': False,
+ 'verified': False,
+ }
+
+ if verify_validity != False:
+ token.validate()
+ res['verified'] = token.verified
+
+ return res
+
+ @route('/payment/stripe/s2s/create_setup_intent', type='json', auth='public', csrf=False)
+ def stripe_s2s_create_setup_intent(self, acquirer_id, **kwargs):
+ acquirer = request.env['payment.acquirer'].browse(int(acquirer_id))
+ res = acquirer._create_setup_intent(kwargs)
+ return res.get('client_secret')
+
+
+ @route('/payment/stripe/s2s/process_payment_intent', type='json')
+ def stripe_s2s_process_payment_intent(self, **post):
+ return request.env['payment.transaction'].sudo().form_feedback(post, 'stripe')
+
+
+ # These routes are deprecated, let's remove them for security's sake
+ def stripe_s2s_create_json(self, **post):
+ raise werkzeug.exceptions.NotFound()
+
+ def stripe_s2s_create(self, **post):
+ raise werkzeug.exceptions.NotFound()
+
+ def stripe_create_charge(self, **post):
+ raise werkzeug.exceptions.NotFound()