58 lines
2.3 KiB
Python
58 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
import logging
|
|
import pprint
|
|
import werkzeug
|
|
|
|
from openerp import http, SUPERUSER_ID
|
|
from openerp.http import request
|
|
from openerp.addons.payment.models.payment_acquirer import ValidationError
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class OgoneController(http.Controller):
|
|
_accept_url = '/payment/ogone/test/accept'
|
|
_decline_url = '/payment/ogone/test/decline'
|
|
_exception_url = '/payment/ogone/test/exception'
|
|
_cancel_url = '/payment/ogone/test/cancel'
|
|
|
|
@http.route([
|
|
'/payment/ogone/accept', '/payment/ogone/test/accept',
|
|
'/payment/ogone/decline', '/payment/ogone/test/decline',
|
|
'/payment/ogone/exception', '/payment/ogone/test/exception',
|
|
'/payment/ogone/cancel', '/payment/ogone/test/cancel',
|
|
], type='http', auth='none')
|
|
def ogone_form_feedback(self, **post):
|
|
""" Ogone contacts using GET, at least for accept """
|
|
_logger.info('Ogone: entering form_feedback with post data %s', pprint.pformat(post)) # debug
|
|
cr, uid, context = request.cr, SUPERUSER_ID, request.context
|
|
request.registry['payment.transaction'].form_feedback(cr, uid, post, 'ogone', context=context)
|
|
return werkzeug.utils.redirect(post.pop('return_url', '/'))
|
|
|
|
@http.route(['/payment/ogone/s2s/create_json'], type='json', auth='public')
|
|
def ogone_s2s_create_json(self, **kwargs):
|
|
data = kwargs
|
|
acquirer_id = int(data.get('acquirer_id'))
|
|
acquirer = request.env['payment.acquirer'].browse(acquirer_id)
|
|
new_id = acquirer.s2s_process(data)
|
|
return new_id
|
|
|
|
@http.route(['/payment/ogone/s2s/create'], type='http', auth='public')
|
|
def ogone_s2s_create(self, **post):
|
|
acquirer_id = int(post.get('acquirer_id'))
|
|
acquirer = request.env['payment.acquirer'].browse(acquirer_id)
|
|
acquirer.s2s_process(post)
|
|
return werkzeug.utils.redirect(post.get('return_url', '/'))
|
|
|
|
@http.route(['/payment/ogone/s2s/feedback'], auth='none')
|
|
def feedback(self, **kwargs):
|
|
cr, uid, context = request.cr, SUPERUSER_ID, request.context
|
|
payment = request.registry.get('payment.transaction')
|
|
try:
|
|
tx = payment._ogone_form_get_tx_from_data(cr, uid, kwargs, context=context)
|
|
payment._ogone_s2s_validate(tx)
|
|
except ValidationError:
|
|
return 'ko'
|
|
|
|
return 'ok'
|