stone-payments / android-uri-demo Goto Github PK
View Code? Open in Web Editor NEW[DEPRECATED] Essa demo foi integrada com a demo da SDK Android: https://github.com/stone-payments/demo-sdk-android
License: MIT License
[DEPRECATED] Essa demo foi integrada com a demo da SDK Android: https://github.com/stone-payments/demo-sdk-android
License: MIT License
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
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)
Parâmetros de ida do pagamento:
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
Recibo do cliente e do estabelecimento em 2 parâmetros: customerReceipt e merchantReceipt
Tanto para pagamento quanto para estorno
lorem ipsum
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.
Ida do estorno (payment-reversal):
ex.: Cappta://payment-reversal/?parametrosIda&scheme=instore // <- mudar o nome da action
Retorno:
ex.: instore://payment-reversal/?parametrosVolta // <- retornar com o mesmo nome
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).
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
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.