Quando o carrinho tem vários itens e queres mostrar o valor no botão
(config.showAmount: true), adicionas uma referência de pagamento por item.
Adicionar todas de uma vez
const button = facipay.generateButton({
createOrder: async () => referenceNumber,
options: {
config: { showAmount: true },
},
});
button.render('#facipay-button-container');
button.addAllPaymentReferences(cart.items.map((item) => ({
referenceNumber: String(item.id),
referenceDescription: item.name,
referenceAmount: item.price, // AOA, inteiro
referenceQuantity: item.quantity,
referenceTotalQuantity: item.stock_quantity,
})));
Adicionar uma a uma
button.addPaymentReference({
referenceNumber: '123456789',
referenceDescription: 'T-Shirt Wow Media',
referenceAmount: 5000,
referenceQuantity: 1,
referenceTotalQuantity: 20,
});
Atualizar quantidade
Quando o cliente muda a quantidade no carrinho, mantém o botão sincronizado:
async function onQuantityChange(item, newQuantity) {
await updateCartOnServer(item.id, newQuantity);
facipay.button.updateQuantity(String(item.id), newQuantity);
}
Via atributos HTML
Para um único item, podes declarar a referência no próprio container:
<div id="facipay-button-container"
data-single-reference-number="123456789"
data-single-reference-amount="5000"
data-show-amount="true">
</div>
referenceAmount é inteiro em AOA, sem decimais. O total mostrado no botão é a soma de
referenceAmount × referenceQuantity de todas as referências.
Próxima receita: Tratamento de erros
Erros, estados de loading e popups bloqueados.