package br.com.caelum.stella.gateway.redecard;
import br.com.caelum.stella.gateway.core.ProblematicTransactionException;
public class RedecardVerificadorRetornoConfirmacaoTransacao {
private String retorno;
public RedecardVerificadorRetornoConfirmacaoTransacao(String retorno) {
this.retorno = retorno;
}
public RedecardConfirmacaoTransacaoReturn verificaRetorno(){
if(!"".equals(retorno)){
String[] params = retorno.split("&");
int codigoRetorno = Integer.valueOf(params[0].split("=")[1]);
String mensagemRetorno = params[1].split("=")[1];
RedecardConfirmacaoTransacaoReturn confirmacaoTransacaoReturn = new RedecardConfirmacaoTransacaoReturn(codigoRetorno,mensagemRetorno);
if(codigoRetorno!=0){
throw new ProblematicTransactionException("A transação não pode ser confirmada ("+confirmacaoTransacaoReturn.getMensagemRetorno()+")",confirmacaoTransacaoReturn);
}
return confirmacaoTransacaoReturn;
}
throw new RedecardConfirmacaoSemDadosException("Os dados de retorno não foram enviados, solicite novamente",new RedecardConfirmacaoTransacaoReturn(-1,"Dados não foram retornados"));
}
}