34 lines
1.4 KiB
Python
34 lines
1.4 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, 'merchant_id': acquirer_id.applepay_entity_id})
|
|
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 ''
|