Skip to content

Commit 570a12a

Browse files
Release Version 1.2.0
1 parent e5133ac commit 570a12a

1 file changed

Lines changed: 34 additions & 46 deletions

File tree

mercadopago/mercadopago.py

Lines changed: 34 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""
22
MercadoPago Integration Library
33
Access MercadoPago for payments integration
4+
5+
@author hcasatti
46
"""
57

68
from json.encoder import JSONEncoder
@@ -31,10 +33,13 @@ class MPInvalidCredentials(MPException):
3133

3234

3335
class MP(object):
34-
version = "1.1.1"
36+
version = "1.2.0"
3537
__access_data = None
3638
__ll_access_token = None
3739
__sandbox = False
40+
platform_id = None
41+
integrator_id = None
42+
corporation_id = None
3843

3944
def __init__(self, *args):
4045
"""
@@ -78,6 +83,15 @@ def get_access_token(self):
7883
else:
7984
raise MPInvalidCredentials(str(access_data))
8085

86+
def set_platform_id(self, platform_id):
87+
self.platform_id = platform_id
88+
89+
def set_integrator_id(self, integrator_id):
90+
self.integrator_id = integrator_id
91+
92+
def set_corporation_id(self, corporation_id):
93+
self.corporation_id = corporation_id
94+
8195
def get_payment(self, id):
8296
"""
8397
Get information for specific payment
@@ -86,11 +100,7 @@ def get_payment(self, id):
86100
@return json
87101
"""
88102

89-
access_token = self.get_access_token()
90-
91-
uri_prefix = "/sandbox" if self.__sandbox else ""
92-
93-
payment_info = self.__rest_client.get("/v1/payments/"+id+"?access_token="+access_token)
103+
payment_info = self.__rest_client.get("/v1/payments/"+id)
94104
return payment_info
95105

96106
def get_payment_info(self, id):
@@ -103,8 +113,7 @@ def get_authorized_payment(self, id):
103113
@param id
104114
@return json
105115
"""
106-
access_token = self.get_access_token()
107-
authorized_payment_info = self.__rest_client.get("/authorized_payments/"+id+"?access_token="+access_token)
116+
authorized_payment_info = self.__rest_client.get("/authorized_payments/"+id)
108117
return authorized_payment_info
109118

110119

@@ -116,9 +125,8 @@ def refund_payment(self, id):
116125
@return json
117126
"""
118127

119-
access_token = self.get_access_token()
120128
refund_status = {}
121-
response = self.__rest_client.post("/v1/payments/"+id+"/refunds?access_token="+access_token, refund_status)
129+
response = self.__rest_client.post("/v1/payments/"+id+"/refunds", refund_status)
122130
return response
123131

124132

@@ -130,9 +138,8 @@ def cancel_payment(self, id):
130138
@return json
131139
"""
132140

133-
access_token = self.get_access_token()
134141
cancel_status = {"status":"cancelled"}
135-
response = self.__rest_client.put("/v1/payments/"+id+"?access_token="+access_token, cancel_status)
142+
response = self.__rest_client.put("/v1/payments/"+id, cancel_status)
136143
return response
137144

138145

@@ -144,9 +151,8 @@ def cancel_preapproval_payment(self, id):
144151
@return json
145152
"""
146153

147-
access_token = self.get_access_token()
148154
cancel_status = {"status":"cancelled"}
149-
response = self.__rest_client.put("/preapproval/"+id+"?access_token="+access_token, cancel_status)
155+
response = self.__rest_client.put("/preapproval/"+id, cancel_status)
150156
return response
151157

152158

@@ -160,13 +166,9 @@ def search_payment(self, filters, offset=0, limit=0):
160166
@return json
161167
"""
162168

163-
access_token = self.get_access_token()
164-
filters["access_token"] = access_token
165169
filters["offset"] = offset
166170
filters["limit"] = limit
167171

168-
uri_prefix = "/sandbox" if self.__sandbox else ""
169-
170172
payment_result = self.__rest_client.get("/v1/payments/search", filters)
171173
return payment_result
172174

@@ -178,8 +180,7 @@ def create_preference(self, preference):
178180
@return json
179181
"""
180182

181-
access_token = self.get_access_token()
182-
preference_result = self.__rest_client.post("/checkout/preferences?access_token="+access_token, preference)
183+
preference_result = self.__rest_client.post("/checkout/preferences", preference)
183184
return preference_result
184185

185186

@@ -192,8 +193,7 @@ def update_preference(self, id, preference):
192193
@return json
193194
"""
194195

195-
access_token = self.get_access_token()
196-
preference_result = self.__rest_client.put("/checkout/preferences/"+id+"?access_token="+access_token, preference)
196+
preference_result = self.__rest_client.put("/checkout/preferences/"+id, preference)
197197
return preference_result
198198

199199

@@ -205,8 +205,7 @@ def get_preference(self, id):
205205
@param preference
206206
@return json
207207
"""
208-
access_token = self.get_access_token()
209-
preference_result = self.__rest_client.get("/checkout/preferences/"+id+"?access_token="+access_token)
208+
preference_result = self.__rest_client.get("/checkout/preferences/"+id)
210209
return preference_result
211210

212211

