3.8.5

  • Adiciona suporte ao protocolo HMAC na ativação do terminal
  • Adiciona novo parâmetro na utilização do TmsClient
  • Atualiza versão das bibliotecas

02/01/2018

Atualização dos Comprovantes. Comprovante default do SDK WINDOWS e comprovantes exemplos.

3.9.4

  • Segmentação PAT.
  • Envio do campo InstallmentType , era enviado como “1” , porém alteramos para “none”.
  • Envio de novo campo discricionário do parceiro “arquivo partner.txt.
  • Envio de novos campos relativos a informações do TEF.
  • Envio do novo produto débito da Master (DMC).
  • Nova tag no header identificando o Stone Code (segurança).
  • Validação de retirada do cartão antes da conclusão do processo de pagamento (Apenas chip).
  • Pagamento por NFC via Wallet Apple e Samsung.

Exemplo de utilização do Método para implementação do PAT

Devido a uma exigência do ministério do trabalho, o Programa de Alimentação do Trabalhador, não permite utilizar cartões do tipo Voucher (Alimentação, Refeição, Combustível, Cultura e etc) para pagamento de bebidas alcoólicas e cigarro. É mandatório a implementação deste método para autoatendimento de venda de produtos.

IAuthorizationReport report = authorizer.Authorize(
    new TransactionEntry
    {
        InitiatorTransactionKey = "30042021-" + Guid.NewGuid().ToString("N"),
        Amount = 1,
        CaptureTransaction = true,
        Type = AccountType.Underfined,
        HasAlcoholicDrink = false

    },
    out response);

3.9.4.1

  • Novo comando de mensagem com quebra de linha (3.3.4. Comando “DEX” na abecs), esse comando permite escrever mais linhas no pinpad e foi usado para gerar um menu como da demonstração.

  • Monta o menu "Selecione:", "F1-Aproximacao", "F2-Chip" , "F3 - Tarja"e, monta o menu "F1 - Credito", "F2 - Debito", "F3 - Voucher"

Exemplo de utilização do Método

public static IAuthorizationReport Authorize(ICardPaymentAuthorizer authorizer)
        {
            decimal amount = 0.2m;
            ITransactionEntry transaction = new TransactionEntry
            {
                InitiatorTransactionKey = "30042021-" + Guid.NewGuid().ToString("N"),
                CaptureTransaction = true,
                Type = AccountType.Undefined,
                Amount = amount
            };
            PinpadKeyCode CardTypeSelected;
            do
            { // Monta o menu "Selecione:", "F1-Aproximacao", "F2-Chip"
                authorizer.PinpadFacade.Display.ShowMultilineMessage("Selecione:", "F1-Aproximacao", "F2-Chip");
                CardTypeSelected = authorizer.PinpadFacade.Keyboard.GetKey();
                if (CardTypeSelected != PinpadKeyCode.Function1 && CardTypeSelected != PinpadKeyCode.Function2)
                {
                    authorizer.PinpadFacade.Display.ShowMessageWithTimer("Opcao incorreta!", DisplayPaddingType.Center);
                }
            } while (CardTypeSelected != PinpadKeyCode.Function1 && CardTypeSelected != PinpadKeyCode.Function2);
            if (CardTypeSelected == PinpadKeyCode.Function1)
            {
                bool keyCodeNotPress = true;
                do
                { // Monta o segundo menu "Selecione:", "F1 - Credito", "F2 - Debito", "F3 - Voucher"
                    authorizer.PinpadFacade.Display.ShowMultilineMessage("Selecione:", "F1 - Credito", "F2 - Debito", "F3 - Voucher");
                    var key = authorizer.PinpadFacade.Keyboard.GetKey();
                    switch (key)
                    {
                        case PinpadKeyCode.Function1:
                            transaction.Type = AccountType.Credit;
                            keyCodeNotPress = false;
                            break;
                        case PinpadKeyCode.Function2:
                        case PinpadKeyCode.Function3:
                            transaction.Type = AccountType.Debit;
                            keyCodeNotPress = false;
                            break;
                        default:
                            authorizer.PinpadFacade.Display.ShowMessageWithTimer("Opcao incorreta!", DisplayPaddingType.Center);
                            break;
                    }
                } while (keyCodeNotPress);
            }
            // metodo autorizador padrão
            ResponseStatus response;
            IAuthorizationReport report = authorizer.Authorize(
                transaction,
                out response);
            return report;
        }

