总子站之间传输数据
国内下发海外海外提报国内一、 海外系统读取YMS环境变量取得关于国内的连接信息。比如国内的appKeyappSecreturltokenUrl。二、 鉴权 调用通过 getAccessToken(tokenUrl, key, secret) 拿 token其中tokenUrl app.TokenUrl /iuap-api-auth/open-auth/selfAppAuth/getAccessToken。这个写在spring项目的配置文件application.properties里面。然后invokOpenAPI(url token, data) POST 业务数据三、鉴权原理token获取1. 组装参数appKey timestamp当前毫秒2. sign()计算签名用appSecret作密钥做HmacSHA256 - Base64 - URL编码3. GET 请求 tokenUrl?appKey..timestamp..signature..国内网关校验签名通过返回access_token小结鉴权里 appKey timestamp HMAC-SHA256(appSecret) 签名 换 access_token 是 YonBIP/用友iuap 标准 OpenAPI 鉴权方式可防篡改、防重放timestamp。完整链路时序海外 branchSubmit └─ 组装 BizObject setFieldValue 加工字段 └─ DataPushUtil.pushData ├─ 读环境配置: CN_domainUrl/CN_ytenant_id/CN_appKey/CN_appSecret ├─ 拼完整 URL (填充 %s国内租户) ├─ getAccessToken │ └─ GET {CN_domainUrl}{app.TokenUrl}?appKeytimestampsignature(HmacSHA256) │ └─ 国内网关验签 → 返回 access_token ├─ invokOpenAPI │ └─ POST {CN_domainUrl}/iuap-api-gateway/{租户}/.../hq/receive?access_tokenxx │ body: {data:[ 政策单据 ]} │一些疑问为什么是 iuap-api-gateway 这个路径iuap-api-gateway 是 用友 YonBIP/iuap 平台的统一开放 API 网关 不是一个 Java 服务而是部署在国内 iuap 云上的独立网关组件。海外 CRM 无法直连国内业务微服务所有对外/跨系统的接口都必须经它中转。它承担三件事1. 鉴权 校验 URL 上的 access_token 由 iuap-api-auth 签发2. 多租户路由 根据 path 里的租户 应用把请求转发到对应租户的后端微服务3. 协议适配/限流/日志 把统一 OpenAPI 协议转成内部服务调用所以路径固定以 /iuap-api-gateway/ 开头这是平台约定的网关上下文context-path不是本项目能改的。配置怎么联系到YMS获取呢一、AppContext.getEnvConfig 是什么AppContext 是用友 ucf/mdd 框架的 应用上下文静态门面 getEnvConfig(key) 读取的是「 环境配置Environment Config 」——它 不是 读 application.properties 而是读 YMS用友微服务/iuap 平台配置中心下发的、 按环境隔离 的运行时配置项。二、YMS 配置平台在这里的角色你观察得对确实连了 YMS。证据就在 application.properties 里的 YMS 相关项- L116 # YMS配置redis 、L118 A47.redis.refengineCode_redis 、L147 yms.oid.dataSourceBeanNamemainDataSource 、L286-L299 一批 yms.session.* / yms.lock.redisClientCode- 大量 engineCode 、 ${domain.url} 占位符构建时/部署时替换工作原理1. 配置归属 CN_domainUrl 、 CN_appKey 、 CN_appSecret 、 CN_ytenant_id 这类 key 不在代码库里 全仓库 grep 只在常量定义处出现没有任何 .properties / .yml 里的值说明它们是在 YMS 配置中心运维/发布平台上按「应用 环境」维度人工配置的 部署时随应用注入。2. 拉取时机 应用启动时框架的 YMS 配置客户端从配置中心拉取该环境dev/test/prod 海外、国内等对应的 env config加载进内存 AppContext 内部缓存运行期 getEnvConfig 直接查内存。3. 多环境隔离 同一套代码海外环境配置里 CN_* 指向国内网关将来换环境只改 YMS 上的值 不用改代码、不用重新打包 。这正是为什么代码里写的是 CN_domainUrl 这种语义化 key 而不是硬编码 URL。文件的传输按钮重复触发

相关新闻

最新新闻

日新闻

周新闻

月新闻