odex25_standard/odex25_donation/applepay_fast_checkout/controllers/main.py

34 lines
1.3 KiB
Python

import json
from odoo.http import route, request, Controller
class ApplePayFastCheckout(Controller):
@route('/applepay', type='http', auth='public', website=True, csrf=False)
def apple_pay_iframe(self, **kwargs):
acquirer_id = request.env['payment.acquirer'].sudo().search([('provider', '=', 'applepay')], limit=1)
if acquirer_id.state == 'test':
url = "https://eu-test.oppwa.com/v1/paymentWidgets.js"
else:
url = "https://oppwa.com/v1/paymentWidgets.js"
response = request.render("applepay_fast_checkout.apple_pay_iframe", {'hyperpay_src': url})
response.headers['Content-Security-Policy'] = "script-src blob: 'self' 'unsafe-inline' 'unsafe-eval' https://*; worker-src blob: 'self' 'unsafe-inline' 'unsafe-eval' https://*;connect-src 'self' https://* wss://*;frame-src 'self' blob: https://*;"
return response
@route('/applepay/checkout', type='json', auth='public', website=True)
def apple_pay_create_checkout(self, **post):
data = json.loads(request.httprequest.data.decode('utf-8'))
processed_data = self._process_checkout_data(data)
checkout_id = self._get_checkout_id(processed_data)
return {'checkout_id': checkout_id}
def _process_checkout_data(self, data):
return data
def _get_checkout_id(self, vals):
return ''