package br.com.caelum.stella.gateway.redecard;
import br.com.caelum.stella.gateway.core.IntegrationHandler;
/**
* Classe responsável por criar o objeto, cujo os atributos devem ser enviados
* via formulario para o master.
*
* @author Alberto Pc
*
*/
public class RedecardSolicitacaoAutorizacaoPagamento implements
IntegrationHandler<RedecardDadosAutorizacaoPagamento> {
private RedecardCheckout checkout;
private String ipComprador;
private RedecardDadosConfiguracao dadosConfiguracao;
public RedecardSolicitacaoAutorizacaoPagamento(RedecardCheckout checkout,
String ipComprador, RedecardDadosConfiguracao dadosConfiguracao) {
super();
this.checkout = checkout;
this.ipComprador = ipComprador;
this.dadosConfiguracao = dadosConfiguracao;
}
public RedecardSolicitacaoAutorizacaoPagamento(RedecardCheckout checkout,
String ipComprador) {
this(checkout, ipComprador, new RedecardDadosConfiguracao());
}
/**
* Retorna um objeto contendo tudo que precisa ser enviado para o ambiente
* da redecard. O post para a url tem que ser feito direto via browser.
*
* @return
*/
public RedecardDadosAutorizacaoPagamento handle() {
// TODO Auto-generated method stub
return new RedecardDadosAutorizacaoPagamento(checkout,
new RedecardDadosFiliacao(dadosConfiguracao.getNumeroFiliacaoFornecedor(),
dadosConfiguracao.getNumeroFiliacaoDistribuidor()), CodVer
.calculaCodigoVerificacao(String.valueOf(dadosConfiguracao.getNumeroFiliacaoFornecedor()), checkout
.getTotalComDuasCasasDecimais().toString(),
ipComprador),dadosConfiguracao.getUrlRetornoTransacao(), null, null);
}
}