Althought most of the SCA compliance stuff was already there, the flow was slighlty changed to better support some flows in 12.0 Reflect this changes in 12.5.
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
import logging
|
|
import werkzeug
|
|
|
|
from odoo import http
|
|
from odoo.http import request
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class StripeController(http.Controller):
|
|
_success_url = '/payment/stripe/success'
|
|
_cancel_url = '/payment/stripe/cancel'
|
|
|
|
@http.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')
|
|
|
|
@http.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
|
|
|
|
@http.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')
|
|
|
|
@http.route('/payment/stripe/s2s/process_payment_intent', type='json', auth='public', csrf=False)
|
|
def stripe_s2s_process_payment_intent(self, **post):
|
|
return request.env['payment.transaction'].sudo().form_feedback(post, 'stripe')
|