@@ -217,8 +216,7 @@ def create_preapproval_payment(self, preapproval_payment):
217216
@param preapproval_payment
218217
@return json
219218
"""
220-
access_token = self.get_access_token()
221-
preapproval_payment_result = self.__rest_client.post("/preapproval?access_token="+access_token, preapproval_payment)
219+
preapproval_payment_result = self.__rest_client.post("/preapproval", preapproval_payment)
222220
return preapproval_payment_result
223221

224222
def get_preapproval_payment(self, id):
@@ -229,8 +227,7 @@ def get_preapproval_payment(self, id):
229227
@return json
230228
231229
"""
232-
access_token = self.get_access_token()
233-
preapproval_payment_result = self.__rest_client.get("/preapproval/"+id+"?access_token="+access_token)
230+
preapproval_payment_result = self.__rest_client.get("/preapproval/"+id)
234231
return preapproval_payment_result
235232

236233
def update_preapproval_payment(self, id, preapproval_payment):
@@ -241,8 +238,7 @@ def update_preapproval_payment(self, id, preapproval_payment):
241238
@return json
242239
243240
"""
244-
access_token = self.get_access_token()
245-
preapproval_payment_result = self.__rest_client.put("/preapproval/"+id+"?access_token="+access_token, preapproval_payment)
241+
preapproval_payment_result = self.__rest_client.put("/preapproval/"+id, preapproval_payment)
246242
return preapproval_payment_result
247243

248244
def get(self, uri, params=None, authenticate=True):
@@ -256,10 +252,6 @@ def get(self, uri, params=None, authenticate=True):
256252
if params is None:
257253
params = {}
258254

259-
if authenticate:
260-
access_token = self.get_access_token()
261-
params["access_token"] = access_token
262-
263255
result = self.__rest_client.get(uri, params)
264256
return result
265257

@@ -274,8 +266,6 @@ def post(self, uri, data, params=None):
274266
if params is None:
275267
params = {}
276268

277-
access_token = self.get_access_token()
278-
params["access_token"] = access_token
279269
result = self.__rest_client.post(uri, data, params)
280270
return result
281271

@@ -290,8 +280,6 @@ def put(self, uri, data, params=None):
290280
if params is None:
291281
params = {}
292282

293-
access_token = self.get_access_token()
294-
params["access_token"] = access_token
295283
result = self.__rest_client.put(uri, data, params)
296284
return result
297285

@@ -305,8 +293,6 @@ def delete(self, uri, params=None):
305293
if params is None:
306294
params = {}
307295

308-
access_token = self.get_access_token()
309-
params["access_token"] = access_token
310296
result = self.__rest_client.delete(uri, params)
311297
return result
312298

@@ -315,7 +301,7 @@ class __RestClient(object):
315301
__API_BASE_URL = "https://api.mercadopago.com"
316302
MIME_JSON = "application/json"
317303
MIME_FORM = "application/x-www-form-urlencoded"
318-
304+
AUTH_HEADER = "Authorization"
319305
def __init__(self, outer):
320306
self.__outer = outer
321307
self.USER_AGENT = "MercadoPago Python SDK v"+self.__outer.version
@@ -335,9 +321,12 @@ def get_session(self):
335321
self.get_mercadopago_transport_adapter())
336322
return session
337323

324+
def getAuthorizationHeader(self):
325+
return 'Bearer ' + self.__outer.get_access_token()
326+
338327
def get(self, uri, params=None):
339328
s = self.get_session()
340-
api_result = s.get(self.__API_BASE_URL+uri, params=params, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Accept':self.MIME_JSON})
329+
api_result = s.get(self.__API_BASE_URL+uri, params=params, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Accept':self.MIME_JSON, self.AUTH_HEADER: self.getAuthorizationHeader()})
341330

342331
response = {
343332
"status": api_result.status_code,
@@ -351,7 +340,7 @@ def post(self, uri, data=None, params=None, content_type=MIME_JSON):
351340
data = JSONEncoder().encode(data)
352341

353342
s = self.get_session()
354-
api_result = s.post(self.__API_BASE_URL+uri, params=params, data=data, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Content-type':content_type, 'Accept':self.MIME_JSON})
343+
api_result = s.post(self.__API_BASE_URL+uri, params=params, data=data, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Content-type':content_type, 'Accept':self.MIME_JSON, 'x-platform-id':self.__outer.platform_id, 'x-integrator-id':self.__outer.integrator_id, 'x-corporation-id':self.__outer.corporation_id, self.AUTH_HEADER: self.getAuthorizationHeader()})
355344

356345
response = {
357346
"status": api_result.status_code,
@@ -365,7 +354,7 @@ def put(self, uri, data=None, params=None, content_type=MIME_JSON):
365354
data = JSONEncoder().encode(data)
366355

367356
s = self.get_session()
368-
api_result = s.put(self.__API_BASE_URL+uri, params=params, data=data, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Content-type':content_type, 'Accept':self.MIME_JSON})
357+
api_result = s.put(self.__API_BASE_URL+uri, params=params, data=data, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Content-type':content_type, 'Accept':self.MIME_JSON, self.AUTH_HEADER: self.getAuthorizationHeader()})
369358

370359
response = {
371360
"status": api_result.status_code,
@@ -376,12 +365,11 @@ def put(self, uri, data=None, params=None, content_type=MIME_JSON):
376365

377366
def delete(self, uri, params=None):
378367
s = self.get_session()
379-
api_result = s.delete(self.__API_BASE_URL+uri, params=params, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Accept':self.MIME_JSON})
368+
api_result = s.delete(self.__API_BASE_URL+uri, params=params, headers={'x-product-id': self.PRODUCT_ID, 'x-tracking-id': self.TRACKING_ID, 'User-Agent':self.USER_AGENT, 'Accept':self.MIME_JSON, self.AUTH_HEADER: self.getAuthorizationHeader()})
380369

381370
response = {
382371
"status": api_result.status_code,
383372
"response": api_result.json()
384373
}
385374

386375
return response
387-

0 commit comments

Comments
 (0)