diff --git a/payment_mercadopago/__manifest__.py b/payment_mercadopago/__manifest__.py index 9e74f3ce..f02ee5b3 100644 --- a/payment_mercadopago/__manifest__.py +++ b/payment_mercadopago/__manifest__.py @@ -2,7 +2,7 @@ 'name': 'Mercado Pago Payment Acquirer', 'category': 'Accounting/Payment Acquirers', 'summary': 'Payment Acquirer: MercadoPago', - 'version': "16.0.3.0.0", + 'version': "16.0.3.1.0", 'description': """ Mercado pago Payment =================== diff --git a/payment_mercadopago/controllers/main.py b/payment_mercadopago/controllers/main.py index 493b7cb0..b393517f 100644 --- a/payment_mercadopago/controllers/main.py +++ b/payment_mercadopago/controllers/main.py @@ -43,7 +43,7 @@ def mercadopago_get_provider_info(self, rec_id, flow): else: provider_sudo = request.env['payment.provider'].sudo().browse(rec_id).exists() return { - 'publishable_key': provider_sudo.mercadopago_publishable_key, + 'publishable_key': provider_sudo._get_mercadopago_publishable_key(), 'bin': bin, 'provider_ref': provider_ref, } diff --git a/payment_mercadopago/data/payment_acquirer_data.xml b/payment_mercadopago/data/payment_acquirer_data.xml index 4c94bafd..6b6e8938 100644 --- a/payment_mercadopago/data/payment_acquirer_data.xml +++ b/payment_mercadopago/data/payment_acquirer_data.xml @@ -6,6 +6,10 @@ mercadopago Credit Card (powered by MercadoPago) + TEST-4f5a24d1-b016-4d3f-b9ad-c989c3e371e7 + TEST-4811719641145832-020115-c5caffc149634e3e9d72fde2b74544d8__LD_LA__-172837665 + TEST-4f5a24d1-b016-4d3f-b9ad-c989c3e371e7 + TEST-4811719641145832-020115-c5caffc149634e3e9d72fde2b74544d8__LD_LA__-172837665 partial diff --git a/payment_mercadopago/models/mercadopago_request.py b/payment_mercadopago/models/mercadopago_request.py index 3328453d..19a9f12b 100644 --- a/payment_mercadopago/models/mercadopago_request.py +++ b/payment_mercadopago/models/mercadopago_request.py @@ -24,10 +24,10 @@ class MercadoPagoAPI(): """ def __init__(self, provider): - request_options = RequestOptions(provider.mercadopago_access_token, platform_id="BVH38T5N7QOK0PPDGC2G") - self.mp = mercadopago.SDK(provider.mercadopago_access_token, request_options=request_options) + request_options = RequestOptions(provider._get_mercadopago_access_token(), platform_id="BVH38T5N7QOK0PPDGC2G") + self.mp = mercadopago.SDK(provider._get_mercadopago_access_token(), request_options=request_options) self.sandbox = not provider.state == "enabled" - self.mercadopago_access_token = provider.mercadopago_access_token + self.mercadopago_access_token = provider._get_mercadopago_access_token() def check_response(self, resp): if resp['status'] in [200, 201]: @@ -72,13 +72,13 @@ def check_api_response(self, resp): def unlink_card_token(self, customer_id, card_id): api_url = MP_URL + "v1/customers/%s/cards/%s" % (customer_id, card_id) - headers = {"Authorization": "Bearer %s" % self.mercadopago_access_token} + headers = {"Authorization": "Bearer %s" % self._get_mercadopago_access_token()} response = requests.delete(api_url, headers=headers) #create Test User def create_test_user(self): api_url = MP_URL + "users/test_user" - headers = {"Authorization": "Bearer %s" % self.mercadopago_access_token} + headers = {"Authorization": "Bearer %s" % self._get_mercadopago_access_token()} request_data = {"site_id":"MLA"} response = requests.post(api_url, headers=headers, json=request_data) resp = self.check_api_response(response) diff --git a/payment_mercadopago/models/payment_provider.py b/payment_mercadopago/models/payment_provider.py index e3491a26..7b6ef2d3 100644 --- a/payment_mercadopago/models/payment_provider.py +++ b/payment_mercadopago/models/payment_provider.py @@ -19,8 +19,11 @@ class PaymentProvider(models.Model): code = fields.Selection( selection_add=[('mercadopago', 'MercadoPago')], ondelete={'mercadopago': 'set default'}) - mercadopago_publishable_key = fields.Char('MercadoPago Public Key', required_if_provider='mercadopago') - mercadopago_access_token = fields.Char('MercadoPago Access Token', required_if_provider='mercadopago') + + mercadopago_publishable_key = fields.Char('MercadoPago Public Key') + mercadopago_access_token = fields.Char('MercadoPago Access Token') + mercadopago_test_publishable_key = fields.Char('MercadoPago test Public Key') + mercadopago_test_access_token = fields.Char('MercadoPago test Access Token') is_validation = fields.Boolean() # MercadoPago general item fields @@ -67,6 +70,20 @@ class PaymentProvider(models.Model): def _get_mercadopago_request(self): return MercadoPagoAPI(self) + def _get_mercadopago_publishable_key(self): + self.ensure_one() + if self.state == 'test': + return self.mercadopago_test_publishable_key + elif self.state == 'enabled': + return self.mercadopago_publishable_key + + def _get_mercadopago_access_token(self): + self.ensure_one() + if self.state == 'test': + return self.mercadopago_test_access_token + elif self.state == 'enabled': + return self.mercadopago_publishable_key + @api.onchange('code') def _onchange_code(self): if self.code == 'mercadopago': diff --git a/payment_mercadopago/views/payment_views.xml b/payment_mercadopago/views/payment_views.xml index 8f6e55a3..a4387e77 100644 --- a/payment_mercadopago/views/payment_views.xml +++ b/payment_mercadopago/views/payment_views.xml @@ -6,9 +6,11 @@ - - - + + + + +