Skip to content

Commit 75a6dae

Browse files
authored
Merge pull request mercadopago#40 from mercadopago/feature/headers
Feature/headers
2 parents 10509e4 + 98cce83 commit 75a6dae

1 file changed

Lines changed: 32 additions & 46 deletions

File tree

mercadopago/mercadopago.py

Lines changed: 32 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,13 @@ class MPInvalidCredentials(MPException):
3333

3434

3535
class MP(object):
36-
version = "1.1.1"
36+
version = "1.2.0"
3737
__access_data = None
3838
__ll_access_token = None
3939
__sandbox = False
40+
platform_id = None
41+
integrator_id = None
42+
corporation_id = None
4043

4144
def __init__(self, *args):
4245
"""
@@ -80,6 +83,15 @@ def get_access_token(self):
8083
else:
8184
raise MPInvalidCredentials(str(access_data))
8285

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+
8395
def get_payment(self, id):
8496
"""
8597
Get information for specific payment
@@ -88,11 +100,7 @@ def get_payment(self, id):
88100
@return json
89101
"""
90102

91-
access_token = self.get_access_token()
92-
93-
uri_prefix = "/sandbox" if self.__sandbox else ""
94-
95-
payment_info = self.__rest_client.get("/v1/payments/"+id+"?access_token="+access_token)
103+
payment_info = self.__rest_client.get("/v1/payments/"+id)
96104
return payment_info
97105

98106
def get_payment_info(self, id):
@@ -105,8 +113,7 @@ def get_authorized_payment(self, id):
105113
@param id
106114
@return json
107115
"""
108-
access_token = self.get_access_token()
109-
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)
110117
return authorized_payment_info
111118

112119

@@ -118,9 +125,8 @@ def refund_payment(self, id):
118125
@return json
119126
"""
120127

121-
access_token = self.get_access_token()
122128
refund_status = {}
123-
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)
124130
return response
125131

126132

@@ -132,9 +138,8 @@ def cancel_payment(self, id):
132138
@return json
133139
"""
134140

135-
access_token = self.get_access_token()
136141
cancel_status = {"status":"cancelled"}
137-
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)
138143
return response
139144

140145

@@ -146,9 +151,8 @@ def cancel_preapproval_payment(self, id):
146151
@return json
147152
"""
148153

149-
access_token = self.get_access_token()
150154
cancel_status = {"status":"cancelled"}
151-
response = self.__rest_client.put("/preapproval/"+id+"?access_token="+access_token, cancel_status)
155+
response = self.__rest_client.put("/preapproval/"+id, cancel_status)
152156
return response
153157

154158

@@ -162,13 +166,9 @@ def search_payment(self, filters, offset=0, limit=0):
162166
@return json
163167
"""
164168

165-
access_token = self.get_access_token()
166-
filters["access_token"] = access_token
167169
filters["offset"] = offset
168170
filters["limit"] = limit
169171

170-
uri_prefix = "/sandbox" if self.__sandbox else ""
171-
172172
payment_result = self.__rest_client.get("/v1/payments/search", filters)
173173
return payment_result
174174

@@ -180,8 +180,7 @@ def create_preference(self, preference):
180180
@return json
181181
"""
182182

183-
access_token = self.get_access_token()
184-
preference_result = self.__rest_client.post("/checkout/preferences?access_token="+access_token, preference)
183+
preference_result = self.__rest_client.post("/checkout/preferences", preference)
185184
return preference_result
186185

187186

@@ -194,8 +193,7 @@ def update_preference(self, id, preference):
194193
@return json
195194
"""
196195

197-
access_token = self.get_access_token()
198-
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)
199197
return preference_result
200198

201199

