GithubHelp home page GithubHelp logo

stone-payments / android-uri-demo Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 138 KB

[DEPRECATED] Essa demo foi integrada com a demo da SDK Android: https://github.com/stone-payments/demo-sdk-android

License: MIT License

Java 100.00%

android-uri-demo's People

Contributors

filpgame avatar guilhermebruzzi avatar jgabrielfreitas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

guilhermebruzzi

android-uri-demo's Issues

App Linking com a app mPOS fechada

O app linking só funciona quando a app mPOS já está aberta e pareada com o pinpad, caso contrário, a chamada a stone://payment?<parametros> só "pisca", como se fosse abrir a app, mas não abre de fato.
Os parâmetros enviados em nossa chamada são:

• acquirerProtocol
• action
• acquirerId
• installmentType
• installments
• paymentType
• amount
• installmentsInterestRate
• scheme
• autoConfirm
• paymentId
• paymentSystem
• paymentSystemName
• paymentGroupName
• transactionId
• value

Parâmetros para o retorno do fluxo de pagamento

Precisamos que o retorno do fluxo de pagamento do mPOS seja para instore://payment/?<parametros_de_resposta>, sendo os parâmetros de resposta:

scheme: "instore"
action: "payment"
paymentId: string (o mesmo enviado na ação de ida)
acquirerTid: string (e.g. "<stone_itk>")
acquirerAuthorizationCode: string (e.g. "<stone_atk>")
merchantReceipt: string (recibo do estabelecimento)
customerReceipt: string (recibo do cliente)
responsecode: int (0 significa sucesso e qualquer número maior que 0 significa um código de erro do adquirente e nesse caso reason será uma mensagem de erro)
reason: string (em caso de sucesso fica vazio e em caso de erro contém a mensagem de erro)

Mudança de nome de parametros na ida e na volta do fluxo de pagamento

Parâmetros de ida do pagamento:

  • acquirerId: string (e.g. "<stone_code>") // <- iremos incluir nas chamadas
  • installments: int (e.g. 3 parcelas) // ok
  • paymentType: string (e.g. "credit" or "debit") // ok
  • amount: long (e.g. 1034) // ok
  • transactionId: string (e.g.: "1093019039") // ok
  • paymentId: string (e.g.: "1093019888") // <- Adicionar
  • scheme: string // <- mudar o nome

ex.: stone-payment://payment/?parametrosIda&scheme=instore // <- mudar o host de como faz esse link

Retorno:
ex.: instore://payment/?parametrosVolta // <- mudar o host de como faz esse link

  • paymentId: string (e.g.: "1093019888") // <- salvar e retornar o mesmo
  • acquirerTid: string (e.g. "<stone_itk>")
  • acquirerAuthorizationCode: string (e.g. "<stone_atk>")
  • customerReceipt: string (returned by the app) // <- incluido em outra issue
  • merchantReceipt: string (returned by the app) // <- incluido em outra issue
  • responsecode (0 = ok, !0 -> reason = <error_msg>) // <- mudar o nome
  • reason: string // <- mudar o nome

Feedback de retorno

Feedback visual muito discreto de que retornou com sucesso (aumentar o tempo do toast ou criar um alerta com botão de confirmação).

E no pinpad fica escrito: "TRANSAC APROVADA" eternamente se a transação foi feita por esse applinking.

Acredito que poderia antes de retornar da mPos, voltar ao padrão de ficar escrito: STONE PAGAMENTOS, que é o texto que fica se vc faz direto via mPos, sem applinking.

Mudança de nome de parametros na ida e na volta do fluxo de estorno

Ida do estorno (payment-reversal):
ex.: Cappta://payment-reversal/?parametrosIda&scheme=instore // <- mudar o nome da action

  • paymentId: string (e.g.: "1093019888")
  • scheme: string (e.g.: instore)

Retorno:
ex.: instore://payment-reversal/?parametrosVolta // <- retornar com o mesmo nome

  • customerReceipt: string (returned by the app) // <- já pedido em outra issue
  • merchantReceipt: string (returned by the app) // <- já pedido em outra issue
  • responsecode (0 = ok, !0 -> reason = <error_msg>)
  • reason: string

Fazer o applinking funcionar com a app da mPos fechada

Só funciona o applinking quando a app da mPos está aberta e eu pareio com a maquinha e deixo ela aberta. Ou seja, se eu nunca a abri a app da mPos dá erro de pareamento, mesmo se antes eu tenha pareado via bluetooth com a maquininha.

Pra testar: basta fazer o fluxo com a app da mPos aberta e depois matar o seu processo, o applinking até abre a app da mPos novamente, mas dá erro de pareamento (deveria tentar reconectar com a maquininha atualmente ligada no bluetooth ou a última que já tenha pareado).

Aceitar applinking de configuração

No primeiro momento de configuração do inStore, a app da stone receberá:
ex.: stone-payment://configuration/?acquirerId=<stone_code>&scheme=instore

E tem que garantir que a app fique configurada e pareada com o pinpad e então retornar:
ex.: instore://configuration/?responsecode=&reason=<error_msg>
responsecode (0 = ok, !0 -> reason = <error_msg>) + reason: string

Opção fazer transação na mPos sem precisar de confirmação

O applinking deve por padrão pedir pra mPos para já efetuar a transação com cartão no pinpad sem precisar de nenhuma ação do usuário.
Se a app de origem quiser editar a transação antes de enviar (uma confirmação), pode ser uma opção extra do applinking.
Atualmente o applinking precisa de confirmação e não permite editar nenhum dado da transação original.

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.