Giter Club home page Giter Club logo

cordova-plugin-stone-sdk's Introduction

Demo Cordova plugin

Este plugin é um exemplo de como utilizar a SDK da Stone no Cordova/Ionic.

Exemplo de como utilizar

Documentação da SDK

Plataformas Suportadas

  • Android
  • iOS

Instalação das SDKs

Android

A SDK do Android já está no plugin, mas também pode ser encontrada aqui

iOS

A SDK do iOS pode ser encontrada aqui

Instalação do Plugin

$ cordova plugin add https://github.com/stone-pagamentos/plugin-cordova.git

API

Métodos

validation

Ativa o Stonecode.

stone_sdk.validation(stonecode, success, failure);

Descrição

A função validation é responsável pela ativação do Stonecode na SDK. Caso o Stonecode seja ativado com sucesso, a função irá chamar o callback de sucesso, caso contrário, será chamado o callback de falha.

Parâmetros

  • stonecode: Identificador único na Stone.
  • success: Callback de sucesso.
  • failure: Callback de falha.

device

Lista os dispositivos pareados.

stone_sdk.device(success, failure);

Descrição

A função device é responsável por listar todos os dispositivos pareados. Se a listagem ocorrer com sucesso, a função irá chamar o callback de sucesso, caso contrário, será chamado o callback de falha.

Parâmetros

  • success: Callback de sucesso.
  • failure: Callback de falha.

deviceSelected

Lista os dispositivos pareados.

stone_sdk.deviceSelected(pinpadName_macAddress, success, failure);

Descrição

A função deviceSelected é responsável por conectar o Pinpad selecionado na SDK. No primeiro argumento, ela recebe uma string com o nome do Pinpad e o seu macAddres separados por um "_". Se o dispositivo selecionado for um Pinpad, a função irá chamar o callback de sucesso e irá ativar a coneão bluetooth, caso contrário, será chamado o callback de falha.

Parâmetros

  • pinpadName_macAddress: Nome do pindad e o seu macAddress .
  • success: Callback de sucesso.
  • failure: Callback de falha.

transaction

Realiza um transação.

stone_sdk.transaction(amount, paymentMethod, instalments, success, failure);

Descrição

A função transaction é responsável por realizar uma transação. No primeiro argumento, ela recebe uma string com o montante a ser transacionado. No segundo argumento ela recebe o método de pagamento (crédito ou debito). No terceiro argumento ela recebe a quantidade de parcelas escolhida. Se a transação for bem sucedida, a função irá chamar o callback de sucesso , caso contrário, será chamado o callback de falha.

Parâmetros

  • amount: Valor a ser transacionado.
  • paymentMethod: Método de pagamento selecionado.
  • instalments: Número de parcelas selecionada.
  • success: Callback de sucesso.
  • failure: Callback de falha.

transactionList

Exibe a lista de transações.

stone_sdk.transactionList(success, failure);

Descrição

A função transactionList é responsável por exibir a lista de transações ocorridas. Se houverem transações efetuadas, a função irá chamar o callback de sucesso e irá exibir a lista com as transações, caso contrário, será chamado o callback de falha.

Parâmetros

  • success: Callback de sucesso.
  • failure: Callback de falha.

transactionCancel

Exibe a lista de transações.

stone_sdk.transactionCancel(idTransaction_amountTransaction_statusTransaction, success, failure);

Descrição

A função transactionCancel é responsável pelo cancelamento da transação selecionada. O primeiro argumento recebe uma string com o id da transação, o valor transacionado e o status da transação separados por "_". Se o cancelamento ocorrer com sucesso, a função irá chamar o callback de sucesso, caso contrário, será chamado o callback de falha.

Parâmetros

  • idTransaction_amountTransaction_statusTransaction: Id da transação, valor transacionado e o seu status.
  • success: Callback de sucesso.
  • failure: Callback de falha.

cordova-plugin-stone-sdk's People

Contributors

filpgame avatar igortrinidad avatar kennedynoia avatar limatheus avatar mariodias17 avatar thiagonp avatar victormendes5 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cordova-plugin-stone-sdk's Issues

Métodos e funções que causam crash no app

@filpgame, seguindo na nossa implementação identificamos alguns métodos ou funções que causa crash no app, então vou listá-los aqui para que você possa acompanhar.

setWorkInBackground

No método setTransaction ao alterar a linha provider.setWorkInBackground() de true para false causa crash no app antes da exibição da mensagem para digitar a senha.

Ao alterar para false desejamos que seja exibido o feedback ao usuário, ou seja, os passos completar a transação.

O comportamento é o seguinte: É exibida a mensagem solicitando que o cartão seja inserido, quando o cartão é inserido, antes da mensagem para digitar a senha o app fecha.

getLastTransactionId

Ao executar o método getLastTransactionId do TransactionDAO também causa crash no app.

Instalação e build no Android

Olá pessoal,

Acabei enviando um pull com a adição do package.json para tentar solucionar o problema de instalação do plugin na aplicação Cordova.

Adicionei um package.json simples que tirei baseado em outros plugins para conseguir instalar, a instalação ocorreu sem problemas mas por algum motivo na hora de gerar o build estava dando erro na classe stone do SDK.

Vocês conseguem me ajudar por favor?

Agradeço desde já a atenção de vocês.

Bom final de semana!

Impressão Pos Ingenico A8

Boa tarde,

Estou tentando implementar a impressão no Pos A8 da Ingenico, porem sem sucesso.

Ao executar o PosPrintProvider recebo o erro UNEXPECTED_STATUS_COMMAND.

Os demais providers funcionam corretamente, poderiam me ajudar?

