Last active
September 6, 2016 20:47
-
-
Save elraro/020b220d21761051b05f1044d4fea690 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.velentis.crtm.nfc.ws; | |
import android.app.AlertDialog; | |
import android.app.AlertDialog.Builder; | |
import android.content.Context; | |
import android.content.DialogInterface; | |
import android.content.DialogInterface.OnClickListener; | |
import android.os.Looper; | |
import android.os.NetworkOnMainThreadException; | |
import android.util.Base64; | |
import android.util.Log; | |
import com.velentis.crtm.nfc.model.SS_prepagoConsultaSaldo; | |
import com.velentis.crtm.nfc.utils.LocaleUtils; | |
import java.io.BufferedInputStream; | |
import java.io.ByteArrayInputStream; | |
import java.io.File; | |
import java.io.FileOutputStream; | |
import java.io.IOException; | |
import java.io.UnsupportedEncodingException; | |
import java.net.URL; | |
import java.net.URLConnection; | |
import java.security.spec.AlgorithmParameterSpec; | |
import java.util.Date; | |
import javax.crypto.Cipher; | |
import javax.crypto.spec.IvParameterSpec; | |
import javax.crypto.spec.SecretKeySpec; | |
import javax.xml.parsers.SAXParser; | |
import javax.xml.parsers.SAXParserFactory; | |
import org.apache.http.HttpEntity; | |
import org.apache.http.HttpResponse; | |
import org.apache.http.StatusLine; | |
import org.apache.http.client.methods.HttpPost; | |
import org.apache.http.entity.StringEntity; | |
import org.apache.http.impl.client.DefaultHttpClient; | |
import org.apache.http.params.BasicHttpParams; | |
import org.apache.http.params.HttpConnectionParams; | |
import org.apache.http.params.HttpParams; | |
import org.apache.http.util.ByteArrayBuffer; | |
import org.apache.http.util.EntityUtils; | |
import org.xml.sax.InputSource; | |
import org.xml.sax.helpers.DefaultHandler; | |
public class WebServices | |
{ | |
public static String key = null; | |
private static Date lastKey; | |
public static String privateKey = "pruebapruebapruebapruebaprueba12"; | |
public static String server = "http://www.citram.es:8080/WSMultimodalInformation/MultimodalInformation.svc?wsdl"; | |
static final String serverV2_viejo = "http://sbit1.crtm.es:50080/spai-crtm/srv/prepago/venta/"; | |
static final String serverV2pre = "http://www.citram.es:50081/VENTAPREPAGOTITULO/VentaPrepagoTitulo.svc?wsdl"; | |
public static final String server_dev = "http://www.citram.es:8080/WSMultimodalInformation_DEV/MultimodalInformation.svc?wsdl"; | |
public static final String server_pre = "http://www.citram.es:8080/WSMultimodalInformation_TEST/MultimodalInformation.svc?wsdl"; | |
public static final String server_pro = "http://www.citram.es:8080/WSMultimodalInformation/MultimodalInformation.svc?wsdl"; | |
public static void DownloadFromUrl(String paramString1, String paramString2) | |
{ | |
for (;;) | |
{ | |
try | |
{ | |
Object localObject = new java/net/URL; | |
((URL)localObject).<init>(paramString1); | |
paramString1 = new java/io/File; | |
paramString1.<init>(paramString2); | |
long l = System.currentTimeMillis(); | |
Log.d("ImageManager", "download begining"); | |
StringBuilder localStringBuilder = new java/lang/StringBuilder; | |
localStringBuilder.<init>("download url:"); | |
Log.d("ImageManager", localObject); | |
localStringBuilder = new java/lang/StringBuilder; | |
localStringBuilder.<init>("downloaded file name:"); | |
Log.d("ImageManager", paramString2); | |
paramString2 = ((URL)localObject).openConnection().getInputStream(); | |
localObject = new java/io/BufferedInputStream; | |
((BufferedInputStream)localObject).<init>(paramString2); | |
paramString2 = new org/apache/http/util/ByteArrayBuffer; | |
paramString2.<init>(50); | |
i = ((BufferedInputStream)localObject).read(); | |
if (i == -1) | |
{ | |
localObject = new java/io/FileOutputStream; | |
((FileOutputStream)localObject).<init>(paramString1); | |
((FileOutputStream)localObject).write(paramString2.toByteArray()); | |
((FileOutputStream)localObject).close(); | |
paramString1 = new java/lang/StringBuilder; | |
paramString1.<init>("download ready in"); | |
Log.d("ImageManager", (System.currentTimeMillis() - l) / 1000L + " sec"); | |
return; | |
} | |
} | |
catch (IOException paramString1) | |
{ | |
int i; | |
Log.d("ImageManager", "Error: " + paramString1); | |
continue; | |
} | |
paramString2.append((byte)i); | |
} | |
} | |
public static byte[] EncryptStringToBytes(String paramString1, String paramString2, byte[] paramArrayOfByte) | |
{ | |
try | |
{ | |
Cipher localCipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); | |
Object localObject = paramString2.getBytes("US-ASCII"); | |
paramString2 = new javax/crypto/spec/SecretKeySpec; | |
paramString2.<init>((byte[])localObject, "AES"); | |
localObject = new javax/crypto/spec/IvParameterSpec; | |
((IvParameterSpec)localObject).<init>(paramArrayOfByte); | |
localCipher.init(1, paramString2, (AlgorithmParameterSpec)localObject); | |
paramString1 = Base64.encode(localCipher.doFinal(paramString1.getBytes("US-ASCII")), 0); | |
return paramString1; | |
} | |
catch (Exception paramString1) | |
{ | |
for (;;) | |
{ | |
paramString1 = null; | |
} | |
} | |
} | |
public static String getAuthentication() | |
{ | |
Object localObject2 = null; | |
if ((lastKey != null) && (new Date().getTime() - lastKey.getTime() > 54000L)) { | |
key = null; | |
} | |
if (key == null) | |
{ | |
localObject1 = getPublicKey(); | |
if (localObject1 != null) | |
{ | |
lastKey = new Date(); | |
key = ((PublicKeyResponse)localObject1).getKey(); | |
} | |
} | |
Object localObject1 = localObject2; | |
if (key != null) | |
{ | |
byte[] arrayOfByte = EncryptStringToBytes(key, privateKey, new byte[16]); | |
localObject1 = localObject2; | |
if (arrayOfByte != null) | |
{ | |
localObject1 = new String(arrayOfByte); | |
localObject1 = "<geis:authentication><geis:connectionKey>" + (String)localObject1 + "</geis:connectionKey>" + "</geis:authentication>"; | |
} | |
} | |
return (String)localObject1; | |
} | |
public static OfficesResponse getOffices(int paramInt) | |
{ | |
localObject3 = null; | |
Object localObject1 = ""; | |
if (paramInt == 0) { | |
localObject1 = "OFICINA"; | |
} | |
for (;;) | |
{ | |
try | |
{ | |
Object localObject4 = new java/lang/StringBuilder; | |
((StringBuilder)localObject4).<init>("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:geis=\"GEIS.MultimodalInfoWebService\"><soapenv:Header/><soapenv:Body><geis:OfficeRequest>"); | |
localObject1 = getAuthentication() + "<geis:type>" + (String)localObject1 + "</geis:type>" + "</geis:OfficeRequest>" + "</soapenv:Body>" + "</soapenv:Envelope>"; | |
localObject4 = sendRequest(server, (String)localObject1, "GEIS.MultimodalInfoWebService/MultimodalInformation/GetOffices"); | |
localObject1 = localObject3; | |
if (((HttpResponse)localObject4).getStatusLine().getStatusCode() == 200) | |
{ | |
localObject4 = ((HttpResponse)localObject4).getEntity(); | |
SAXParser localSAXParser = SAXParserFactory.newInstance().newSAXParser(); | |
localObject1 = new com/velentis/crtm/nfc/ws/OfficesHandler; | |
((OfficesHandler)localObject1).<init>(); | |
localSAXParser.parse(((HttpEntity)localObject4).getContent(), (DefaultHandler)localObject1); | |
localObject1 = ((OfficesHandler)localObject1).getResponse(); | |
} | |
} | |
catch (Exception localException) | |
{ | |
localException.printStackTrace(); | |
Object localObject2 = localObject3; | |
continue; | |
} | |
return (OfficesResponse)localObject1; | |
if (paramInt == 1) { | |
localObject1 = "RECARGA"; | |
} | |
} | |
} | |
public static PublicKeyResponse getPublicKey() | |
{ | |
localObject3 = null; | |
try | |
{ | |
Object localObject4 = sendRequest(server, "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:geis=\"GEIS.MultimodalInfoWebService\"><soapenv:Header/><soapenv:Body><geis:PublicKeyRequest/></soapenv:Body></soapenv:Envelope>", "GEIS.MultimodalInfoWebService/MultimodalInformation/GetPublicKey"); | |
localObject1 = localObject3; | |
if (((HttpResponse)localObject4).getStatusLine().getStatusCode() == 200) | |
{ | |
HttpEntity localHttpEntity = ((HttpResponse)localObject4).getEntity(); | |
localObject1 = SAXParserFactory.newInstance().newSAXParser(); | |
localObject4 = new com/velentis/crtm/nfc/ws/PublicKeyHandler; | |
((PublicKeyHandler)localObject4).<init>(); | |
((SAXParser)localObject1).parse(localHttpEntity.getContent(), (DefaultHandler)localObject4); | |
localObject1 = ((PublicKeyHandler)localObject4).getResponse(); | |
} | |
} | |
catch (Exception localException) | |
{ | |
for (;;) | |
{ | |
Object localObject1; | |
localException.printStackTrace(); | |
Object localObject2 = localObject3; | |
} | |
} | |
return (PublicKeyResponse)localObject1; | |
} | |
public static SS_prepagoConsultaSaldo getSaldoPrepago(String paramString, Context paramContext) | |
{ | |
try | |
{ | |
Object localObject = new java/lang/StringBuilder; | |
((StringBuilder)localObject).<init>("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\"> <soapenv:Header/> <soapenv:Body> <tem:ConsultaSaldoTarjeta1> <tem:sNumeroTP>"); | |
paramString = sendRequest("http://www.citram.es:50081/VENTAPREPAGOTITULO/VentaPrepagoTitulo.svc?wsdl", paramString + "</tem:sNumeroTP>" + " <tem:sLenguaje>" + LocaleUtils.getLocale(paramContext) + "</tem:sLenguaje>" + " <tem:sTipoApp>APP_SALDO_ANDROID</tem:sTipoApp>" + " </tem:ConsultaSaldoTarjeta1>" + " </soapenv:Body>" + "</soapenv:Envelope>", "http://tempuri.org/IVentaPrepagoTitulo/ConsultaSaldoTarjeta1"); | |
if (paramString.getStatusLine().getStatusCode() == 200) | |
{ | |
localObject = paramString.getEntity(); | |
paramContext = SAXParserFactory.newInstance().newSAXParser(); | |
paramString = new com/velentis/crtm/nfc/ws/ConsultaSaldoNewHandler; | |
paramString.<init>(); | |
localObject = EntityUtils.toString((HttpEntity)localObject).replace("<", "<").replace(">", ">"); | |
((String)localObject).length(); | |
localObject = ((String)localObject).substring(((String)localObject).indexOf("<a:sResulXMLField>") + "<a:sResulXMLField>".length(), ((String)localObject).indexOf("</a:sResulXMLField>")); | |
InputSource localInputSource = new org/xml/sax/InputSource; | |
ByteArrayInputStream localByteArrayInputStream = new java/io/ByteArrayInputStream; | |
localByteArrayInputStream.<init>(((String)localObject).getBytes("utf-8")); | |
localInputSource.<init>(localByteArrayInputStream); | |
paramContext.parse(localInputSource, paramString); | |
} | |
for (paramString = paramString.getResponse();; paramString = null) { | |
return paramString; | |
} | |
} | |
catch (Exception paramString) | |
{ | |
for (;;) | |
{ | |
paramString.printStackTrace(); | |
paramString = null; | |
} | |
} | |
} | |
public static HttpResponse sendRequest(String paramString1, String paramString2, String paramString3) | |
throws IOException, NetworkOnMainThreadException | |
{ | |
Object localObject = new BasicHttpParams(); | |
HttpConnectionParams.setConnectionTimeout((HttpParams)localObject, 100000); | |
HttpConnectionParams.setSoTimeout((HttpParams)localObject, 100000); | |
localObject = new DefaultHttpClient((HttpParams)localObject); | |
paramString1 = new HttpPost(paramString1); | |
try | |
{ | |
StringEntity localStringEntity = new org/apache/http/entity/StringEntity; | |
localStringEntity.<init>(paramString2, "UTF-8"); | |
paramString1.setEntity(localStringEntity); | |
paramString1.addHeader("Content-type", "text/xml; charset=utf-8"); | |
if ((paramString3 != null) && (!paramString3.equalsIgnoreCase(""))) { | |
paramString1.addHeader("SOAPAction", paramString3); | |
} | |
return ((DefaultHttpClient)localObject).execute(paramString1); | |
} | |
catch (UnsupportedEncodingException paramString2) | |
{ | |
for (;;) | |
{ | |
paramString2.printStackTrace(); | |
} | |
} | |
} | |
private static void showDialog(Context paramContext, String paramString) | |
{ | |
Looper.prepare(); | |
paramContext = new AlertDialog.Builder(paramContext); | |
paramContext.setMessage(paramString).setPositiveButton("cerrar", new DialogInterface.OnClickListener() | |
{ | |
public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) {} | |
}); | |
paramContext.create().show(); | |
Looper.loop(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment