开发者参考

接入示例:把 Widget 嵌到你的页面

本页就是一个真实的接入示例——下方右下角的对话窗口使用同一个 Loader 和应用标识加载; 代码块另外展示三个可选业务号。

1. 把这段贴进你的页面

<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 和四项业务上下文都不是密钥,也不授予任何权限。

2. 本页实时诊断

本页 Origin—
Loader 状态—
iframe 已挂载—

Loader 会把状态写在 script 标签的 data-aiservice-widget-loader-state 属性上。 在你自己的页面上排查时,直接看这个属性即可,无需猜测。

3. 页面空白?按这个顺序查

症状 原因 怎么办
本地双击 HTML 打开,全白 file:// 的 Origin 是 null,不可能在白名单里 必须用 https:// 访问,本地开发也要起一个 https 服务
放到自己域名上,仍然全白 该域名没有被加进这个应用的 Origin 白名单 在管理台 → 对应应用 → Origin 里加上,写法见下
域名加了,还是空 应用停留在 draft,没有 deployment 在管理台点「发布」。新建的应用不会自动发布
窗口出来了但发不出消息 你站点的 CSP 拦了 connect-src 放行下面三个源
整个 iframe 起不来 你站点的 CSP 缺 frame-src 同上

4. Origin 的写法

白名单里的域名必须是规范形式,写错会被直接拒绝:

正确:https://shop.example.com

5. 如果你的站点有 CSP

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:窗口能显示但发不出消息。