application.yml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. server:
  2. port: 8001
  3. servlet:
  4. context-path: /api/v1
  5. spring:
  6. threads:
  7. virtual:
  8. enabled: true
  9. application:
  10. name: payment-platform
  11. profiles:
  12. active: dev
  13. servlet:
  14. multipart:
  15. max-file-size: 10MB
  16. max-request-size: 20MB
  17. jackson:
  18. time-zone: Asia/Shanghai
  19. datasource:
  20. type: com.alibaba.druid.pool.DruidDataSource
  21. druid:
  22. driver-class-name: org.postgresql.Driver
  23. url: jdbc:postgresql://localhost:5432/payment_platform_java?currentSchema=public&stringtype=unspecified
  24. username: admin
  25. password: 'xjz#123321'
  26. initial-size: 5
  27. min-idle: 5
  28. max-active: 20
  29. max-wait: 60000
  30. validation-query: SELECT 1
  31. test-while-idle: true
  32. test-on-borrow: false
  33. test-on-return: false
  34. # 每个物理连接建立后立刻把会话时区钉成北京时间。
  35. #
  36. # 为什么必须有这一行:本项目所有 timestamp without time zone 列一律存北京墙钟
  37. # (由 ShanghaiOffsetDateTimeTypeHandler 保证),那部分与会话时区无关;
  38. # 但业务表里另有 4 个 timestamptz 列存的是「瞬间」,读出来是会话时区的墙钟 ——
  39. # sys_invitation_code.used_time / created_time / updated_time、sys_user.last_login
  40. # 这几列的正确性完全押在会话时区上,所以在这里显式钉死,不依赖服务端配置。
  41. #
  42. # 已核对 druid-spring-boot-3-starter 1.2.20 的 spring-configuration-metadata.json:
  43. # 属性名就是 connection-init-sqls(Collection<String>);
  44. # 并已反编译 DruidAbstractDataSource 确认它在建连后逐条
  45. # connection.createStatement() + Statement.execute(sql)。
  46. connection-init-sqls:
  47. - SET TIME ZONE 'Asia/Shanghai'
  48. data:
  49. redis:
  50. host: redis
  51. port: 6379
  52. database: 1
  53. password: '123456#xjz'
  54. timeout: 10s
  55. lettuce:
  56. pool:
  57. max-active: 20
  58. max-idle: 10
  59. min-idle: 5
  60. mybatis-plus:
  61. mapper-locations: classpath*:/mapper/**/*.xml
  62. type-aliases-package: com.payment.platform.module
  63. configuration:
  64. map-underscore-to-camel-case: true
  65. log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  66. # JWT
  67. jwt:
  68. secret: vgb0tnl9d58+6n-6h-ea&u^1#1sccp!794=krylxcjq75vzps$
  69. algorithm: HmacSHA256
  70. access-token-expire: 3600
  71. refresh-token-expire: 7200
  72. token-type: bearer
  73. sliding-expire: true
  74. # 验证码
  75. captcha:
  76. enable: true
  77. expire-seconds: 60
  78. # Knife4j
  79. springdoc:
  80. swagger-ui:
  81. path: /swagger-ui.html
  82. api-docs:
  83. path: /v3/api-docs
  84. knife4j:
  85. enable: true
  86. setting:
  87. language: zh_cn
  88. # Alipay(仅作 fallback — 正常运行时使用 pay_service_provider 表配置)
  89. alipay:
  90. app-id: ""
  91. app-private-key: ""
  92. alipay-public-key: ""
  93. server-url: https://openapi.alipay.com/gateway.do
  94. format: JSON
  95. charset: UTF-8
  96. sign-type: RSA2
  97. sandbox: false
  98. notify-url: ""
  99. return-url: ""
  100. # OAuth 授权回调完成后的前端跳转地址(如 http://localhost:5180)— openid 授权 URL 生成时校验非空
  101. oauth-front-url: "https://qcsj88888.com"
  102. # OAuth 授权回调地址(完整 URL)— 支付宝开放平台「授权回调地址」白名单只能配一个,与当面付 app_auth_code 授权共用(按参数分流),须与白名单完全一致
  103. oauth-redirect-uri: "https://qcsj88888.com/api/v1/payment/aplipay/auth"
  104. max-retries: 3
  105. request-timeout: 30
  106. rate-limit: 100
  107. # 汇安融(HAR)支付宝通道
  108. # 我们是二级服务商,上游汇安融是一级,实际支付能力由上游提供。
  109. # 密钥未配好前 enabled 保持 false —— 定时轮询据此跳过,不会带着空密钥发起调用。
  110. har:
  111. enabled: false
  112. # 上游根地址(不含 context-path,代码里固定拼 /kf-alipay-api)
  113. base-url: ""
  114. # 上游分配的应用编号,联调时确定
  115. app-id: ""
  116. version: "2.0"
  117. # 我方私钥,PKCS#8 纯 Base64(换行自行去掉)
  118. our-private-key: ""
  119. # 汇安融公钥,X.509 纯 Base64(通知验签用,必须配)
  120. platform-public-key: ""
  121. callback-pool-size: 4
  122. connect-timeout-ms: 5000
  123. read-timeout-ms: 15000
  124. # Alibaba Cloud (OSS等)
  125. alibaba-cloud:
  126. access-key-id: LTAI5t5jHkQMY2T7V5n4ofMr
  127. access-key-secret: RYaofbQBRc93LC1oxCbgJGTVMCzNW4
  128. # File upload (OSS)
  129. file:
  130. upload-path: static/upload
  131. allowed-extensions: .gif,.jpg,.jpeg,.png,.ico,.svg,.xls,.xlsx,.pdf,.doc,.docx
  132. max-size: 10485760
  133. # Aliyun OSS
  134. aliyun:
  135. oss:
  136. endpoint: "oss-cn-beijing.aliyuncs.com"
  137. bucket: "hunanxiaojunzioss"
  138. access-key-id: "LTAI5t5jHkQMY2T7V5n4ofMr"
  139. access-key-secret: "RYaofbQBRc93LC1oxCbgJGTVMCzNW4"
  140. custom-domain: ""
  141. # Logging
  142. logging:
  143. file:
  144. path: ./logs
  145. level:
  146. com.payment.platform: info
  147. org.springframework.security: info
  148. # 乐收赢支付通道
  149. leshouying:
  150. base-url: https://test.gdyfsk.com/yfpay
  151. # 默认值是**文档给的测试机构**,开发期开箱即用;正式机构号进件后由环境变量注入
  152. inst-no: ${LESHOUYING_INST_NO:900112}
  153. # 机构密钥同样用环境变量占位:本文件被 git 跟踪,写死正式密钥 = 把机构密钥提交进仓库
  154. key: ${LESHOUYING_KEY:1c4d83f0c3c24a7d9fcaa1fed2682076}
  155. notify-url: ${LESHOUYING_NOTIFY_URL:https://qcsj88888.com/api/v1/payment/collection/notify/pay}
  156. sync-poll-times: 3
  157. sync-poll-interval-ms: 2000
  158. barcode-poll-max-times: 15
  159. barcode-poll-interval-ms: 5000
  160. default-qr-expire-minutes: 15
  161. h5-expire-minutes: 30
  162. reconcile-delay-seconds: 60
  163. absolute-expire-hours: 24
  164. downstream-notify-max-retries: 8
  165. # ── 三-B 进件参数(spec §6.3 的 1-5,由客户经理提供)──
  166. # ★ 默认值必须留空:Global Constraint 3/4(spec §6.4 逐字)禁止「测试用假值」,
  167. # 也不许把凭据提交进仓库。缺失由 LeshouyingProperties.missingOnboardingCredentials()
  168. # 在进件服务入口挡下并**一次列全**,**不进 validate()**(理由见该方法 javadoc)。
  169. channel-id: ${LESHOUYING_CHANNEL_ID:}
  170. bd-id: ${LESHOUYING_BD_ID:}
  171. channel-type: ${LESHOUYING_CHANNEL_TYPE:}
  172. rate-code: ${LESHOUYING_RATE_CODE:}
  173. # 进件审核通知地址(我方固定地址,spec §6.5)。★ 与上面 notify-url 不是同一个地址。
  174. onboarding-notify-url: ${LESHOUYING_ONBOARDING_NOTIFY_URL:}