H3tok3Config.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package com.malk.config;
  2. import org.springframework.boot.context.properties.ConfigurationProperties;
  3. import org.springframework.context.annotation.Configuration;
  4. /**
  5. * 氚云-金蝶-旺店通三系统集成配置类
  6. *
  7. * 功能说明:配置金蝶云·星空、氚云、旺店通三大系统的连接信息
  8. *
  9. * 配置项说明(在application.yml中使用h3tok3前缀):
  10. * - h3tok3.kingdee: 金蝶系统配置
  11. * - h3tok3.h3yun: 氚云系统配置
  12. * - h3tok3.wangdian: 旺店通系统配置
  13. */
  14. @Configuration
  15. @ConfigurationProperties(prefix = "h3tok3")
  16. public class H3tok3Config {
  17. /** 金蝶云·星空配置 */
  18. private KingdeeConfig kingdee = new KingdeeConfig();
  19. /** 氚云配置 */
  20. private H3yunConfig h3yun = new H3yunConfig();
  21. /** 旺店通配置 */
  22. private WangdianConfig wangdian = new WangdianConfig();
  23. // ==================== getter/setter ====================
  24. public KingdeeConfig getKingdee() {
  25. return kingdee;
  26. }
  27. public void setKingdee(KingdeeConfig kingdee) {
  28. this.kingdee = kingdee;
  29. }
  30. public H3yunConfig getH3yun() {
  31. return h3yun;
  32. }
  33. public void setH3yun(H3yunConfig h3yun) {
  34. this.h3yun = h3yun;
  35. }
  36. public WangdianConfig getWangdian() {
  37. return wangdian;
  38. }
  39. public void setWangdian(WangdianConfig wangdian) {
  40. this.wangdian = wangdian;
  41. }
  42. /**
  43. * 金蝶云·星空配置类
  44. *
  45. * 对接方式:API主动推送(氚云->金蝶)和事件订阅(金蝶->氚云)
  46. *
  47. * 认证流程(新的AccessToken认证方式):
  48. * 1. 调用 /api/getAppToken.do 获取 app_token
  49. * 2. 调用 /api/login.do 获取 access_token
  50. * 3. 在后续请求头中添加 AccessToken
  51. *
  52. * API地址:https://wuliustyle.test.kdgalaxy.com/kapi/v2/{接口名}
  53. */
  54. public static class KingdeeConfig {
  55. /** 金蝶API服务器地址,如:https://wuliustyle.test.kdgalaxy.com */
  56. private String host;
  57. /** API基础路径,如:/kapi/v2 */
  58. private String basePath = "/kapi/v2";
  59. /** 账套ID,用于登录认证 */
  60. private String acctId;
  61. /** 用户名,用于登录认证 */
  62. private String userName;
  63. /** 密码,用于登录认证 */
  64. private String password;
  65. /** 应用ID(AppId),用于获取app_token */
  66. private String appId;
  67. /** 应用密钥(AppSecret),用于获取app_token */
  68. private String appSecret;
  69. /** 租户ID(tenantid),如:wuliustyle.test */
  70. private String tenantId;
  71. /** 账户ID(accountId),如:2375638172857100288 */
  72. private String accountId;
  73. /** x-acgw-identity:调用API的身份标识,第三方应用启用后自动颁发 */
  74. private String acgwIdentity;
  75. // ==================== getter/setter ====================
  76. public String getHost() { return host; }
  77. public void setHost(String host) { this.host = host; }
  78. public String getBasePath() { return basePath; }
  79. public void setBasePath(String basePath) { this.basePath = basePath; }
  80. public String getAcctId() { return acctId; }
  81. public void setAcctId(String acctId) { this.acctId = acctId; }
  82. public String getUserName() { return userName; }
  83. public void setUserName(String userName) { this.userName = userName; }
  84. public String getPassword() { return password; }
  85. public void setPassword(String password) { this.password = password; }
  86. public String getAppId() { return appId; }
  87. public void setAppId(String appId) { this.appId = appId; }
  88. public String getAppSecret() { return appSecret; }
  89. public void setAppSecret(String appSecret) { this.appSecret = appSecret; }
  90. public String getTenantId() { return tenantId; }
  91. public void setTenantId(String tenantId) { this.tenantId = tenantId; }
  92. public String getAccountId() { return accountId; }
  93. public void setAccountId(String accountId) { this.accountId = accountId; }
  94. public String getAcgwIdentity() { return acgwIdentity; }
  95. public void setAcgwIdentity(String acgwIdentity) { this.acgwIdentity = acgwIdentity; }
  96. }
  97. /**
  98. * 氚云配置类
  99. *
  100. * 对接方式:API调用(CreateBizObject/UpdateFormData等)
  101. * 认证方式:Header携带EngineCode和EngineSecret
  102. * API地址:https://www.h3yun.com/OpenApi/Invoke
  103. */
  104. public static class H3yunConfig {
  105. /** 氚云API基础地址 */
  106. private String baseUrl = "https://www.h3yun.com/OpenApi/Invoke";
  107. /** 引擎编码,用于API认证 */
  108. private String engineCode;
  109. /** 引擎密钥,用于API认证 */
  110. private String engineSecret;
  111. // ==================== getter/setter ====================
  112. public String getBaseUrl() { return baseUrl; }
  113. public void setBaseUrl(String baseUrl) { this.baseUrl = baseUrl; }
  114. public String getEngineCode() { return engineCode; }
  115. public void setEngineCode(String engineCode) { this.engineCode = engineCode; }
  116. public String getEngineSecret() { return engineSecret; }
  117. public void setEngineSecret(String engineSecret) { this.engineSecret = engineSecret; }
  118. }
  119. /**
  120. * 旺店通配置类
  121. *
  122. * 对接方式:API调用(盘盈盘亏单等)
  123. * 认证方式:请求体包含appkey、sid、timestamp、sign(MD5签名)
  124. * API地址:https://api.wangdian.cn/openapi2/
  125. */
  126. public static class WangdianConfig {
  127. /** 旺店通API基础地址(openapi2,用于RestTemplate方式调用),由配置文件注入 */
  128. private String baseUrl;
  129. /** 应用Key,用于API认证(openapi2) */
  130. private String appkey;
  131. /** 店铺ID/卖家标识,用于API认证 */
  132. private String sid;
  133. /** 应用密钥,用于生成签名(openapi2) */
  134. private String secret;
  135. // ========== SDK(openapi v1.0)配置 ==========
  136. /** 旺店通ERP开放API服务器地址,SDK会在此基础上拼接 /openapi */
  137. private String erpUrl = "http://wdt.wangdian.cn/";
  138. /** 旺店通ERP开放API Key(openapi key) */
  139. private String erpKey;
  140. /** 旺店通ERP开放API Secret,格式:secret:salt */
  141. private String erpSecret;
  142. // ==================== getter/setter ====================
  143. public String getBaseUrl() { return baseUrl; }
  144. public void setBaseUrl(String baseUrl) { this.baseUrl = baseUrl; }
  145. public String getAppkey() { return appkey; }
  146. public void setAppkey(String appkey) { this.appkey = appkey; }
  147. public String getSid() { return sid; }
  148. public void setSid(String sid) { this.sid = sid; }
  149. public String getSecret() { return secret; }
  150. public void setSecret(String secret) { this.secret = secret; }
  151. public String getErpUrl() { return erpUrl; }
  152. public void setErpUrl(String erpUrl) { this.erpUrl = erpUrl; }
  153. public String getErpKey() { return erpKey; }
  154. public void setErpKey(String erpKey) { this.erpKey = erpKey; }
  155. public String getErpSecret() { return erpSecret; }
  156. public void setErpSecret(String erpSecret) { this.erpSecret = erpSecret; }
  157. }
  158. }