Providers - iOS

Esta página irá apresentar os principais métodos disponíveis para a integração dos terminais Minizinha, Moderninha PRO e WIFI com o sistema operacional iOS, assim como alguns exemplos de aplicações. Esta apresentação está dividida em duas partes, sendo a primeira a respeito do terminal Minizinha e a segunda dos terminais Moderninha PRO e WIFI.
Clique aquipara ser direcionado à seção dos terminais Moderninha PRO e WIFI.

Minizinha

Esta seção irá apresentar métodos e exemplos de aplicação destes métodos para o terminal PagBank Minizinha.

Métodos

Nesta tabela você encontra a lista completa de métodos, retornos e suas descrições para a integração com seu terminal.

MétodosTipo do RetornoDescrição
getVersionLibCharRetorna uma String com a versão da biblioteca PlugPag.
setInitBTConnection:PlugPagTransactionResultConfigura a conexão bluetooth utilizando os dados de deviceInformation.
isAuthenticatedBoolVerifica se há um usuário autenticado.
invalidateAuthenticationVoidInvalida uma autenticação. Equivalente a realizar um logout
requestAuthenticationVoidSolicita autenticação. Uma UIViewController é executada no device para autenticação na conta PagBank.
doPaymentPlugPagTransactionResultInicia a transação de venda. Em caso de sucesso, retorna os dados da transação no objeto PlugPagTransactionResult.
voidPaymentPlugPagTransactionResultInicia a transação de estorno. Em caso de sucesso, retorna os dados da transação no objeto PlugPagTransactionResult.
getLastApprovedTransactionPlugPagTransactionResultRecebe dados da última transação finalizada com sucesso pelo terminal.
abortPlugPagAbortResultSolicita o cancelamento da operação atual. O cancelamento da transação não ocorre instantaneamente, pois depende das ações que estão sendo executadas.
plugPagAppIdentification: withVersionIntDefine o nome e a versão do aplicativo que está integrando com o PlugPag
startScanForPeripheralsVoidInicia o processo de scanner para encontrar terminais PagBank que estejam próximos.
pairPeripheralVoidInicia o processo de pareamento com o terminal PagBank informado por parametro
setDelegateStringDefine o delegate do destinatário para um determinado objeto.
peripheralDiscoverVoidDelegate disparado após a PlugPag encontrar um novo terminal PagBank próximo durante o scanner
userEventsInterfaceVoidDelegate disparado contendo os eventos durante uma transação com pinpad.
pairPeripheralStatusVoidDelegate disparado contendo o resultado do pareamento do device iOS com o terminal PagBank.

📘

Documentação

Para mais detalhes sobre os métodos disponíveis você pode baixar a documentação completa.

Exemplos da aplicação

A seguir você encontra exemplos da aplicação dos métodos apresentados anteriormente.

Efetuando uma solicitação de pagamento

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

PlugPagDevice *device = [PlugPagDevice new]; // configura o terminal que realizara a transação
device.mPeripheralName = @"PRO-68000001";

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
PlugPagTransactionResult *ret = [[PlugPag sharedInstance]
setInitBTConnection:device];

if (ret.mResult == RET_OK) {

  NSString *value = @"1234"; // Transação de R$ 12,34
  int numeroParcelas = 1; // Venda, Crédito, A Vista, R$ 12,34
  PlugPagPaymentData *data = [PlugPagPaymentData new];
  data.mType = CREDIT;
  data.mAmount = [value intValue];
  data.mInstallmentType = A_VISTA;
  data.mInstallment = numeroParcelas;
  data.mUserReference = @"CODIGVENDA";

  PlugPagTransactionResult *result = [[PlugPag sharedInstance] doPayment:data];

  if (result.mResult == RET_OK) {
    NSLog(@"%@", result.mMessage);
  }
}
PlugPagDevice *device = [PlugPagDevice new]; // configura a maquina que realizara a transação
device.mPeripheralName = @"PRO-68000001";

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
PlugPagTransactionResult *ret = [[PlugPag sharedInstance]
setInitBTConnection:device];

if (ret.mResult == RET_OK) {

  NSString *value = @"128034"; // Transação de R$ 1.208,34
  int numeroParcelas = 7; // Venda, Crédito, Parcelado Vendedor, 7 parcelas, R$ 1.208,34
  PlugPagPaymentData *data = [PlugPagPaymentData new];
  data.mType = CREDIT;
  data.mAmount = [value intValue];
  data.mInstallmentType = PARC_VENDEDOR;
  data.mInstallment = numeroParcelas;
  data.mUserReference = @"CODIGVENDA";

  PlugPagTransactionResult *result = [[PlugPag sharedInstance] doPayment:data];

  if (result.mResult == RET_OK) {
    NSLog(@"%@", result.mMessage);
  }
}

Estornando uma transação

O exemplo abaixo demonstra como iniciar uma transação de estorno no terminal.

PlugPagDevice *device = [PlugPagDevice new]; // configura o terminal que realizara a transação
device.mPeripheralName = @"PRO-68000001";

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
PlugPagTransactionResult *ret = [[PlugPag sharedInstance]
setInitBTConnection:device];