3.9.4.2

  • retirada da TAG 9F1E Master

3.9.4.3

*Esse pacote tem o envio do campo “Short name” via activate.

Este método vai permitir que o SDK puxe a informação do stone code do cliente junto com o nome do parceiro. Desta forma na aplicação do parceiro esse método tem que estar automatizado que quando for ativado um cliente encarteirado pela parceria, tem que vir o nome do parceiro para complementar o campo “Short Name”.

Exemplo:
partnerName: “VendPago 3.1.1”
partnerName: “PowerVending 2.4.3”
partnerName: “Lavanderia60min 1.8.5”

3.9.4.4

  • Neste pacote fizemos a alteração do tamanho do campo RecordId para an..A2
  • Retiramos a TAG da Master 9F1D.

3.9.4.5

  • Neste pacote incluimos no TransactionResponse.AuthorisationCode. Código de autorização retornado pelo emissor.
  • Homologação do IPP 320 - Criação do Fallback em transações com NFC com a bandeira Elo para transações com Chip.
  • Construção do Sysname = sistema do AutoTEF / "partnername" e Shortname = Nome fantasia ( limitar em 22 caracteres)

3.9.4.6

  • Concatenação do sysname + Shortname. - desfeito essa construção.
  • construção do Sysname = sistema do AutoTEF / "partnername" e Shortname = Nome fantasia
  • Aumento do tempo de resposta do autorizador no Pinpad.

4.0

  • Poi Report Transactions 3.1 é uma aplicação Stone responsável pelo recebimento dos reports (telemetria) dos terminais de pagamento. O monitoramento desses dados, possibilita a identificação de problemas específicos em terminais e, posteriormente, ações proativas visando a resolução do problema de maneira eficiente e assertiva, por exemplo transações negadas offline;
  • Framework .net Standard 2.0, Upgrade no framework para .NET Standard 2.0;
  • Carga de tabela v7.1 (DE55 por carga de tabela) - Enviar as TAGs mandatórias e opcionais do DE55 por bandeira, assim como adaptação dos tamanhos e tipos dos campos ao padrão ABECS 2.12+;
  • Captura posterior: Sodexo / Ticket foi desenvolvida por exigência das bandeiras na certificação. As bandeiras Voucher Ticket e Sodexo exigem, por regulação, que as transações com seus produtos passem a enviar a transação de Captura. A captura é uma confirmação da transação. Desta forma a transação fica dividida em duas partes:
    1 - A autorização junto à bandeira - onde é consultado se há saldo;
    2 - A captura da transação - onde o valor é efetivamente debitado da conta do portador do cartão.
  • ITK gerado pelo SDK. (Padrão Spec TEF.). Nesta versão, o ITK passa a ser gerado automaticamente pela SDK, removendo esta responsabilidade do Parceiro.

4.1

Features:

Homologação do raspberry PI;
Implementação de captura por PDV (Pagamento, cancelamento e etc);
Menu ABECS (Mnu);
Aceite de transações com cartões pré-pago;
Assinatura do pacote com certificado Stone;
Aplicação do ofuscador de código.

Débito técnico:
Geração de cupom pelo SDK;
Correção do nome do produto da bandeira no cupom - correlacionando o RecIdx com o produto na CardBrands);
Correção de possível vulnerabilidade SSRF;
Melhoria do comando comando GTS, utilização excessiva no código;
Remove log em Poi Report 2.0;
Alterar o endpoint do TMS de produção pela descontinuação Poi Report 2.0.

4.2:

Feature:

  • PIX

Débitos Técnicos:

  • Melhoria da lógica do TMT;
  • Resolução de transações nas transações ELO NFC;
  • Incluímos Reason Code das transações negadas Offline, transações negadas entre o cartão e o Pinpad;
  • Correções de bug em transações de voucher;
  • Correção no formato do ITK;
  • Melhoria nos retornos da API para aplicação;
  • Correção das transações irem capturadas e autorizadas, sem ser com as bandeiras Sodexo e Ticket.

Homologação do terminal PPC 940 e Lane 3600.