@@ -234,7 +234,7 @@ def validate(self, dictionary):
234234 'ip' : ipaddr ,
235235 'format' : 'json' ,
236236 'source' : 'sdk-python' ,
237- 'source_version' : '2 .0.1 ' ,
237+ 'source_version' : '3 .0.0 ' ,
238238 'flp_check_sum' : flp_check_sum ,
239239 # order information
240240 'user_order_id' : user_order_id ,
@@ -269,13 +269,17 @@ def validate(self, dictionary):
269269 'ship_zip_code' : ship_zip_code ,
270270 'ship_country' : ship_country ,
271271 }
272- url = 'https://api.fraudlabspro.com/v1 /order/screen'
272+ url = 'https://api.fraudlabspro.com/v2 /order/screen'
273273 data = urllib .parse .urlencode (validate_variable_list )
274274 data = data .encode ('utf-8' )
275- request = urllib .request .Request (url , data )
276- with urllib .request .urlopen (request ) as response :
277- string = response .read ().decode ('utf-8' )
278- json_obj = json .loads (string )
275+ try :
276+ request = urllib .request .Request (url , data )
277+ with urllib .request .urlopen (request ) as response :
278+ string = response .read ().decode ('utf-8' )
279+ json_obj = json .loads (string )
280+ except urllib .error .HTTPError as httpError :
281+ error = httpError .read ().decode ()
282+ json_obj = json .loads (error )
279283 result = json .dumps (json_obj , indent = 4 )
280284 if result is None :
281285 return False
@@ -305,18 +309,23 @@ def feedback(self, feedback_variables):
305309 notes = ''
306310 feedback_variables_list = {
307311 'key' : self .apikey ,
312+ 'source_version' : '3.0.0' ,
308313 'format' : 'json' ,
309314 'id' : transaction_id ,
310315 'action' : action ,
311316 'notes' : notes ,
312317 }
313- url = 'https://api.fraudlabspro.com/v1 /order/feedback'
318+ url = 'https://api.fraudlabspro.com/v2 /order/feedback'
314319 data = urllib .parse .urlencode (feedback_variables_list )
315320 data = data .encode ('utf-8' )
316- request = urllib .request .Request (url , data )
317- with urllib .request .urlopen (request ) as response :
318- string = response .read ().decode ('utf-8' )
319- json_obj = json .loads (string )
321+ try :
322+ request = urllib .request .Request (url , data )
323+ with urllib .request .urlopen (request ) as response :
324+ string = response .read ().decode ('utf-8' )
325+ json_obj = json .loads (string )
326+ except urllib .error .HTTPError as httpError :
327+ error = httpError .read ().decode ()
328+ json_obj = json .loads (error )
320329 result = json .dumps (json_obj , indent = 4 )
321330 if result is None :
322331 return False
@@ -336,22 +345,26 @@ def get_transaction(self, get_transaction_variables):
336345 fraud_labs_pro_id = get_transaction_variables ['id' ]
337346 else :
338347 return "Your ID is empty!"
339- if 'id_type' in get_transaction_variables :
340- id_type = get_transaction_variables ['id_type' ]
341- else :
342- return "Your ID type is empty!"
348+ # if 'id_type' in get_transaction_variables: # No longer supported in v2 API
349+ # id_type = get_transaction_variables['id_type']
350+ # else:
351+ # return "Your ID type is empty!"
343352 get_transaction_variable_list = {
344353 'key' : self .apikey ,
345354 'format' : 'json' ,
346355 'id' : fraud_labs_pro_id ,
347356 'id_type' : id_type ,
348357 }
349- url = 'https://api.fraudlabspro.com/v1 /order/result'
358+ url = 'https://api.fraudlabspro.com/v2 /order/result'
350359 url_values = urllib .parse .urlencode (get_transaction_variable_list )
351360 full_url = url + '?' + url_values
352- data = urllib .request .urlopen (full_url )
353- string = data .read ().decode ('utf-8' )
354- json_obj = json .loads (string )
361+ try :
362+ data = urllib .request .urlopen (full_url )
363+ string = data .read ().decode ('utf-8' )
364+ json_obj = json .loads (string )
365+ except urllib .error .HTTPError as httpError :
366+ error = httpError .read ().decode ()
367+ json_obj = json .loads (error )
355368 result = json .dumps (json_obj , indent = 4 )
356369 if result is None :
357370 return False
0 commit comments