These docs are for v1.0. Click to read the latest docs for v4.1.

Providers - Moderninha WIFI - Linux

Métodos

MétodoRetornoDescrição
GetVersionLibconst char*Retorna uma string null terminated com a versão da biblioteca de integração.
SetVersionNameIntSeta o nome e versão da aplicação que está utilizando a PlugPag. É MANDATÓRIO que esta função seja chamada antes de se realizar qualquer transação.
InitBTConnectionNenhumConfigura a porta com que está pareada com a Moderninha. Deve ser passada a porta que foi mapeada seguindo as instruções em Mapeando device bluetooth.
SimplePaymentTransactionIntInicia a transação de venda. Em caso de sucesso, retorna os dados da transação numa estrutura.
CancelTransactionIntInicia a transação de estorno. Em caso de sucesso, retorna os dados da transação numa estrutura.
GetLastApprovedTransactionStatusIntVerifica qual foi a última transação com sucesso feita pelo terminal.

📘

Para mais detalhes você pode baixar a documentação completa

Efetuando uma Solicitação de Pagamento

Para efetuar uma chamada para a Moderninha, você deve utilizar o método SimplePaymentTransaction. Veja abaixo alguns exemplos de uma solicitação de venda:

int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no débito
    paymentMethod = PPPAGSEGURO_DEBIT;
    // A vista (1 parcela)
    installmentType = PPPAGSEGURO_A_VISTA;
    installment = 1;

    // R$ 30,00 Reais
    memcpy (amount, "3000", 4);

    // Meu código de venda é "0000000001"
    memcpy (userReference, "0000000001", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);

    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );
int ret;
    tyComPort comPort;
    enPPPSPaymentMethod paymentMethod;
    enPPPSInstallmentType installmentType;
    unsigned int installment;
    tyAmount amount;
    tyUserReference userReference;
    tyAppName appName;
    tyAppVersion appVersion;
    stPPPSTransactionResult transactionResult;

    memset ((void*) comPort, 0, sizeof (tyComPort));
    memset ((void*) amount, 0, sizeof (tyAmount));
    memset ((void*) userReference, 0, sizeof (tyUserReference));
    memset ((void*) appName, 0, sizeof (tyAppName));
    memset ((void*) appVersion, 0, sizeof (tyAppVersion));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memcpy (comPort, "COM11", 5);

    // Pagamento no crédito
    paymentMethod = PPPAGSEGURO_CREDIT;
    //(7 parcelas)
    installmentType = PPPAGSEGURO_PARC_VENDEDOR;
    installment = 7;

    // R$ 200,00 Reais
    memcpy (amount, "20000", 4);

    // Meu código de venda é "CODIGVENDA"
    memcpy (userReference, "CODIGVENDA", 10);

    InitBTConnection (comPort);

    // Setar o nome e versão da aplicação
    memcpy (appName, "MyApplication", 13);
    memcpy (appVersion, "R001", 4);
    SetVersionName(appName, appVersion);

    ret = SimplePaymentTransaction (
        paymentMethod,
        installmentType,
        installment,
        &amount,
        &userReference,
        &transactionResult
    );

Assim que a chamada é feita, a Moderninha iniciará o processo de venda com os parâmetros encaminhados pela sua aplicação. Você pode configurar a Solicitação de Pagamento a partir dos parâmetros que são passados para o método SimplePaymentTransaction. Veja abaixo a listagem dos parâmetros:

ParâmetroTipoDescrição
comPort*tyComPortPorta COM mapeada para Bluetooth e já pareada com a Moderninha.
paymentMethodenPPPSPaymentMethodTipo de transação: crédito, débito ou voucher.
installmentTypeenPPPSInstallmentTypeTipo de parcelamento: à vista ou parcelado.
installmentunsigned intNúmero de parcelas. Caso seja pagamento à vista, valor deve ser 1.
amount*tyAmountValor da transação, com 2 para centavos, sem pontos e vírgulas. Ex: "R$ 1.234,56" deve ser passado como "123456".
reference*tyUserReferenceCódigo da venda, definido pela sua aplicação.

Os tipos customizados são definidos da seguinte maneira:

TipoDefinição
tyComPortchar[8]
enPPPSPaymentMethodenum {PPPAGSEGURO_CREDIT = 1, PPPAGSEGURO_DEBIT = 2, PPPAGSEGURO_VOUCHER = 3}
enPPPSInstallmentTypeenum {PPPAGSEGURO_A_VISTA = 1, PPPAGSEGURO_PARC_VENDEDOR = 2}
tyAmountchar[33]
tyUserReferencechar[21]

A configuração da Solicitação de Pagamento deve seguir estas regras:

  • Não é possível realizar pagamentos de menos de R$ 1,00;
  • Pagamentos parcelados podem ser divididos em no máximo 12 parcelas;
  • Pagamentos parcelados devem ter valor mínimo de parcela de R$ 5,00.

O último parâmetro do método SimplePaymentTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

Outro ponto importante é o código de referência (ou código de venda) que pode ser encaminhado pela sua aplicação. Este parâmetro pode conter o seu número de ordem ou pedido para que você possa efetuar a conciliação dos seus pagamentos posteriormente.

Consultando a última transação

Sua aplicação pode obter os dados da última transação efetuada com sucesso em sua Moderninha. Para isso você deve utilizar o método GetLastApprovedTransactionStatus(). Veja o exemplo abaixo:

int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = GetLastApprovedTransactionStatus (&comPort, &transactionResult);

O último parâmetro do método GetLastApprovedTransactionStatus é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.

  • Caso exista uma transação em andamento no momento da consulta, a função GetLastApprovedTransactionStatus() aguarda a finalização da transação e retorna os dados desta se aprovada (nessessário biblioteca 1.3.0+ e moderninha 3.12+).

Estornando uma Transação

Sua aplicação também pode iniciar um processo de estorno de transação. É importante salientar que esta chamada apenas inicia o processo de estorno. Os demais passos são feitos diretamente na moderninha. Veja exemplo a seguir:

int ret;
    tyComPort portaCom;

    memset ((void*) portaCom, 0, sizeof (portaCom));

    // Porta COM11 está com a Moderninha pareada no Bluetooth
    memset (portaCom, "COM11", 5);

    ret = CancelTransaction (&portaCom, &transactionResult);

O último parâmetro do método CancelTransaction é um ponteiro para uma estrutura que, ao fim da execução do método, estará populada com os dados do retorno da transação efetuada na Moderninha. A estrutura é apresentada no item Dados.