API de interação com o Super-APP AME
Toolset de interação com a camada de Super App
Para instalar no mini-app (enquanto estamos sem publicar com um nome definitivo):
npm i ame-super-app-client -s
Para atualizar no mini-app:
npm up ame-super-app-client
Caso o a api não seja atualizada pelas as vias normais...
rm -rf ./node_modules/ame-super-app-client
npm install
Para utilizar no mini-app é necessário importar a API:
import Ame from 'ame-super-app-client';
Métodos da API
Método 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.
import Ame from "ame-super-app-client";
Ame.askUserData().then(user => {
// usuario deu permissao para ler os dados
console.log(user);
// {
// "phone": "21994291123",
// "documentType": "CPF",
// "documentNumber": "55410786360",
// "email": "username@domain.com",
// "name": "Marcelo Ribeiro da Rocha"
// }
})
.catch(err => {
// usuario negou acesso aos dados
});
Método 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.
import Ame from "ame-super-app-client";
Ame.askDefaultAddress().then(address => {
// usuario deu permissao para ler os dados (nome, cpf, email, etc.)
console.log(address);
// {
// "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
});
Método changeAddress [draft]
Permite lançar a lista de endereços do super-app para que o usuário escolha um. Caso o usuário escolha um endereço, a função retorna um objeto com os dados do endereço. Caso o usuário cancele, a função returna um objeto com o endereço atual já escolhido.
import Ame from "ame-super-app-client";
Ame.changeAddress().then(address => {
// usuario trocou o endereco no super app
})
.catch(err => {
// erro inesperado
});
Método showSearch [draft]
Permite lançar a busca do super-app para que o usuário procure por produtos.
import Ame from "ame-super-app-client";
Ame.showSearch().then(addresses => {
// exibe o campo de search na barra do super app
// o SuperApp vai enviar o mini app para a url:
// /search/?q=<texto digitado pelo usuario>
})
.catch(err => {
// erro inesperado
});
Método startPayment
Permite que o usuário inicie o fechamento de um pedido, lançando a tela de pagamentos do super-app.
import Ame from "ame-super-app-client";
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 = {
amount: itemPrice,
cashbackAmountValue: 0,
customPayload: { cartId: '12345' /* Dados customizados para fechar o pedido apos pagamento */ },
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).then(res => {
// pago com sucesso [draft]
}).catch(err => {
// nao foi pago [draft]
});
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
}
Operações HTTP
Existem métodos para realizar requisições HTTP.
Método GET
import Ame from "ame-super-app-client";
Ame.get(url, [config]);
Método POST
import Ame from "ame-super-app-client";
Ame.post(url, [config]);
Método PUT
import Ame from "ame-super-app-client";
Ame.put(url, [config]);
Método DELETE
import Ame from "ame-super-app-client";
Ame.delete(url, [config]);