@mupag/widget
v0.1.1
Published
Browser widget SDK for embedding MuPag checkout in merchant sites.
Readme
@mupag/widget
Browser SDK para abrir o checkout MuPag em modal via iframe, sem redirect obrigatório.
Distribuição
@mupag/[email protected] está publicado no npm e pode ser usado pelo npm, unpkg ou jsDelivr. O
domínio CDN próprio da MuPag ainda está pendente e não é anunciado como disponível.
npm install @mupag/widgetAlternativa via unpkg:
<script src="https://unpkg.com/@mupag/[email protected]/dist/widget.global.js" defer></script>Alternativa via jsDelivr:
<script src="https://cdn.jsdelivr.net/npm/@mupag/[email protected]/dist/widget.global.js" defer></script>O bundle expõe apenas window.MuPagWidget com { MuPag, init, version }.
Uso via atributos de dados
<button
data-mupag-widget
data-environment="test"
data-publishable-key="pk_test_..."
data-item-name="Plano Pro"
data-unit-amount-cents="10990"
data-quantity="1"
data-success-url="https://sua-loja.example/pagamento/sucesso"
data-cancel-url="https://sua-loja.example/carrinho"
>
Comprar agora
</button>NPM
npm install @mupag/widgetimport { MuPag } from "@mupag/widget";
const mupag = new MuPag({
environment: "test",
publishableKey: "pk_test_...",
});
await mupag.openCheckout({
items: [{ name: "Plano Pro", quantity: 1, unit_amount_cents: 10_990 }],
success_url: "https://sua-loja.example/pagamento/sucesso",
cancel_url: "https://sua-loja.example/carrinho",
customer_data: { email: "[email protected]" },
onSuccess: (charge) => console.log("Paid", charge),
onClose: () => console.log("Closed"),
});Segurança e compatibilidade
- A chave
publishableprecisa do escopocheckout_sessions.create. environmenté obrigatório e a chave deve corresponder atest(pk_test_) ouprd(pk_prd_).- Nunca use uma chave secreta no navegador.
- O widget cria uma
Idempotency-Keycriptograficamente segura para cada nova sessão; informeidempotencyKeypara reutilizar a mesma operação em uma tentativa controlada. - Sem
eval, top-level await ou dependências runtime externas. - Baseline ES2018.
- Modal isolado com Shadow DOM e iframe com sandbox.
postMessageaceita eventos apenas da origem e da janela do iframe ativo.- A URL de checkout retornada precisa usar a origem configurada e o caminho
/c/{session_id}. - Para domínio próprio de checkout, configure
checkoutBaseUrlexplicitamente com a origem HTTPS. - Em telas menores que 640px o modal vira fullscreen.
- Se o iframe não carregar, o SDK faz fallback para redirect.
