用戶端以單一檔案形式透過 Entase CDN 提供。沒有 npm 套件、沒有需要建置的 bundle,也沒有需要保持最新的相依項目 – 您總會取得目前版本。
<script src="https://js.entase.com/client.js"></script>載入指令碼後會定義一個全域 Entase 類別。它不會自行執行其他操作:不會發出網絡請求、不會變更 DOM,也不會渲染任何內容。建立執行個體後,一切才會開始。
建立執行個體
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });每個頁面只建立 一個執行個體,並將其重用於每個活動。建構函式會在 window 上註冊 message 監聽器,並開始偵測您的網域獲准使用哪種結帳模式,因此建立多個執行個體只會重複註冊監聽器及重複進行偵測呼叫,沒有任何好處。
每個選項都有預設值,因此不帶引數的 new Entase() 亦有效 – 但沒有 pk,用戶端無法驗證您的網域是否可使用內嵌結帳,並會一律回退至彈出式視窗。請參閱結帳模式。
非同步載入指令碼
如果您使用 async 或 defer 載入 client.js,內嵌指令碼執行時,該類別尚未存在。程式庫載入完成後會在 window 上派發 entase:ready 事件,因此請等待該事件:
<script src="https://js.entase.com/client.js" async></script>
<script>
let entase = null;
const init = () => { entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' }); };
if (typeof Entase !== 'undefined') init();
else window.addEventListener('entase:ready', init);
</script>先進行 typeof 檢查很重要:如果指令碼已完成載入,entase:ready 已經觸發,監聽它將會永遠等待。
清理
在單頁應用程式中,當擁有該執行個體的檢視卸載時,請呼叫 destroy():
entase.destroy();這會移除用戶端註冊的 window 監聽器。已銷毀的執行個體無法重用 – 對它呼叫 book() 只會記錄錯誤,不會執行任何操作。請改為建立新的執行個體。
內容安全政策
如果您的網站傳送 Content-Security-Policy 標頭,結帳功能需要:
script-src https://js.entase.com– 用於載入程式庫。frame-src https://www.entase.com– 在窗格模式中,結帳會於 iframe 內渲染。connect-src https://www.entase.com– 用戶端會呼叫 Entase API,以判定獲准使用的結帳模式。
沒有 frame-src,窗格模式會顯示空白面板。沒有 connect-src,模式偵測會失敗,而每次結帳都會以彈出式視窗開啟。