Kenal pasti pelanggan log masuk (user_token)
Tandatangan pelayan anda membuktikan identiti pelanggan supaya AI boleh menyemak pesanan dan membantu pelanggan membuat pesanan.
Sebelum AI menyemak pesanan, ia mesti tahu siapa pelanggan. Identiti pelanggan dibuktikan melalui tandatangan pelayan anda; pelayar tidak boleh memalsukannya.
Kunci tandatangan boleh dilihat di halaman "Integrasi" dalam panel pentadbir (hanya pemilik boleh melihat), format whsec_.... Ia digunakan secara dua hala: anda menggunakannya untuk menandatangani user_token; kami menggunakannya untuk menandatangani webhook dan permintaan pertanyaan pesanan yang dihantar kepada anda.
Format user_token: base64url(JSON) + "." + hex(HMAC-SHA256(签名密钥, base64url(JSON)))
Medan JSON:
| Medan | Wajib | Keterangan |
|---|---|---|
user_id | Ya | ID pelanggan dalam sistem anda; dihantar semula kepada anda tanpa perubahan semasa menyemak pesanan |
exp | Ya | Masa tamat tempoh (saat Unix), maksimum 7 hari |
name / email | Tidak | Dipaparkan dalam ruang kerja ejen |
Contoh Node.js:
import crypto from "node:crypto"
function signUserToken(user, secret) {
const payload = { user_id: user.id, name: user.name, email: user.email, exp: Math.floor(Date.now() / 1000) + 3600 }
const body = Buffer.from(JSON.stringify(payload)).toString("base64url")
const mac = crypto.createHmac("sha256", secret).update(body).digest("hex")
return `${body}.${mac}`
}
Dalam halaman:
<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->
Anda juga boleh tidak menulisnya ke dalam halaman; sebaliknya tambah data-user-token-url="/你的地址" pada script: sebelum tetingkap perkhidmatan pelanggan memulakan perbualan, ia menggunakan cookie pelanggan untuk membuat permintaan ke alamat asal yang sama ini, dan mengembalikan {"token": "user_token"} (jika tidak log masuk, kembalikan {"token": null}). Selepas kedai Shopify memasang aplikasi Yinke, tetingkap sembang akan mengambil identiti pelanggan yang log masuk secara automatik dengan cara ini, tanpa perlu integrasi tambahan.
Adakah halaman ini membantu?
Kemas kini terakhir:
