开发者参考
本页就是一个真实的接入示例——下方右下角的对话窗口使用同一个 Loader 和应用标识加载; 代码块另外展示三个可选业务号。
<script
src="https://cdn.aiservice.shunwanpay.com/widget/0.1.24/loader.js"
integrity="sha384-RE2ECH9YlKws5oDawda7lumNODdOfTe4YIDcz3wHKRqcDS51o3Y6rZ0ECNkhZ/6u"
crossorigin="anonymous"
data-app-id="app_E1B7MYTKM7YE44AD19HX9S7P03"
data-channel-code="channel-001"
data-distributor-code="distributor-001"
data-promoter-code="promoter-001"
></script>
必须替换 data-app-id;三个业务号均可删除。当前 K45 Release 没有可选游戏版本,
所以示例不提供 data-game-version-id;只有目录中存在真实 UUID 时才能增加。
integrity 必须原样保留——版本化 URL 是不可变的,SRI 是它的完整性保证。
app_id 和四项业务上下文都不是密钥,也不授予任何权限。
Loader 会把状态写在 script 标签的 data-aiservice-widget-loader-state 属性上。
在你自己的页面上排查时,直接看这个属性即可,无需猜测。
| 症状 | 原因 | 怎么办 |
|---|---|---|
| 本地双击 HTML 打开,全白 | file:// 的 Origin 是 null,不可能在白名单里 |
必须用 https:// 访问,本地开发也要起一个 https 服务 |
| 放到自己域名上,仍然全白 | 该域名没有被加进这个应用的 Origin 白名单 | 在管理台 → 对应应用 → Origin 里加上,写法见下 |
| 域名加了,还是空 | 应用停留在 draft,没有 deployment |
在管理台点「发布」。新建的应用不会自动发布 |
| 窗口出来了但发不出消息 | 你站点的 CSP 拦了 connect-src |
放行下面三个源 |
| 整个 iframe 起不来 | 你站点的 CSP 缺 frame-src |
同上 |
白名单里的域名必须是规范形式,写错会被直接拒绝:
https://https://shop.example.com/ 会被拒https://shop.example.com:443 会被拒..正确:https://shop.example.com
script-src https://cdn.aiservice.shunwanpay.com
frame-src https://widget.aiservice.shunwanpay.com
connect-src https://api.aiservice.shunwanpay.com
漏 frame-src:iframe 起不来。漏
connect-src:窗口能显示但发不出消息。