OPTIONS SHORT CIRCUIT IMPORT util IMPORT com FUNCTION apiclient(pemail) DEFINE data_apilayer RECORD email,did_you_mean,USER,domain,syntax_valid STRING, is_disposable,is_role_account,is_catch_all,is_deliverable,can_connect_smtp, is_inbox_full,is_disabled,mx_records,FREE,score BOOLEAN END RECORD DEFINE data_ipq RECORD MESSAGE STRING, success, valid, disposable BOOLEAN, smtp_score , overall_score DEC(10,2), first_name string, generic, common, dns_valid, honeypot BOOLEAN, deliverability STRING, frequent_complainer BOOLEAN, spam_trap_score STRING, catch_all, timed_out, suspect, recent_abuse BOOLEAN, fraud_score DEC(10,2), suggested_domain string, leaked BOOLEAN END RECORD DEFINE estado,purl,cmd,res, msg,s,pemail,tiposervice STRING, ret INT # ELECCION DE SERVICIOS, POR EL MOMENTO ES IPQUALITY LET tiposervice = 'ipq1' IF tiposervice = 'ipq' THEN LET purl = 'https://ipqualityscore.com/api/json/email/cHZNnfXkbJDtx43YcrQqHSjXzBrndwT3/',pemail CLIPPED CALL ipquality_send_command(purl) RETURNING ret,res DISPLAY "estoy a qui" IF ret ==0 THEN LET s = util.JSON.stringify(res) CALL util.JSON.parse(res,data_ipq) IF data_ipq.valid THEN LET estado = 'VALIDO' LET ret = 200 ELSE LET ret = 400 LET estado = 'NO SE PUEDE ENTREGAR MENSAJE A ESTA DIRECCION EMAIL' END IF ELSE CALL apilayer_send_command(purl, cmd) RETURNING ret, res # DISPLAY "res ",res," ",ret IF ret ==0 THEN LET s = util.JSON.stringify(res) CALL util.JSON.parse(res,data_apilayer) IF data_apilayer.can_connect_smtp THEN LET estado = 'VALIDO' LET ret = 200 ELSE LET ret = 400 LET estado = 'NO SE PUEDE ENTREGAR MENSAJE A ESTA DIRECCION EMAIL' END IF # DISPLAY "sintax ",data.syntax_valid," deliv ",data.is_deliverable ELSE IF ret = 429 THEN LET ret = 200 LET estado ='VALIDO POR EXESO DE REQUEST' ELSE LET ret = 400 LET estado = 'NO FUE POSIBLE LA CONEXION, ' END IF END IF END IF END IF DISPLAY "en return ",estado," ",ret RETURN estado,ret END FUNCTION # ## Communications library using com (http or https) # FUNCTION apilayer_send_command(url, cmd) DEFINE url, cmd STRING DEFINE result, tmp STRING DEFINE http_req com.HTTPRequest DEFINE http_resp com.HTTPResponse TRY LET http_req = com.HTTPRequest.Create(url) CALL http_req.setHeader("apikey","gPWg6pDyOt3k2RL2ElbghaMqs6dNMAwm") CALL http_req.doRequest() LET http_resp=http_req.getResponse() IF http_resp.getStatusCode() != 200 THEN RETURN http_resp.getStatusCode(), http_resp.getStatusDescription() END IF LET tmp = http_resp.getStatusDescription() IF (tmp == "OK" || tmp == "no error" ) THEN RETURN -1, SFMT("HTTP request status description: %1 ",tmp) END IF LET result = http_resp.getTextResponse() CATCH RETURN -2, SFMT("HTTP request error: STATUS=%1 (%2)",STATUS,SQLCA.sqlerrd[2]) END TRY RETURN 0, result END FUNCTION FUNCTION ipquality_send_command(url) DEFINE url, cmd STRING DEFINE result, tmp STRING DEFINE http_req com.HTTPRequest DEFINE http_resp com.HTTPResponse TRY LET http_req = com.HTTPRequest.Create(url) CALL http_req.setHeader("apikey","cHZNnfXkbJDtx43YcrQqHSjXzBrndwT3") CALL http_req.doRequest() LET http_resp=http_req.getResponse() IF http_resp.getStatusCode() != 200 THEN RETURN http_resp.getStatusCode(), http_resp.getStatusDescription() END IF LET tmp = http_resp.getStatusDescription() IF (tmp == "OK" || tmp == "no error" ) THEN RETURN -1, SFMT("HTTP request status description: %1 ",tmp) END IF LET result = http_resp.getTextResponse() CATCH RETURN -2, SFMT("HTTP request error: STATUS=%1 (%2)",STATUS,SQLCA.sqlerrd[2]) END TRY RETURN 0, result END FUNCTION FUNCTION show_sync_err(msg) DEFINE msg STRING CALL fgl_winmessage(%"ERROR", msg, "exclamation") END FUNCTION