SDK Android

Provider de Transação

Esse provider é utilizado apenas para transações com Pinpad

Tipos de Transação

Para saber mais sobre tipos de transação acesse a seção Transações Financeiras

Transações em Ambiente de Integração

Nosso Sandbox foi preparado para lhe ajudar a validar todos os cenários possíveis de respostas das bandeiras. As transações recebem respostas correspondentes ao valor dos centavos instanciados.

Exemplo: Transações de R$1,00 tem código de resposta 0000. Transações de R$1,01 tem código de resposta 1007.

Todos os possíveis códigos de retorno deste ambiente e seus significados encontram-se na seção Códigos de Retorno do Sandbox.

Enviar transações com o nosso SDK é simples e rápido.

Primeiro você deve instanciar um objeto do tipo TransactionObject:

final TransactionObject transaction = new TransactionObject();

E popular os seguintes atributos:

Nome Tipo Função
amount String Valor da transação em centavos.
initiatorTransactionKey String É um identificador único da transação. Caso você queira passar o seu próprio identificador, certifique-se que ele será sempre único para todas as suas transações. O SDK possui um padrão próprio para gerar este identificador caso você não o preencha.
instalmentTransactionEnum (¹) Quantidade de parcelas.
typeOfTransactionEnum (¹) Tipo da transação
shortName String Nome de exibição no extrato do cliente (máximo de 14 caracteres).
capture Boolean Define se a transação será realizada com captura automática(true) ou não(false).
SubMerchantCity String Cidade do sub-merchant.
SubMerchantPostalAddress String CEP do sub-merchant.
SubMerchantRegisteredIdentifier String Identificador do sub-merchant .
SubMerchantTaxIdentificationNumber Strring CNPJ do sub-merchant (apenas números) .

(¹) *instalmentTransactionEnum* e *typeOfTransactionEnum*

Os valores possíveis para estes atributos estão na seção Transaction Enums.

//Definir o valor da transação em centavos
transactionObject.setAmount("10");

/* AVISO IMPORTANTE: Não é recomendado alterar o campo abaixo do ITK,
 * pois ele gera um valor único. Contudo, caso seja necessário
 * faça conforme a linha a seguir. */
transactionObject.setInitiatorTransactionKey("SEU_IDENTIFICADOR_UNICO");

//Informar a quantidade de parcelas, veja a tabela de valores para o InstalmentTransactionEnum
transactionObject.setInstalmentTransaction(InstalmentTransactionEnum.ONE_INSTALMENT);

//Definir forma de pagamento
transactionObject.setTypeOfTransaction(TypeOfTransactionEnum.CREDIT);

//Define se transação será feita com captura ou não.
transactionObject.setCapture(true); 

//Cidade do sub-merchant
stoneTransaction.setSubMerchantCity("city") 
  
//CEP do sub-merchant (Apenas * números)  
stoneTransaction.setSubMerchantPostalAddress("00000000") 
  
// Identificador do sub-merchant  
stoneTransaction.setSubMerchantRegisteredIdentifier("00000000")
  
// Identificador do sub-merchant
stoneTransaction.setSubMerchantTaxIdentificationNumber("33368443000199") 

Após instanciar e popular o objeto TransactionObject, você poderá passar o mesmo para o TransactionProvider, junto com os seguintes parâmetros:

  • UserModel: Objeto que representa o Stone Code ativado
  • PinpadObject: Objeto que representa o pinpad que irá passar a transação
// Processo para envio da transação

final TransactionProvider provider = new TransactionProvider("CONTEXT", transactionObject, "USER_MODEL", "PINPAD_OBJECT");

provider.useDefaultUI(true);
provider.setDialogTitle("Aguarde"); // Título do Dialog
provider.setDialogMessage("Enviando..."); // Mensagem do Dialog

provider.setConnectionCallback(new StoneCallbackInterface() {
  @Override
  public void onSuccess() {
    // Transação enviada com sucesso e salva no banco. Para acessar, use o TransactionDAO
  }
  @Override
public void onStatusChanged(Action action) {
		// Nesse callback é retornado o próximo passo a ser executado no fluxo de pagamento
}
  @Override
  public void onError() {
    // Erro na transação
  }
});

Após a execução do provider, a sua aplicação receberá um Callback nos métodos onSuccess() ou onError().

Para ter acesso ao status da transação, você deve utilizar o método:

provider.getTransactionStatus();

Status da Transação

Todos os status possíveis se encontram na seção Status da Transação.

Em caso de REJECTED e DECLINED, você pode ver a mensagem de retorno da Stone com o método:

provider.getMessageFromAuthorize()

Códigos de Retorno Autorizador

Todos os códigos possíveis retornados pelo autorizador Stone em produção se encontram na seção Códigos de Retorno do Autorizador Stone.