Gravity PayDocs

Levando ao checkout

Redirecione, embute num iframe ou abra em popup — você escolhe.

A cobrança retorna uma checkoutUrl. A mesma URL funciona em três modos — escolha o que melhor se encaixa no seu fluxo.

Redirect (recomendado)

Mande o cliente para a checkoutUrl. Após o pagamento, ele é redirecionado para o successUrl (ou cancelUrl) que você informou ao criar a cobrança.

window.location.href = charge.checkoutUrl;

Embed (iframe)

Embuta o checkout na sua página. No fim do fluxo, enviamos um postMessage para a janela-pai:

<iframe
  src="https://gravitypay.app/c/chg_2e59538f..."
  style="width: 100%; height: 720px; border: 0"
  allow="payment"
></iframe>
window.addEventListener("message", (event) => {
  if (event.data?.type === "gravitypay:completed") {
    // { type, chargeId, status: "paid" }
    console.log("Pago!", event.data.chargeId);
    // feche o modal, mostre o sucesso, etc.
  }
});

Abra a checkoutUrl numa janela e escute o mesmo postMessage:

const popup = window.open(charge.checkoutUrl, "_blank", "width=460,height=720");
window.addEventListener("message", (e) => {
  if (e.data?.type === "gravitypay:completed") popup?.close();
});

Não dependa só do postMessage

O postMessage é ótimo para atualizar a UI na hora. Mas a fonte da verdade do pagamento é o webhook — é ele que você deve usar para liberar acesso ou dar baixa na fatura, porque chega mesmo que o cliente feche o navegador.