From 46cc2c3deb299cc61c14a0675221b811aaf999b8 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 10:42:46 +0700 Subject: initial commit for midtrans development --- indoteknik_api/controllers/api_v1/__init__.py | 1 + indoteknik_api/controllers/api_v1/midtrans.py | 34 +++++++++++++++++++++++++ indoteknik_api/controllers/api_v1/sale_order.py | 2 +- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 indoteknik_api/controllers/api_v1/midtrans.py (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/__init__.py b/indoteknik_api/controllers/api_v1/__init__.py index a4776503..ab499443 100644 --- a/indoteknik_api/controllers/api_v1/__init__.py +++ b/indoteknik_api/controllers/api_v1/__init__.py @@ -18,3 +18,4 @@ from . import wishlist from . import brand_homepage from . import customer from . import content +from . import midtrans diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py new file mode 100644 index 00000000..9a0ca50e --- /dev/null +++ b/indoteknik_api/controllers/api_v1/midtrans.py @@ -0,0 +1,34 @@ +from .. import controller +from odoo import http +from odoo.http import request +import json + + +class Midtrans(controller.Controller): + prefix = '/api/v1/' + + @http.route(prefix + 'midtrans/notification', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS']) + def notification(self, **kw): + json_raw = json.loads(request.httprequest.data) + trx_status = json.loads(request.httprequest.data)['transaction_status'] + order_no = json.loads(request.httprequest.data)['order_id'] + + query = [('name', '=', order_no)] + order = request.env['sale.order'].search(query, limit=1) + order.transaction_status = trx_status + + request.env['midtrans.notification'].create([{ + 'sale_order_id': order.id, + 'json_raw': json_raw, + 'payment_status': trx_status, + }]) + + return + + @http.route(prefix + 'midtrans/recurring', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS']) + def recurring(self, **kw): + json_raw = json.loads(request.httprequest.data) + request.env['midtrans.recurring'].create([{ + 'json_raw': json_raw, + }]) + return diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index f2ec8dfe..4128d9f9 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -142,7 +142,7 @@ class SaleOrder(controller.Controller): 'partner_purchase_order_file': params['value']['po_file'] } sale_order = request.env['sale.order'].create([[parameters]]) - + var = json.loads(kw.get('transaction_time', '{}')) order_line = json.loads(params['value']['order_line']) parameters = [] for line in order_line: -- cgit v1.2.3 From 669b9de298ed3667fc6aaf1e6070604c1799a0a8 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 10:56:07 +0700 Subject: bug fix unauthorized sale order --- indoteknik_api/controllers/api_v1/midtrans.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py index 9a0ca50e..a5e667cf 100644 --- a/indoteknik_api/controllers/api_v1/midtrans.py +++ b/indoteknik_api/controllers/api_v1/midtrans.py @@ -14,8 +14,8 @@ class Midtrans(controller.Controller): order_no = json.loads(request.httprequest.data)['order_id'] query = [('name', '=', order_no)] - order = request.env['sale.order'].search(query, limit=1) - order.transaction_status = trx_status + order = request.env['sale.order'].sudo().search(query, limit=1) + order.payment_status = trx_status request.env['midtrans.notification'].create([{ 'sale_order_id': order.id, -- cgit v1.2.3 From daf2b9581e8d1d72a72c7b01e760c4e67407472e Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 11:05:53 +0700 Subject: add midtrans pay account notification --- indoteknik_api/controllers/api_v1/midtrans.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indoteknik_api/controllers/api_v1') diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py index a5e667cf..fdc801d3 100644 --- a/indoteknik_api/controllers/api_v1/midtrans.py +++ b/indoteknik_api/controllers/api_v1/midtrans.py @@ -32,3 +32,11 @@ class Midtrans(controller.Controller): 'json_raw': json_raw, }]) return + + @http.route(prefix + 'midtrans/payaccount', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS']) + def payaccount(self, **kw): + json_raw = json.loads(request.httprequest.data) + request.env['midtrans.account'].create([{ + 'json_raw': json_raw, + }]) + return \ No newline at end of file -- cgit v1.2.3