@@ -33,10 +33,13 @@ class MPInvalidCredentials(MPException):
3333
3434
3535class 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