embed.js ouvre le checkout IzichangePay dans une modale (iframe) directement sur votre page, au lieu de rediriger le client vers la page de paiement hébergée. Le client paie sans quitter votre site ; à la fin, le bouton de sortie devient simplement « Fermer » et la modale se referme.
Le payment intent est toujours créé côté serveur avec votre clé secrète.
embed.js ne fait qu’afficher un intent déjà créé : aucune clé n’est exposée au navigateur.Démo live — IziShop
Boutique e-commerce de démonstration qui intègre
embed.js en conditions réelles (Tron testnet, paiement en TRX / USDT). Ajoutez un article au panier puis lancez le paiement : la modale de checkout s’ouvre sans quitter la page, exactement comme décrit dans ce guide.Ajouter un bouton « Payer »
Trois façons d’intégrer, du plus simple au plus flexible :Dans tous les cas, la clé secrète
sk_… ne quitte jamais le serveur. Le navigateur ne manipule qu’un identifiant public : le publicId de l’intent ou le slug du produit. La confirmation fait toujours foi via le webhook signé payment_intent.completed.Générateur de bouton
Choisissez la forme (pill · rounded · soft), la couleur (teal · sombre · bleue) et la taille (sm · normal · lg · xl), prévisualisez en direct, puis copiez le code HTML ou JS. Le bouton utilise toujours la police de marque (Typold) et votre logo.Méthode 1 — Bouton sans code (lien Produit)
Pour un montant fixe, aucun serveur n’est nécessaire. Créez un produit dans le dashboard (Vente → Produits) : vous obtenez un lienhttps://checkout.pay.izichange.com/pay/product/<slug>. Le montant est figé côté IzichangePay — le client ne peut pas le modifier.
Collez le loader, puis un bouton portant l’attribut data-izipay-url :
embed.js câble automatiquement tout élément [data-izipay-url] (ou [data-izipay-intent]) : au clic, la modale s’ouvre. Pas une ligne de JavaScript.
Pour réagir au résultat, écoutez les CustomEvents émis sur le bouton :
Méthode 2 — Bouton géré par le SDK (montant dynamique)
Pour un montant calculé (panier), le bouton appelle votre serveur au clic — le modèle des Smart Buttons PayPal.embed.js dessine le bouton ; votre serveur crée l’intent avec la clé secrète et renvoie son publicId ; la modale s’ouvre.
Côté navigateur :
render(target) accepte un sélecteur CSS ou un élément DOM et renvoie { element }.
Méthode 3 — Ouverture programmée
Si vous pilotez vous-même le déclencheur, créez l’intent côté serveur puis appelezIziPay.open(...).
Créer l’intent côté serveur
Comme pour le flux par redirection, créez un payment intent et récupérez sa réponse (qui contientid et paymentUrl). Renvoyez paymentUrl (ou id) à votre page.
Ouvrir la modale côté client
Incluez le loader, puis appelezIziPay.open() :
Options de IziPay.open(options)
IziPay.open() renvoie un handle { close(), getIframe() } pour piloter la modale par programme :
Événements
Sous le capot, le widget communique avec votre page viapostMessage. Les callbacks ci-dessus correspondent à ces événements :
Sécurité
- Le widget n’envoie ses messages qu’à l’origine exacte de votre page (jamais
*) : le navigateur ne les délivre qu’à votre site. embed.jsn’accepte en retour que les messages provenant de l’origine du widget IzichangePay.- Le checkout autorise l’embarquement par iframe (
frame-ancestors) car c’est sa fonction ; aucune action de paiement n’est déclenchée sans envoi crypto explicite du client.