| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- server:
- port: 8001
- servlet:
- context-path: /api/v1
- spring:
- threads:
- virtual:
- enabled: true
- application:
- name: payment-platform
- profiles:
- active: dev
- servlet:
- multipart:
- max-file-size: 10MB
- max-request-size: 20MB
- jackson:
- time-zone: Asia/Shanghai
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource
- druid:
- driver-class-name: org.postgresql.Driver
- url: jdbc:postgresql://localhost:5432/payment_platform_java?currentSchema=public&stringtype=unspecified
- username: admin
- password: 'xjz#123321'
- initial-size: 5
- min-idle: 5
- max-active: 20
- max-wait: 60000
- validation-query: SELECT 1
- test-while-idle: true
- test-on-borrow: false
- test-on-return: false
- # 每个物理连接建立后立刻把会话时区钉成北京时间。
- #
- # 为什么必须有这一行:本项目所有 timestamp without time zone 列一律存北京墙钟
- # (由 ShanghaiOffsetDateTimeTypeHandler 保证),那部分与会话时区无关;
- # 但业务表里另有 4 个 timestamptz 列存的是「瞬间」,读出来是会话时区的墙钟 ——
- # sys_invitation_code.used_time / created_time / updated_time、sys_user.last_login
- # 这几列的正确性完全押在会话时区上,所以在这里显式钉死,不依赖服务端配置。
- #
- # 已核对 druid-spring-boot-3-starter 1.2.20 的 spring-configuration-metadata.json:
- # 属性名就是 connection-init-sqls(Collection<String>);
- # 并已反编译 DruidAbstractDataSource 确认它在建连后逐条
- # connection.createStatement() + Statement.execute(sql)。
- connection-init-sqls:
- - SET TIME ZONE 'Asia/Shanghai'
- data:
- redis:
- host: redis
- port: 6379
- database: 1
- password: '123456#xjz'
- timeout: 10s
- lettuce:
- pool:
- max-active: 20
- max-idle: 10
- min-idle: 5
- mybatis-plus:
- mapper-locations: classpath*:/mapper/**/*.xml
- type-aliases-package: com.payment.platform.module
- configuration:
- map-underscore-to-camel-case: true
- log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
- # JWT
- jwt:
- secret: vgb0tnl9d58+6n-6h-ea&u^1#1sccp!794=krylxcjq75vzps$
- algorithm: HmacSHA256
- access-token-expire: 3600
- refresh-token-expire: 7200
- token-type: bearer
- sliding-expire: true
- # 验证码
- captcha:
- enable: true
- expire-seconds: 60
- # Knife4j
- springdoc:
- swagger-ui:
- path: /swagger-ui.html
- api-docs:
- path: /v3/api-docs
- knife4j:
- enable: true
- setting:
- language: zh_cn
- # Alipay(仅作 fallback — 正常运行时使用 pay_service_provider 表配置)
- alipay:
- app-id: ""
- app-private-key: ""
- alipay-public-key: ""
- server-url: https://openapi.alipay.com/gateway.do
- format: JSON
- charset: UTF-8
- sign-type: RSA2
- sandbox: false
- notify-url: ""
- return-url: ""
- # OAuth 授权回调完成后的前端跳转地址(如 http://localhost:5180)— openid 授权 URL 生成时校验非空
- oauth-front-url: "https://qcsj88888.com"
- # OAuth 授权回调地址(完整 URL)— 支付宝开放平台「授权回调地址」白名单只能配一个,与当面付 app_auth_code 授权共用(按参数分流),须与白名单完全一致
- oauth-redirect-uri: "https://qcsj88888.com/api/v1/payment/aplipay/auth"
- max-retries: 3
- request-timeout: 30
- rate-limit: 100
- # 汇安融(HAR)支付宝通道
- # 我们是二级服务商,上游汇安融是一级,实际支付能力由上游提供。
- # 密钥未配好前 enabled 保持 false —— 定时轮询据此跳过,不会带着空密钥发起调用。
- har:
- enabled: false
- # 上游根地址(不含 context-path,代码里固定拼 /kf-alipay-api)
- base-url: ""
- # 上游分配的应用编号,联调时确定
- app-id: ""
- version: "2.0"
- # 我方私钥,PKCS#8 纯 Base64(换行自行去掉)
- our-private-key: ""
- # 汇安融公钥,X.509 纯 Base64(通知验签用,必须配)
- platform-public-key: ""
- callback-pool-size: 4
- connect-timeout-ms: 5000
- read-timeout-ms: 15000
- # Alibaba Cloud (OSS等)
- alibaba-cloud:
- access-key-id: LTAI5t5jHkQMY2T7V5n4ofMr
- access-key-secret: RYaofbQBRc93LC1oxCbgJGTVMCzNW4
- # File upload (OSS)
- file:
- upload-path: static/upload
- allowed-extensions: .gif,.jpg,.jpeg,.png,.ico,.svg,.xls,.xlsx,.pdf,.doc,.docx
- max-size: 10485760
- # Aliyun OSS
- aliyun:
- oss:
- endpoint: "oss-cn-beijing.aliyuncs.com"
- bucket: "hunanxiaojunzioss"
- access-key-id: "LTAI5t5jHkQMY2T7V5n4ofMr"
- access-key-secret: "RYaofbQBRc93LC1oxCbgJGTVMCzNW4"
- custom-domain: ""
- # Logging
- logging:
- file:
- path: ./logs
- level:
- com.payment.platform: info
- org.springframework.security: info
- # 乐收赢支付通道
- leshouying:
- base-url: https://test.gdyfsk.com/yfpay
- # 默认值是**文档给的测试机构**,开发期开箱即用;正式机构号进件后由环境变量注入
- inst-no: ${LESHOUYING_INST_NO:900112}
- # 机构密钥同样用环境变量占位:本文件被 git 跟踪,写死正式密钥 = 把机构密钥提交进仓库
- key: ${LESHOUYING_KEY:1c4d83f0c3c24a7d9fcaa1fed2682076}
- notify-url: ${LESHOUYING_NOTIFY_URL:https://qcsj88888.com/api/v1/payment/collection/notify/pay}
- sync-poll-times: 3
- sync-poll-interval-ms: 2000
- barcode-poll-max-times: 15
- barcode-poll-interval-ms: 5000
- default-qr-expire-minutes: 15
- h5-expire-minutes: 30
- reconcile-delay-seconds: 60
- absolute-expire-hours: 24
- downstream-notify-max-retries: 8
- # ── 三-B 进件参数(spec §6.3 的 1-5,由客户经理提供)──
- # ★ 默认值必须留空:Global Constraint 3/4(spec §6.4 逐字)禁止「测试用假值」,
- # 也不许把凭据提交进仓库。缺失由 LeshouyingProperties.missingOnboardingCredentials()
- # 在进件服务入口挡下并**一次列全**,**不进 validate()**(理由见该方法 javadoc)。
- channel-id: ${LESHOUYING_CHANNEL_ID:}
- bd-id: ${LESHOUYING_BD_ID:}
- channel-type: ${LESHOUYING_CHANNEL_TYPE:}
- rate-code: ${LESHOUYING_RATE_CODE:}
- # 进件审核通知地址(我方固定地址,spec §6.5)。★ 与上面 notify-url 不是同一个地址。
- onboarding-notify-url: ${LESHOUYING_ONBOARDING_NOTIFY_URL:}
|