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 @@
-
-
-
+
+
+
+
+