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
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: ApikaappKey, sent in the request header and body.app_secret: ApikaappSecret, sent in the request header and body and used to calculate the signature.chan_config:{"appId":"..."};appIdis sent as JSON fieldappid.
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.