@@ -207,8 +205,7 @@ def get_preference(self, id):
207205
@param preference
208206
@return json
209207
"""
210-
access_token = self.get_access_token()
211-
preference_result = self.__rest_client.get("/checkout/preferences/"+id+"?access_token="+access_token)
208+
preference_result = self.__rest_client.get("/checkout/preferences/"+id)
212209
return preference_result
213210

214211

@@ -219,8 +216,7 @@ def create_preapproval_payment(self, preapproval_payment):
219216
@param preapproval_payment
220217
@return json
221218
"""
222-
access_token = self.get_access_token()
223-
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)
224220
return preapproval_payment_result
225221

226222
def get_preapproval_payment(self, id):
@@ -231,8 +227,7 @@ def get_preapproval_payment(self, id):
231227
@return json
232228
233229
"""
234-
access_token = self.get_access_token()
235-
preapproval_payment_result = self.__rest_client.get("/preapproval/"+id+"?access_token="+access_token)
230+
preapproval_payment_result = self.__rest_client.get("/preapproval/"+id)
236231
return preapproval_payment_result
237232

238233
def update_preapproval_payment(self, id, preapproval_payment):
@@ -243,8 +238,7 @@ def update_preapproval_payment(self, id, preapproval_payment):
243238
@return json
244239
245240
"""
246-
access_token = self.get_access_token()
247-
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)
248242
return preapproval_payment_result
249243

250244
def get(self, uri, params=None, authenticate=True):
@@ -258,10 +252,6 @@ def get(self, uri, params=None, authenticate=True):
258252
if params is None:
259253
params = {}
260254

261-
if authenticate:
262-
access_token = self.get_access_token()
263-
params["access_token"] = access_token
264-
265255
result = self.__rest_client.get(uri, params)
266256
return result
267257

@@ -276,8 +266,6 @@ def post(self, uri, data, params=None):
276266
if params is None:
277267
params = {}
278268

279-
access_token = self.get_access_token()
280-
params["access_token"] = access_token
281269
result = self.__rest_client.post(uri, data, params)
282270
return result
283271

@@ -292,8 +280,6 @@ def put(self, uri, data, params=None):
292280
if params is None:
293281
params = {}
294282

295-
access_token = self.get_access_token()
296-
params["access_token"] = access_token
297283
result = self.__rest_client.put(uri, data, params)
298284
return result
299285

@@ -307,8 +293,6 @@ def delete(self, uri, params=None):
307293
if params is None:
308294
params = {}
309295

310-
access_token = self.get_access_token()
311-
params["access_token"] = access_token
312296
result = self.__rest_client.delete(uri, params)
313297
return result
314298

@@ -317,7 +301,7 @@ class __RestClient(object):
317301
__API_BASE_URL = "https://api.mercadopago.com"
318302
MIME_JSON = "application/json"
319303
MIME_FORM = "application/x-www-form-urlencoded"
320-
304+
AUTH_HEADER = "Authorization"
321305
def __init__(self, outer):
322306
self.__outer = outer
323307
self.USER_AGENT = "MercadoPago Python SDK v"+self.__outer.version
@@ -337,9 +321,12 @@ def get_session(self):
337321
self.get_mercadopago_transport_adapter())
338322
return session
339323

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

344331
response = {
345332
"status": api_result.status_code,
@@ -353,7 +340,7 @@ def post(self, uri, data=None, params=None, content_type=MIME_JSON):
353340
data = JSONEncoder().encode(data)
354341

355342
s = self.get_session()
356-
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()})
357344

358345
response = {
359346
"status": api_result.status_code,
@@ -367,7 +354,7 @@ def put(self, uri, data=None, params=None, content_type=MIME_JSON):
367354
data = JSONEncoder().encode(data)
368355

369356
s = self.get_session()
370-
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()})
371358

372359
response = {
373360
"status": api_result.status_code,
@@ -378,12 +365,11 @@ def put(self, uri, data=None, params=None, content_type=MIME_JSON):
378365

379366
def delete(self, uri, params=None):
380367
s = self.get_session()
381-
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()})
382369

383370
response = {
384371
"status": api_result.status_code,
385372
"response": api_result.json()
386373
}
387374

388375
return response
389-

0 commit comments

Comments
 (0)