Identifikasi pelanggan yang login (user_token)
Tanda tangan dari server Anda membuktikan identitas pelanggan, sehingga AI dapat memeriksa pesanan dan membantu pelanggan membuat pesanan.
Sebelum AI dapat memeriksa pesanan, AI harus tahu siapa pelanggannya. Identitas pelanggan dibuktikan dengan tanda tangan dari server Anda, dan browser tidak bisa memalsukannya.
Kunci penandatanganan dapat dilihat di halaman "Integrasi" pada dasbor (hanya pemilik yang bisa melihatnya), dengan format whsec_.... Kunci ini dipakai untuk dua arah: Anda memakainya untuk menandatangani user_token; kami memakainya untuk menandatangani webhook dan permintaan pemeriksaan pesanan yang kami kirimkan kepada Anda.
Format user_token: base64url(JSON) + "." + hex(HMAC-SHA256(kunci penandatanganan, base64url(JSON)))
Kolom JSON:
| Kolom | Wajib | Keterangan |
|---|---|---|
user_id | Ya | ID pelanggan di sistem Anda, dikembalikan apa adanya kepada Anda saat memeriksa pesanan |
exp | Ya | Waktu kedaluwarsa (detik Unix), maksimal 7 hari |
name / email | Tidak | Ditampilkan di ruang kerja agen |
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}`
}
Di halaman:
<script>window.AICS_USER_TOKEN = "服务器签发的 user_token"</script>
<!-- 页面加载后才登录的,调用 AICS.identify(token) -->
Anda juga bisa tidak menuliskannya di halaman, melainkan menambahkan data-user-token-url="/你的地址" pada tag script: sebelum jendela layanan pelanggan membuka percakapan, jendela tersebut akan meminta alamat same-origin ini menggunakan cookie pelanggan, dan alamat tersebut harus mengembalikan {"token": "user_token"} (jika pelanggan belum login, kembalikan {"token": null}). Setelah toko Shopify memasang aplikasi Yinke, jendela obrolan otomatis mengambil identitas pelanggan yang sudah login dengan cara ini, tanpa perlu integrasi tambahan.
Apakah halaman ini membantu?
Terakhir diperbarui:
