11# -*- coding: utf-8 -*-
2- # Copyright 2019 ePayco.co
3- # - Manuel Marquez <buzondemam@gmail.com>
4- # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2+ # Part of Odoo. See LICENSE file for full copyright and licensing details.
53
64import logging
75import pprint
108
119from odoo import http
1210from odoo .http import request , Response
11+ from werkzeug import urls
1312
1413_logger = logging .getLogger (__name__ )
1514
1615
1716class EpaycoController (http .Controller ):
18- _response_url = '/payment/epayco/response/'
19- _confirmation_url = '/payment/epayco/confirmation/'
20-
21- @http .route (
22- ['/payment/epayco/checkout/' ], type = 'http' , csrf = False , website = True )
23- def epayco_checkout (self , ** post ):
24- """Render template to redirect to ePayco checkout."""
17+ @http .route (['/payment/epayco/checkout' ], type = 'http' , website = True , csrf = False )
18+ def epayco_return (self , ** post ):
19+ """ Epayco."""
2520 order = request .website .sale_get_order ()
21+ print (order )
22+ print (type (order ))
23+ print ('_____________________ _______________' )
2624 post_data = {
2725 'amount_tax' : order .amount_tax ,
2826 'amount_untaxed' : order .amount_untaxed ,
2927 }
3028 post .update (post_data )
29+ print (post )
3130 return request .render ('payment_epayco.checkout' , post )
3231
33- def _post_process_tx (self , data ):
34- """Post process transaction to confirm the sale order and
35- to generate the invoices if needed."""
36- tx_reference = data .get ('x_id_invoice' )
37- payment_transaction = request .env ['payment.transaction' ].sudo ()
3832
39- tx = payment_transaction .search ([('reference' , '=' , tx_reference )])
40-
41- if not tx :
42- _logger .exception ('Transaction post processing failed. '
43- 'Not found any transaction with reference %s' ,
44- tx_reference )
45-
46- if tx .state == 'done' :
47- return tx .sudo ()._post_process_after_done ()
48- elif tx .state != 'pending' :
49- return tx .sudo ()._log_payment_transaction_received ()
33+ @http .route (['/payment/epayco/response/' ], type = 'http' , website = True , csrf = False )
34+ def epayco_return_url (self , ** post ):
35+ """Process response from ePayco after process payment."""
36+ return self ._epayco_process_response (post )
5037
38+ @http .route (
39+ ['/payment/epayco/confirmation/' ],
40+ type = 'http' ,
41+ csrf = False ,
42+ website = True ,
43+ auth = 'public' )
44+ def epayco_payment_confirmation_url (self , ** post ):
45+ """Process payment confirmation from ePayco."""
46+ return self ._epayco_process_response (post , confirmation = True )
47+
5148 def _epayco_process_response (self , data , confirmation = False ):
5249 if not confirmation :
5350 ref_payco = data .get ('ref_payco' )
54-
51+ print ('ref_payco' )
52+ print (ref_payco )
5553 if ref_payco is None :
5654 _logger .debug ('User error in ePayco checkout: %s' , data )
5755 return werkzeug .utils .redirect ('/shop/payment' )
@@ -74,22 +72,22 @@ def _epayco_process_response(self, data, confirmation=False):
7472 data , 'epayco' )
7573 self ._post_process_tx (data )
7674 return Response (status = 200 )
75+
7776
78- @http .route (
79- ['/payment/epayco/response/' ],
80- type = 'http' ,
81- csrf = False ,
82- website = True )
83- def epayco_return_url (self , ** post ):
84- """Process response from ePayco after process payment."""
85- return self ._epayco_process_response (post )
77+ def _post_process_tx (self , data ):
78+ """Post process transaction to confirm the sale order and
79+ to generate the invoices if needed."""
80+ tx_reference = data .get ('x_id_invoice' )
81+ payment_transaction = request .env ['payment.transaction' ].sudo ()
8682
87- @http .route (
88- ['/payment/epayco/confirmation/' ],
89- type = 'http' ,
90- csrf = False ,
91- website = True ,
92- auth = 'public' )
93- def epayco_payment_confirmation_url (self , ** post ):
94- """Process payment confirmation from ePayco."""
95- return self ._epayco_process_response (post , confirmation = True )
83+ tx = payment_transaction .search ([('reference' , '=' , tx_reference )])
84+
85+ if not tx :
86+ _logger .exception ('Transaction post processing failed. '
87+ 'Not found any transaction with reference %s' ,
88+ tx_reference )
89+
90+ if tx .state == 'done' :
91+ return tx .sudo ()._post_process_after_done ()
92+ elif tx .state != 'pending' :
93+ return tx .sudo ()._log_payment_transaction_received ()
0 commit comments