Files
iotlcm/docs/apika-shared-token-integration.md
T
MiFaZhan 96b1edff45 chore: 初始开源发布
iotlcm-upstream-chan:运营商上游通道适配服务(统一 /sim/* 协议)。

- 内联原私有依赖:yunze-public → internal/pub/(10 包 18 文件),
  yunze-pb/pb → internal/pb/(9 文件);Consul 注册改用官方
  gogf/gf/contrib/registry/consul/v2(API 兼容)
- Go module:yz-svr → git.5iot.com/iotlcm-public/iotlcm-upstream-chan
- 修复 mingqian 包测试:实现重构后 `adapter.operations` 字段已移除,
  测试断言按当前实现语义重写(不改产品行为)
- 凭据与内部标识脱敏:MySQL/Redis/Consul 凭据、私网与生产 IP、
  内网域名、真实手机号、注释里的真实 token/transid
- 移除内部资产:CI 触发器、生产通道种子 SQL、真实凭据测试资源文档
- Dockerfile 改用公共基础镜像,移除写死的 registry 凭据
- 补 Apache-2.0 LICENSE,重写 README,LF 行尾 + .gitattributes
2026-10-22 16:08:06 +08:00

1.1 KiB

Apika mobile shared-token channel

Use temp_model=shared_token with template key sim_onelink_kedang_v1.

Set token.baseUrl to http://test.iotapi.apika.cn in the test environment or https://iotapi.apika.cn in production. The token path is /iot-api/iot-card-info/getRefreshToken.

Channel fields:

  • app_key: Apika appKey, sent in the request header and body.
  • app_secret: Apika appSecret, sent in the request header and body and used to calculate the signature.
  • chan_config: {"appId":"..."}; appId is sent as JSON field appid.

The request sends appKey, appSecret, and signature in both the headers and JSON body. The JSON body also contains appid.

The signature is calculated by building {appKey}:{appSecret} with the literal braces, hashing its UTF-8 bytes with SHA-256, converting the digest to uppercase hexadecimal, and Base64-encoding that hexadecimal string.

The returned data.shareToken is cached for five minutes and refreshed thirty seconds before expiry. The returned transid is not used as the OneLink business request transaction ID.