Skip to content

Commit 98cce83

Browse files
author
Pedro Gonçalves
committed
Update mercadopago.py
- Add authorization header logic
1 parent dd88082 commit 98cce83

1 file changed

Lines changed: 19 additions & 45 deletions

File tree

mercadopago/mercadopago.py

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,7 @@ def get_payment(self, id):
100100
@return json
101101
"""
102102

103-
access_token = self.get_access_token()
104-
105-
uri_prefix = "/sandbox" if self.__sandbox else ""
106-
107-
payment_info = self.__rest_client.get("/v1/payments/"+id+"?access_token="+access_token)
103+
payment_info = self.__rest_client.get("/v1/payments/"+id)
108104
return payment_info
109105

110106
def get_payment_info(self, id):
@@ -117,8 +113,7 @@ def get_authorized_payment(self, id):
117113
@param id
118114
@return json
119115
"""
120-
access_token = self.get_access_token()
121-
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)
122117
return authorized_payment_info
123118

124119

@@ -130,9 +125,8 @@ def refund_payment(self, id):
130125
@return json
131126
"""
132127

133-
access_token = self.get_access_token()
134128
refund_status = {}
135-
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)
136130
return response
137131

138132

@@ -144,9 +138,8 @@ def cancel_payment(self, id):
144138
@return json
145139
"""
146140

147-
access_token = self.get_access_token()
148141
cancel_status = {"status":"cancelled"}
149-
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)
150143
return response
151144

152145

@@ -158,9 +151,8 @@ def cancel_preapproval_payment(self, id):
158151
@return json
159152
"""
160153

161-
access_token = self.get_access_token()
162154
cancel_status = {"status":"cancelled"}
163-
response = self.__rest_client.put("/preapproval/"+id+"?access_token="+access_token, cancel_status)
155+
response = self.__rest_client.put("/preapproval/"+id, cancel_status)
164156
return response
165157

166158

@@ -174,13 +166,9 @@ def search_payment(self, filters, offset=0, limit=0):
174166
@return json
175167
"""
176168

177-
access_token = self.get_access_token()
178-
filters["access_token"] = access_token
179169
filters["offset"] = offset
180170
filters["limit"] = limit
181171

182-
uri_prefix = "/sandbox" if self.__sandbox else ""
183-
184172
payment_result = self.__rest_client.get("/v1/payments/search", filters)
185173
return payment_result
186174

@@ -192,8 +180,7 @@ def create_preference(self, preference):
192180
@return json
193181
"""
194182

195-
access_token = self.get_access_token()
196-
preference_result = self.__rest_client.post("/checkout/preferences?access_token="+access_token, preference)
183+
preference_result = self.__rest_client.post("/checkout/preferences", preference)
197184
return preference_result
198185

199186

@@ -206,8 +193,7 @@ def update_preference(self, id, preference):
206193
@return json
207194
"""
208195

209-
access_token = self.get_access_token()
210-
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)
211197
return preference_result
212198

213199

@@ -219,8 +205,7 @@ def get_preference(self, id):
219205
@param preference
220206
@return json
221207
"""
222-
access_token = self.get_access_token()
223-
preference_result = self.__rest_client.get("/checkout/preferences/"+id+"?access_token="+access_token)
208+
preference_result = self.__rest_client.get("/checkout/preferences/"+id)
224209
return preference_result
225210

226211

@@ -231,8 +216,7 @@ def create_preapproval_payment(self, preapproval_payment):
231216
@param preapproval_payment
232217
@return json
233218
"""
234-
access_token = self.get_access_token()
235-
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)
236220
return preapproval_payment_result
237221

238222
def get_preapproval_payment(self, id):
@@ -243,8 +227,7 @@ def get_preapproval_payment(self, id):
243227
@return json
244228
245229
"""
246-
access_token = self.get_access_token()
247-
preapproval_payment_result = self.__rest_client.get("/preapproval/"+id+"?access_token="+access_token)
230+
preapproval_payment_result = self.__rest_client.get("/preapproval/"+id)
248231
return preapproval_payment_result
249232

250233
def update_preapproval_payment(self, id, preapproval_payment):
@@ -255,8 +238,7 @@ def update_preapproval_payment(self, id, preapproval_payment):
255238
@return json
256239
257240
"""
258-
access_token = self.get_access_token()
259-
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)
260242
return preapproval_payment_result
261243

262244
def get(self, uri, params=None, authenticate=True):
@@ -270,10 +252,6 @@ def get(self, uri, params=None, authenticate=True):
270252
if params is None:
271253
params = {}
272254

273-
if authenticate:
274-
access_token = self.get_access_token()
275-
params["access_token"] = access_token
276-
277255
result = self.__rest_client.get(uri, params)
278256
return result
279257

@@ -288,8 +266,6 @@ def post(self, uri, data, params=None):
288266
if params is None:
289267
params = {}
290268

291-
access_token = self.get_access_token()
292-
params["access_token"] = access_token
293269
result = self.__rest_client.post(uri, data, params)
294270
return result
295271

@@ -304,8 +280,6 @@ def put(self, uri, data, params=None):
304280
if params is None:
305281
params = {}
306282

307-
access_token = self.get_access_token()
308-
params["access_token"] = access_token
309283
result = self.__rest_client.put(uri, data, params)
310284
return result
311285

@@ -319,8 +293,6 @@ def delete(self, uri, params=None):
319293
if params is None:
320294
params = {}
321295

322-
access_token = self.get_access_token()
323-
params["access_token"] = access_token
324296
result = self.__rest_client.delete(uri, params)
325297
return result
326298

@@ -329,7 +301,7 @@ class __RestClient(object):
329301
__API_BASE_URL = "https://api.mercadopago.com"
330302
MIME_JSON = "application/json"
331303
MIME_FORM = "application/x-www-form-urlencoded"
332-
304+
AUTH_HEADER = "Authorization"
333305
def __init__(self, outer):
334306
self.__outer = outer
335307
self.USER_AGENT = "MercadoPago Python SDK v"+self.__outer.version
@@ -349,9 +321,12 @@ def get_session(self):
349321
self.get_mercadopago_transport_adapter())
350322
return session
351323

324+
def getAuthorizationHeader(self):
325+
return 'Bearer ' + self.__outer.get_access_token()
326+
352327
def get(self, uri, params=None):
353328
s = self.get_session()
354-
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()})
355330

356331
response = {
357332
"status": api_result.status_code,
@@ -365,7 +340,7 @@ def post(self, uri, data=None, params=None, content_type=MIME_JSON):
365340
data = JSONEncoder().encode(data)
366341

367342
s = self.get_session()
368-
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})
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()})
369344

370345
response = {
371346
"status": api_result.status_code,
@@ -379,7 +354,7 @@ def put(self, uri, data=None, params=None, content_type=MIME_JSON):
379354
data = JSONEncoder().encode(data)
380355

381356
s = self.get_session()
382-
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()})
383358

384359
response = {
385360
"status": api_result.status_code,
@@ -390,12 +365,11 @@ def put(self, uri, data=None, params=None, content_type=MIME_JSON):
390365

391366
def delete(self, uri, params=None):
392367
s = self.get_session()
393-
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()})
394369

395370
response = {
396371
"status": api_result.status_code,
397372
"response": api_result.json()
398373
}
399374

400375
return response
401-

0 commit comments

Comments
 (0)