AME-SUPER-APP-CLIENT
API para desenvolvimento de mini-apps Ame
Usando a API
Para utilizar essa API no seu mini-app é necessário apenas importá-la nos arquivos .js
que irão chamar métodos dela:
import Ame from "ame-super-app-client";
Não é necessário instalar o pacote npm.
Compatibilidade com diferentes versões do runtime SDK
Em cada método da API é possível encontrar o Histórico de alterações, que exibe a compatibilidade dos métodos disponíveis na API com o Runtime SDK. À medida que novas versões da API são lançadas, alguns comportamentos podem mudar.
É importante verificar se a versão mais recente do método na API é suportado pela versão do Runtime SDK, para isto, utilize o método Ame.checkRuntimeSupportFor passando como parâmetro o valor indicado na coluna runtime SDK do Histórico de alterações como uma string do método que deseja utilizar.
if(await Ame.checkRuntimeSupportFor("1.9.0")){
Ame.shareMiniApp({
"param1": "value1",
"param2": "value2"
});
} else {
Ame.shareMiniApp();
}
Operações HTTP
Existem métodos para realizar requisições HTTP.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | http adicionado ao runtime |
GET
Ame.http.get(url, [config]);
POST
Ame.http.post(url, data, [config]);
PUT
Ame.http.put(url, data, [config]);
DELETE
Ame.http.delete(url, [config]);
Dados do usuário
askUserData
Permite requisitar os dados do usuário. Caso o usuário aceite, a função retorna um objeto com os dados do usuário. Caso o usuário não aceite, a função lança uma excessão.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | askUserData adicionado ao runtime |
Ame.askUserData()
.then(user => {
// usuario deu permissao para ler os dados
console.log(user);
/* Exemplo de saída desse console.log:
{
"phone": "21994291123",
"documentType": "CPF",
"documentNumber": "55410786360",
"email": "johndoe@domain.com",
"name": "John Doe",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
} */
})
.catch(err => {
// usuario negou acesso aos dados
});
askDefaultAddress
Permite requisitar o endereço padrão cadastrado no super-app. Caso o usuário aceite, a função retorna um objeto com os dados do endereço. Caso o usuário não aceite, a função lança uma excessão.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | askDefaultAddress adicionado ao runtime |
Ame.askDefaultAddress()
.then(address => {
// usuario deu permissao para ler os dados (nome, cpf, email, etc.)
console.log(address);
/* Exemplo de saída desse console.log:
{
"address": "Rua São Clemente",
"number": "258",
"district": "Botafogo",
"state": "RJ",
"city": "Rio de Janeiro",
"zipCode": "22260-004",
"countryCode": "BRA",
"additionalInfo": "4º andar"
} */
})
.catch(err => {
// usuario negou acesso aos dados
});
pickAddress
Abre uma tela que permite selecionar um endereço e retorna os dados do endereço selecionado.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | pickAddress adicionado ao runtime |
Ame.pickAddress().then(address => {
console.log(address)
/* Exemplo de saída desse console.log:
{
countryCode: 'BRA',
additionalInfo: '',
zipCode: '12345-678',
main: 'true',
state: 'RJ',
city: 'Rio de Janeiro',
district: 'Centro',
number: '1',
address: 'Beco Diagonal',
customerId: '85b6e3c8-85b6e3c8-85b6e3c8-85b6e3c8-85b6e3c8'
} */
});
askLocation
Obtém dados da localização atual do usuário, é necessário que o usuário conceda o acesso à localização do dispositivo.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | askLocation adicionado ao runtime |
Ame.askLocation().then(location => {
console.log(location)
/* Exemplo de saída desse console.log:
{
mocked: false,
timestamp: 1567520589000,
coords: {
speed: 0,
heading: 0,
accuracy: 20,
altitude: 5,
longitude: -122.08400000000002,
latitude: 37.421998333333335
}
} */
});
manageUserBankingData
⚠ Necessita privilégio de acesso a dados bancários habilitado no Portal do Desenvolvedor
Abre uma tela que permite criar ou alterar dados de conta bancária e os devolve como retorno em caso de sucesso.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.15.0 | manageUserBankingData adicionado ao runtime |
Ame.manageUserBankingData().then(data => {
console.log(data)
/* Exemplo de saída desse console.log:
{
"account": "123456",
"type": "CORRENTE", // ou "POUPANCA"
"id": "a130b75e-dcee-45f9-a7a4-a0e364eae8e9",
"bank": "260",
"agency": "0001"
}*/
});
askUserBankingData
⚠ Necessita privilégio de acesso a dados bancários habilitado no Portal do Desenvolvedor
Solicita os dados bancários do usuário.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.15.0 | askUserBankingData adicionado ao runtime |
Ame.askUserBankingData().then(data => {
console.log(data)
/* Exemplo de saída desse console.log:
{
"account": "123456",
"type": "CORRENTE",
"id": "a130b75e-dcee-45f9-a7a4-a0e364eae8e9",
"bank": "260",
"agency": "0001"
}*/
});
Métodos de navegação
Os métodos listados abaixo estão relacionados à navegação entre as diferentes "views" do miniapp
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | backToTop adicionado ao runtime |
1.0.0 | navigation adicionado ao runtime |
navigation.navigate
Permite navegar entre as diferentes "views" do miniapp, conforme definidas no diretório src/views
, passando-se parâmetros quaisquer entre elas. Então, no caso de uma estrutura de arquivos do miniapp que possui as views Index
e Confirm
(ou seja, os arquivos Index.js
, Index.jsx
, Confirm.js
e Confirm.jsx
) , pode ser usado no arquivo Index.js
:
let state = {
productSKU: "9999999A",
productColor: "Cinza"
};
Ame.navigation.navigate({path: "/Confirm", state:state});
Replace Path (substitui a view corrente com a nova view na pilha de ações)
Ame.navigation.navigate({path: "/Confirm", state: {productSKU: "9999999A"}, replace: true});
navigation.back
Realiza o retorno da view atual para uma anterior na pilha de navegação
Para voltar um nível:
Ame.navigation.back()
Para voltar vários níveis:
Ame.navigation.back(3)
Notas:
Chamar
Ame.navigation.back()
é equivalente a chamarAme.navigation.back(1)
Ao chamar
Ame.navigation.back
quando a pilha de navegação está vazia, o miniapp será fechadoAo chamar
Ame.navigation.back(n)
quando a pilha de navegação tem menos den
páginas, o Miniapp voltará para a primeira página da pilha. Esse, porém, não é o uso projetado desse método. Considere usarAme.navigation.backToTop
caso seja esse o efeito desejado.
navigation.backToTop
Volta para o topo da pilha de navegação.
Ame.navigation.backToTop()
closeMiniApp
Ame.closeMiniApp().then(() => console.log("Mini-app fechado"));
Storage
Métodos de acesso de leitura e escrita em storage para uso nos mini-apps
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.11.0 | Storage adicionado ao runtime |
storage.setItem
Insere um item no storage
await Ame.storage.setItem("chave", "valor");
storage.getItem
Recupera um item do storage
let valoreRecuperado = await Ame.storage.getItem("chave"); // método sync
storage.removeItem
Remove um item do storage
await Ame.storage.removeItem("chave");
storage.clear
Remove todos os itens que o mini-app escreveu no storage
await Ame.storage.clear();
Métodos de pagamento
startPayment
Permite que o usuário inicie o fechamento de um pedido, lançando a tela de pagamentos do super-app.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.9.0 | startPayment adicionado ao runtime |
let item = { name: "my product", price: 1.99 };
// o valor tem que ser em centavos, ou seja, 1.99 vira 199
let itemPrice = parseInt(item.price * 100, 10);
let paymentOrder = {
title: "Titulo",
description: "Descricao",
walletToken: "999999-99999999-99999999-99999999", //opcional, somente para miniapps multi wallet
amount: itemPrice, // o valor tem que ser em centavos, ou seja, 1.99 vira 199
cashbackAmount: 0, // o valor tem que ser em centavos, ou seja, 1.99 vira 199
customPayload: {
cartId: "12345" /* Dados customizados para fechar o pedido apos pagamento */
},
hasOrderDetails: false, // opcional, somente para miniapps com suporte a ver detalhes de pedido. Ler mais na seção "Exibição de detalhes do pedido"
callbackUrl:
"https://yourdomain.com/api/checkout" /* URL para a API da Ame enviar os dados de pagamento */,
items: [
{
description: item.name,
quantity: 1,
amount: itemPrice
}
]
};
// abre a tela de pagamento da Ame
Ame.startPayment(paymentOrder)
Ao realizar um pagamento, a URL informada em callbackUrl será requisitada passando o corpo abaixo:
{
"id": "1b8bb06b-b217-460a-9a41-72279a0f8123",
"date": [2019, 8, 4, 20, 28, 6, 658839000],
"operationType": "DEBIT",
"name": "Compra on-line",
"title": "Titulo",
"description": "Descricao",
"status": "AUTHORIZED",
"type": "PAYMENT",
"currency": "BRL",
"cashType": "CARD",
"amount": 199,
"amountRefunded": 0,
"splits": [
{
"id": "4b109db8-08eb-4404-9fb0-4bbcfae0a123",
"date": [2019, 8, 4, 20, 28, 6, 658868000],
"status": "AUTHORIZED",
"cashType": "CARD",
"amount": 199,
"installments": 1,
"cardMasked": "409602######6243",
"cardBrand": "VISA"
}
],
"attributes": {
"payOnce": true,
"transactionChangedCallbackUrl": "https://yourdomain.com/api/checkout",
"items": [
{
"description": "my product",
"amount": 199,
"quantity": 1
}
],
"customPayload": {
"cartId": "12345"
},
"orderId": "3aa8e856-f54b-4caa-aa17-97eb62d25123"
},
"operationReference": null,
"peer": null
}
Métodos de alerta
Métodos para exibir uma janela modal ao usuário, seja para exibir informação para ele, ou para pedir confirmação antes de executar operações importantes
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | Métodos de alerta adicionados ao runtime |
alert
Abre uma janela modal que exibe uma informação e permite o usuário clicar em um botão para fecha-lá.
Ame.alert({title: "Título da modal", description: "Texto da janela", buttonText: "Texto dentro do botão"})
confirm
Abre uma janela modal que exibe uma informação e permite o usuário clicar em um botão para confirmar ou em um botão para cancelar a ação.
Ame.confirm({title: "Título da modal", description: "Texto da janela", buttonText: "Texto dentro do botão"})
Ame.confirm({
title: "Título da modal",
description: "texto a ser exibido",
confirmText: "Texto do botão de confirmar",
cancelText: "Texto do botão de cancelar"
})
.then(() => { /* Código a ser executado ao confirmar */ })
.catch(() => { /* Código a ser executado ao cancelar */ })
showToast
Método que oferece uma notificação para o usuário, no formato Toast. Usado para exibir mensagens rápidas e temporais no rodapé do aparelho. Utilize o Toast como um recurso para mensagens simples ao usuário.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | showToast adicionado ao runtime |
Ame.showToast({
message: "Mensagem do toast", //message obrigatório
position: "bottom" //valor default
})
O parametro position
é uma string com os possíveis valores de: top
, bottom
ou center
.
vibrateDevice
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | vibrateDevice adicionado ao runtime |
Ame.vibrateDevice({
duration: 400 //valor default
})
IO em interfaces
Métodos relacionados a entrada e saída de dados do usuário
getClipboard
Obtém os dados de texto do clipboard do device
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | getClipboard adicionado ao runtime |
Ame.getClipboard();
setClipboard
Escreve dados de texto do clipboard do device
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | setClipboard adicionado ao runtime |
Ame.setClipboard("novo conteúdo do clipboard");
dismissKeyboard
Fecha o teclado
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.15.0 | dismissKeyboard adicionado ao runtime |
Ame.dismissKeyboard();
pickImage
Requisita uma ou mais imagens ao usuário. O usuário podera escolher se quer tirar uma foto na hora ou selecionar imagens de sua galeria de fotos. O método retorna uma promise com um array com os conteúdos das fotos encodados em base64. Caso o processo seja cancelado pelo usuário, a promessa é rejeitada
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | pickImage adicionado ao runtime |
Ame.pickImage()
.then(response => {
response.map((image, index) => {
console.log("Imagem " + index + " sendo processada")
//image é uma string com o conteúdo da imagem em base64
//Processa a imagem
})
})
.catch(() => {
console.log("Processo de seleção de imagem cancelado pelo usuário")
})
Device Actions
Métodos de interação com outros apps ou experiências do device.
makePhoneCall
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.1.0 | makePhoneCall adicionado ao runtime |
Ame.makePhoneCall("21999999999");
openBrowser
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.1.0 | openBrowser adicionado ao runtime |
Ame.openBrowser({
url: "https://google.com",
openInApp: true // optional - default false
});
openUrlScheme
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.6.0 | openUrlScheme adicionado ao runtime |
Ame.openUrlScheme({
url: "tg://resolve?domain=translate_bot",
});
openBarcodeScanner
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | openBarcodeScanner adicionado ao runtime |
Ame.openBarcodeScanner()
.then(barcodeData => {
//{data: "4123412341234", type: "ean13"}
})
.catch(e => console.log("erro ao executar a leitura de código de barras", e));
Abrir QR Code trocando textos das telas
const barCodeOptions = {
screens: {
// Tela do leitor de código de barras
reader: {
// Texto que fica acima do leitor de código de barras
text: 'Posicione o leitor em cima do código de barras ou do QR Code',
// Texto do botão para informar o código de barras
button: 'Digite código de barras',
},
// Tela para informar o código
input: {
// Título acima do campo de código de barras
title: 'Por favor informe o código:',
// Label do campo de código de barras
label: 'Código',
// Texto do botão para enviar o código de barras
button: 'Pagar',
description: [
{
label: 'Favorecido:',
value: 'Estacionamento Novo Shopping',
},
],
},
}
};
Ame.openBarcodeScanner(barCodeOptions).then(barcodeData => {
//{data: "4123412341234", type: "ean13"}
}).catch(e => console.log("erro ao executar a leitura de código de barras", e));
shareMiniApp
Realiza o compartilhamento de um deeplink que abrirá diretamente o miniApp corrente ao ser clicado. Este método abre a interface de compartilhameto padrão de cada sistema operacional
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.9.0 | suporte a parâmetros |
1.3.0 | shareMiniApp adicionado ao runtime |
Ame.shareMiniApp({
"param1": "value1",
"param2": "value2"
});
Os parâmetros passados aqui podem ser obtidos utilizando o método getInitializationInfos
openMiniApp
Método que permite abrir outro mini app passando parâmetros.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.12.0 | suporte a contextParams |
1.9.0 | openMiniApp adicionado na versão 1.9.0 do runtime |
Ame.openMiniApp({
slug: "meu-mini-app",
initializationParams:{
"param1": "value1",
"param2": "value2"
},
contextParams:{
"currentParam1":"currentValue1",
"currentParam2":"currentValue2"
}
})
Geocoding Utils
Método auxiliares para conversão de dados de localização do usuário
getGeolocationFromAddress
Geocoding. Obtém dados de latitude e longitude à partir de uma query de endereço
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.9.0 | getGeolocationFromAddress adicionado ao runtime |
Ame.getGeolocationFromAddress({addressQuery: "praia de botafogo 501, botafogo, RJ"}).then(geolocResults => {
console.log(geolocResults)
/* Exemplo de saída desse console.log:
[
{
"address": "Praia de Botafogo",
"city": "Rio de Janeiro",
"country": "Brazil",
"longitude": -43.1806511,
"latitude": -22.9505129,
"neighborhood": "Botafogo",
"zip": "22250-040",
"state": "RJ"
}
]
*/
});
getAddressFromLocation
Reverse Geocoding. Obtém dados de endereço à partir de dados de latitude e longitude
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | getAddressFromLocation adicionado ao runtime |
Ame.getAddressFromLocation(-22.9505129, -43.1806511).then(addressResult => {
console.log(addressResult)
/* Exemplo de saída desse console.log:
{
"address": "Praia de Botafogo",
"city": "Rio de Janeiro",
"country": "Brazil",
"latitude": -22.9505129,
"longitude": -43.1806511,
"neighborhood": "Botafogo",
"state": "RJ",
"zip": "22250-040"
}
*/
});
Demais métodos
getEnvironment
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | getEnvironment adicionado ao runtime |
Ame.getEnvironment()
.then(env => console.log(`Ambiente ${env}`)/* dev, qa ou prod */)
.catch(e => console.log("erro ao recuperar o ambiente.", e));
getDeviceSpecs
Retorna dados a respeito do device que está sendo utilizado
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.4.0 | getDeviceSpecs adicionado ao runtime |
Ame.getDeviceSpecs().then(specs => {});
Dados de retorno
specs = {
"hasBottomGestureBar": true,
//se o telefone tem a barra de navegação inferior, como os iPhones a partir da versão X
"platform": "ios"
// ios / android
}
getAppInfo
Retorna os números de versão do app nativo e do runtime do SDK
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.9.0 | getAppInfo adicionado ao runtime |
Ame.getAppInfo().then(info => {});
Dados de retorno
info = {
app_version: "x.x.x",
sdk_runtime_version: "x.x.x"
}
addListener
Registra um callback a ser invocado ao disparar de um evento nativo.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.15.0 | evento onKeyboardChange adicionado |
1.11.0 | evento onBackPress adicionado |
1.9.0 | addListener adicionado ao runtime |
Tipos de evento disponíveis:
- onAppStateChanged:
Invocado quando o aplicativo é colocado em background ou foreground.
Valores passados no callback: active, background, inactive(iOS)*.
Ame.addListener("onAppStateChanged", (state)=>{
console.log("New app state", state);
})
* inactive(iOS): Este é um estado que ocorre ao fazer a transição entre primeiro e segundo plano e durante períodos de inatividade, como entrar na exibição Multitarefa ou no caso de uma chamada recebida.
- onBackPress:
Invocado ao realizar a ação de back no Android ou tocar no botão back do header do miniapp. Precisa receber uma função que retornatrue
para continuar a execução normal da ação de back oufalse
para prevenir que a ação de back aconteça. Este listener funciona apenas na página onde foi declarado e não necessita ser removido, pois é removido automaticamente ao realizar ações de navegação.
Ame.addListener("onBackPress", this.backPressCallback);
...
backPressCallback(){
Ame.confirm({
title: "Atenção",
description: "Deseja realmente sair?",
confirmText: "Sim",
cancelText: "Não"
})
.then(() => { Ame.navigation.back(); //faz a ação de back via framework })
.catch(() => { /* Código a ser executado ao cancelar */ });
return false; //previne que o back aconteça
}
- onKeyboardChange:
Invocado durante mudanças de estado do teclado, quando ele for exibido ou removido da tela.
Ame.addListener("onKeyboardChange", (evt) => {
console.log("evt", evt);
/* Exemplo de saída desse console.log:
{
"isOpen": true,
"nativeEvent": {...}
}
*/
});
removeListener
Remove um callback registrado anteriormente do evento. O callback a ser removido deve ser passado como parâmetro.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.9.0 | removeListener adicionado ao runtime |
Ame.removeListener("onAppStateChanged", (state)=>{
console.log("New app state", state);
})
Registra um callback a ser invocado ao disparar de um evento nativo.
getOrderDetails
Obtém informações sobre um pagamento. Esse método deve ser utilizado apenas na view OrderDetails
, e é utilizado para exibir informações específicas sobre um pedido. Mais detalhes na seção "Exibição de detalhes do pedido"
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.2.0 | getOrderDetails adicionado ao runtime |
Ame.getOrderDetails()
.then(orderDetails => {
console.log(orderDetails)
/* Exemplo de saída desse console.log:
{
orderId: "1b8bb06b-b217-460a-9a41-72279a0f8123"
} */
})
.catch(response => {
console.log("Erro ao recuperar detalhes do pedido: ", response)
})
sendGoogleAnalytics
O método oferece o envio de hits ao google analytics, pelo usuário.
- O parâmetro deve ser um objeto com os seguintes atributos version, hitType, trackingId, documentLocation, clientId.
version: É versão do protocolo de avaliação. Atualmente o valor utilizado é'1'. Quando houver alterações, não compatíveis na ordem inversa, ele mudará.
hitType: É o tipo de hit que será enviado ao google analytics. O hitType deve ser um dos seguintes: "pageview", "screenview", "event", "transaction", "item", "social", "exception" ou "timing".
trackingId: Pode ser definido como ID de acompanhamento. Deve ser do formato UA-XXXX-Y. Todos os dados coletados são associados a esse ID.
documentLocation: Esse parâmetro tem como objetivo definir a view que está sendo monitorada.
clientId: Esse parâmetro tem como objetivo identificar determinado usuário, dispositivo ou instância de navegador de modo anônimo
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | sendGoogleAnalytics adicionado ao runtime |
const eventData = {
version: '1',
hitType: 'pageview',
trackingId: 'UA-XXXX-Y',
documentLocation: '/NameView',
clientId: '35009a79-1a05-49d7-b876-2b884d0f825b'
}
Ame.sendGoogleAnalytics(eventData)
getInitializationInfos
Método para recuperar os parâmetros recebidos pelo mini app durante a inicialização.
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.9.0 | getInitializationInfos adicionado ao runtime |
As opções de passagem de parâmetros durante a abertura de um mini app são:
deeplink
https://miniapps.amedigital.com/open/mini-app-slug? param1=value1¶m2=value2
Exemplo de uso:
Ame.getInitializationInfos().then(infos => {
console.log("infos: ", infos);
}
);
As informações de retorno estão dentro do atributo data do objeto de retorno.
infos: [
{
"type": "NAVIGATION", // or "SHARE"
"data": {
"param1": "value1",
"param2": "value2"
}
}
]
Para fins de desenvolvimento é possivel passar parâmetros na inicialização do mini app utilizando a CLI
checkRuntimeSupportFor
Método para comparar a versão do ambiente de runtime do SDK com uma versão
Histórico de alterações
runtime SDK | Alterações |
---|---|
1.0.0 | checkRuntimeSupportFor adicionado ao runtime |
Exemplo de uso:
let version = "1.11.0"
if (await Ame.checkRuntimeSupportFor(version)) {
// Chamada a alguma funcionalidade do SDK adicionada na versão passada:
return await Ame.storage.setItem("chave", "valor")
}
);
Exibição de detalhes do pedido
Dependendo do pedido feito no MiniApp, pode ser necessário que o usuário verifique informações sobre o pedido. Por exemplo, caso esteja fazendo uma entrega de uma encomenda, é interessante que o usuário tenha a oportunidade de rastrear o pedido. Ou, pode ser importante que, em uma outra situação, o usuário tenha acesso a um QR Code após a compra.
É necessário seguir alguns passos para ter suporte à exibição de detalhes do pedido:
No endpoint que processa o webhook de pedido, informado durante o
Ame.startPayment
através do parâmetrocallbackUrl
, armazenar oid
contido na raiz do objeto json vindo no request, para futuro relacionamento entre opedido
da sua plataforma e aordem de pagamento
na AMEEnviar o parâmetro
hasOrderDetails
com valortrue
, no objeto passado para oAme.startPayment
, apenas para os pedidos em que seja necessário existir uma tela de detalhes customizadaCriar uma view nomeada
OrderDetails
no miniapp, e nela, chamar a funçãoAme.getOrderDetails
para obter oid
do pedido Ame e buscar em seu backend as informações do pedido a serem exibidas para o usuário
Testando os detalhes de pedido
Antes de publicar o miniapp, é possível testar a funcionalidade de exibição dos detalhes do pedido usando a cli ame-app-tools.
Mais informações sobre como utilizá-la na documentação da mesma.