Grato

stone_sdk.validation e stone_sdk.deviceSelected não estão retornando callback

As chamadas stone_sdk.validation e stone_sdk.deviceSelected não estão retornando callback.

Exemplo:

stone_sdk.deviceSelected(device, function() {
      $scope.selectedDevice = device;
      console.log('\nLOG Pareado com sucesso!\n');
    }, function() {
      console.log('\nLOG Erro ao Parear!\n');
    });

O device é pareado (o aparelho mPOS reconhece a conexão e a tela do App mostra o pareamento) porém nenhum dos callbacks é chamado.

Generic error na validação do StoneCode

Olá @filpgame, acabei de realizar um teste aqui após os novos commits e estamos recebendo o erro abaixo na hora de validar StoneCode.

error

O erro é o mesmo apresentado em nossa aplicação e no demo de vocês.

Você tem idéia do que pode ser?

Abraço

Callback de erro

Olá

Ao executar o metodo transaction o callback de erro não é executado de forma correta, é exibido apenas um toast vazio e não consigo recuperar o erro apresentado por exemplo ao remover o cartão (CARD_REMOVED_BY_USER).
O callback de sucesso aparentemente esta executando ok.
Testei com a versão 2.5.9 e 2.6.0.
PS.: no demo de vocês acontece a mesma coisa.
Obrigado

APP's embarcados

Com este plug-in é possivel eu "embarcar" um app nas maquininhas da Stone ? Por exemplo, as empresas instalam o app nas maquininhas e usam esse plugin para interagir com os pagamentos dessa maquininha ?

Metodos de pagamento para vouchers

@filpgame , vou aproveitar que você está no SDK e abrir uma issue aqui sobre os métodos de pagamento.

O Mario Dias, havia me fala que nós poderiamos receber outros métodos de pagamento no pinpad, porém vi que só tem a verificação das strings para "DEBIT" e "CREDIT" no stoneSDK.java, quais parametros vamos passar na transaction para os métodos de pagamento dos vouchers por exemplo: Alelo, Sodexo, Ticket... Essas ultimas duas últimas o Mario disse que estava em processo de homologação...

Abs

Crash no app ao chamar o método stoneValidation

A alegria de ter conseguido enfim rodar o plugin não durou muito viu @filpgame ... Não consegui rodar os métodos validation e transaction está dando erro também... O deviceSelected rodou de boa...

Esse é o código de um estabelecimento meu, tentei com string e número...

Veja nosso código:

			stoneValidation: function(){
			    let that = this
			

			    stone_sdk.validation('121378283', function(){

			    }, function(){
			    	
			    });
			},


			selectPinpad: function(device){
        	    let that = this

        	    let pinpad = device.name + '_' + device.address;

        		that.ppinpad_selected = pinpad;
        		localStorage.setItem('pinpad_selected', JSON.stringify(pinpad));

        		//Conecta o app no pinpad
        		stone_sdk.deviceSelected(pinpad, function(){

        		}, function(){
        			
        		});
        	    
        	},

        	transactionForTest: function(){
        	    let that = this
        	
        	    stone_sdk.transaction('0.01', 'DEBIT', '1', function(){
        	    	console.log('foi')
        		}, function(){
        			console.log('nao foi')
        		});
        	},

screenshot_20180112-040612

Callback da transaction

Hey @filpgame, agora estamos progredindo hein \o/

Observei um comportamento estranho ao realizar uma transaction, parece que o callback não está sendo chamado em algumas situações.

Primeira situacao

A transação é realizada com sucesso, aparece na tela do pin pad transação aprovada e retire o cartão, até aqui tudo ok.
Porem ao retirar o cartão o callback não é executado, só aparece o toast abaixo.

'toast'

Segunda situacao

Essa eu descobri por acaso.
A transação é realizada com sucesso, aparece na tela do pin pad transação aprovada e retire o cartão, se eu nao retirar o cartão após alguns segundos o callback é executado, porém só é retornado um array vazio.

'callback'

O retorno esperado do callback seria os dados da transação aprovada?

CC @igortrinidad

Atualização para o SDK 3.0.4

O plugin será atualizado para a versão do SDK 3.0.4?

Recebi uma notificação aqui que tenho que alterar até o dia 26/04/2019. Mas utilizo exclusivamente esse plugin na minha aplicação.

Cancelamento de transação

Opa @filpgame, beleza?

Cara, o @limatheus alterou os métodos de retorno da lista de transações e da transação no plugin, retornando o objeto da transação completo ao invés da string apenas com algumas infos.

Isso é muito importante pois como envolve transferencia de recursos nós precisamos de mais infos como o código de autorização, recipientTransactionIdentification entre outros dados importantes para qualquer auditoria que precisemos implantar futuramente.

Mas vamos lá, visto que o id da lista de transação é apenas um ordenador das transações realizadas no determinado device, o método de efetuar o cancelamento de uma transação espera o id da transação no device, porém dentro da SDK no CancellationProvider o método utiliza o recipientTransactionIdentification para enviar o cancelamento.

Como o id que espera no método da transação é apenas um ordenador e ele pode ser apagado quando se limpa os dados do app / desinstala o app... Gostaria de saber se é possível alterar o método na SDK para esperar o recipientTransactionIdentification ao invés do ID da transação no device...

Assim a transação poderá ser cancelada mesmo de outros dispositivos, caso haja algum problema no device e mesmo poderá oferecer a descentralização dessa operação que poderá ser realizada por outros devices com acesso à lista de transações como no caso de painel admin que será implementado.

Veja a viabilidade desta alteração, valeu!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.