if (ret.mResult == RET_OK) {

  PlugPagVoidData *voidData = [PlugPagVoidData new];
  voidData.mTransactionId = @"TRANSACTIONID";
  voidData.mTransactionCode = @"TRANSACTIONCODE";

  PlugPagTransactionResult *result = [[PlugPag sharedInstance]
voidPayment:voidData];
  if (result.mResult == RET_OK) {
    NSLog(@"%@", result.mMessage);
  }
}

Solicitar autenticação

O exemplo abaixo demonstra como solicitar uma autenticação no terminal.

[[PlugPag sharedInstance] plugPagAppIdentification:@"MyApp" withVersion:@"R001"];
[[PlugPag sharedInstance] requestAuthentication:self];

Moderninha PRO e WIFI

Esta seção irá apresentar métodos e exemplos de aplicação destes métodos para os terminais PagBank Moderninha PRO e WIFI.

Métodos

Nesta tabela você encontra a lista completa de métodos, retornos e suas descrições para a integração com seu terminal.

MétodoRetornoDescrição
GetVersionLibConst Char*Retorna uma const char com a versão da biblioteca de integração.
SetVersionName: withVersionIntSeta 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.
InitBTConnectionIntInicializa a comunicação bluetooth utilizando o dispositivo padrão do aparelho iOS.
SimplePaymentTransaction: withInstallmentType: endInstallments: endAmountIntInicia 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.
SetModelNenhumSeta o modelo do terminal PagBank que a PlugPag vai parear e conectar via bluetooth
SetPeripheralNameNenhumSeta o ID do terminal PagBank que a PlugPag vai parear e conectar via Bluetooth (O ID pode ser encontrado ao pressionar a tecla '0' no terminal).
SetPeripheral:withNameNenhumSeta o modelo do terminal e o ID do terminal PagBank que a PlugPag vai parear e conectar via Bluetooth.
GetListModelsNSArray (NSArray de Strings)Retorna uma lista de modelos de terminais PagSeguro disponível para pareamento via Bluetooth.
GetListPeripheralNSArray (NSArray de Strings)Retorna uma lista de terminais PagBank disponíveis para pareamento via Bluetooth de acordo com o modelo selecionado. Limitação: Deve ser Chamado após ter informado o modelo desejado através do método SetModel
GetPairPeripheralStatusIntRetorna o status do pareamento Bluetooth, sendo 3 status possíveis: PAIR_STATE_PROCESSING, PAIR_STATE_OK ou PAIR_STATE_FAIL.

📘

Baixe a documentação

Para mais detalhes sobre os métodos disponíveis você pode baixar a documentação completa.

Exemplos da aplicação

A seguir você encontra exemplos da aplicação dos métodos apresentados anteriormente.

Efetuando uma Solicitação de Pagamento

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

[[PlugPag sharedInstance] SetVersionName:@"MyApp" withVersion:@"R001"];
int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Transação de 12,34
        NSString * value = @"1234";

        // Venda, Crédito, A Vista, R$ 12,34
        ret = [[PlugPag sharedInstance] SimplePaymentTransaction:CREDIT withInstallmentType:A_VISTA andInstallments:1 andAmount:value andUserReference:@"CODIGVENDA"];

        if (ret == RET_OK) {
            _txtResultado.text = @"Transação realizada com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }
    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }
[[PlugPag sharedInstance] SetVersionName:@"MyApp" withVersion:@"R001"];
int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Transação de 1208,34
        NSString * value = @"128034";

        // A vista, 7 parcelas
        int numeroParcelas = 7;

        // Venda, Crédito, Parcelado Vendedor, 7 parcelas, R$ 1.208,34
        ret = [[PlugPag sharedInstance] SimplePaymentTransaction:CREDIT withInstallmentType:PARC_VENDEDOR andInstallments:numeroParcelas andAmount:value andUserReference:@"CODIGVENDA"];

        if (ret == RET_OK) {
            _txtResultado.text = @"Transação realizada com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }
    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Estornando uma Transação

O exemplo abaixo demonstra como iniciar uma transação de estorno no terminal.

int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Estorno
        ret = [[PlugPag sharedInstance] CancelTransaction];

        if (ret == RET_OK) {
            _txtResultado.text = @"Estorno realizado com sucesso";
        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }

    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

Consultando a última transação aprovada

O exemplo abaixo demonstra como consultar a última transação aprovada no terminal.

int ret = [[PlugPag sharedInstance] InitBTConnection];

    if (ret == RET_OK) {

        // Consulta a última transação
        ret = [[PlugPag sharedInstance] GetLastApprovedTransactionStatus];

        if (ret == RET_OK) {

            NSString *txDate = [PlugPag sharedInstance].date;
            NSString *txTime = [PlugPag sharedInstance].time;
            NSString *txHost = [PlugPag sharedInstance].hostNsu;
            NSString *txCardBrand = [PlugPag sharedInstance].cardBrand;

        }else{
            _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
        }

    }else{
        _txtResultado.text = [NSString stringWithFormat:@"Erro: %d", ret];
    }

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+).