Files
order_site/apps/backend/src/config/defaults.ts
T
yml2213 f38efa2edf 行业电子凭证接入
- 新增 4 个回调接口:send-code/destroy-code/query-code/consume-code
- 支持快手开放平台 MD5/HMAC_SHA256 签名验签
- send-code 回调自动创建 order/order_items/fulfillment_tasks/profiles
- consume-code 回调与既有 flow.consume 结构兼容
- isKuaishouCloudTask 同时匹配 kuaishou-industry executor_key
- claim 页面自动验证行业凭证 task,跳过核销码输入
- 退回时行业 task 跳过快手核销 API
- 新增 KUASHOU_INDUSTRY_* 环境变量配置
2026-06-30 17:33:51 +08:00

112 lines
3.5 KiB
TypeScript

import path from "node:path";
import type { RuntimeConfig } from "../types/runtime-config.js";
export function createDefaultRuntimeConfig(projectRoot: string): RuntimeConfig {
return {
server: {
port: 3000,
},
data: {
root: path.resolve(projectRoot, "data"),
},
logging: {
level: "info",
retentionDays: 30,
},
database: {
url: "postgres://postgres:postgres@127.0.0.1:5432/order_site",
ssl: false,
maxConnections: 10,
},
orders: {
claimBaseUrl: "http://127.0.0.1:5173/#/claim",
tokenTtlHours: 24,
},
admin: {
sessionSecret: "",
sessionTtlHours: 12,
defaultUsers: [],
},
platforms: {
ninetyone: {
userId: "",
secret: "",
version: "1.0",
shopId: "91kaquan",
shopName: "91卡券",
timestampToleranceSeconds: 600,
cardsEncoding: "aes-256-ecb-base64",
},
kuaishouIndustry: {
appKey: "",
appSecret: "",
signSecret: "",
messageSecret: "",
provider: "kuaishou-industry",
platform: "kuaishou",
shopId: "kuaishou-industry",
shopName: "快手行业电子凭证",
version: "1",
},
cloudtentacles: {
baseUrl: "https://123.207.217.176",
timeoutMs: 5000,
sendSmsPath: "/public/verif_code",
loginPath: "/public/login",
userInfoPath: "/user/info",
assetPath: "/user/get_asset",
permissionPath: "/user/get_permission",
categoriesPath: "/categories/get",
skuListPath: "/sku/list",
skuBuyPath: "/sku/buy",
skuUsePath: "/sku/use",
knapsackPath: "/user/get_knapsack",
vnListPath: "/vn/list",
vnAppointPath: "/vn/appoint",
vnGenerateLoginCodePath: "/vn/generate_login_code",
vnVerifCodePath: "/public/vn_verif_code",
vnVerifyLoginCodePath: "/vn/verify_login_code",
vnBindUrlPath: "/vn/bind_url",
vnBindInfoPath: "/vn/bind_info",
vnBackPath: "/vn/back",
bindUrlTtlSeconds: 600,
bindUrlProbeIntervalSeconds: 30,
bindUrlProbeTimeoutMs: 5000,
bindUrlProbeUserAgent:
"Mozilla/5.0 (Linux; Android 12; M2012K11AC Build/SKQ1.211006.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/98.0.4758.102 MQQBrowser/6.2 TBS/046141 Mobile Safari/537.36 V1_AND_SQ_8.8.85_2674_YYB_D QQ/8.8.85.7685 NetType/WIFI WebP/0.3.0 Pixel/1080 StatusBarHeight/108 SimpleUISwitch/0 QQTheme/1000",
bindUrlProbeEndpoint: "https://comm.ams.game.qq.com/ide/",
bindUrlProbeChartId: "323794",
bindUrlProbeSubChartId: "323794",
bindUrlProbeIdeToken: "z90Syo",
bindUrlProbeActivityUrl:
"http%3A%2F%2Fgp.qq.com%2Fcp%2Fa20240828cmcc%2F",
bindUrlProbeReferer: "https://gp.qq.com/",
bindUrlProbeExtraCookie: "",
clientSource: "ct-client",
deviceId: "08bc9d8c-fd15-48ea-bc00-8d754076cafc",
deviceType: 1,
publicKeyPem: `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsSzjk+9st2f8IpYqYaM5
F7K27ZR2IvzxTr2w4zgZAS2+BRdgMvXUOITdFQT+ytYF/r3pIgTkL7MF9UQuylmb
S57DiqGBLNBS7FzKyYzWTOc9yYA3+KrarbvpUn/Bm3UK+KKB17viPy+0pnNAHysJ
pzqadmAtQhI1ZDujJ2sW+FkV/pC8KIFahiyPIHjncy1ZG/BbRF3BDhvDcr6O7scO
GsHstGf9XsZBIITS5LYmlai7OdY4ZIVxUtQbfWzibihO+YDJJzFgt47drX0Ajo85
PfQTPNA++KsXtwRX9M6Re3vkTDRsutIIWKtj8jqhUbbYS3vzS8GJnAWavUFVkR15
0wIDAQAB
-----END PUBLIC KEY-----`,
},
},
cors: {
allowedOrigins: ["*"],
},
};
}