为什么: 1) 第一阶段要能真正收到钱,而收钱方式是金币解锁分集。本提交把钱包、金币流水、 权益、订单四样打通,客户端可以解锁并立刻播放,不再只是展示。 2) 权益判定此前只是端口占位(一律视为未解锁)。交易模块用 @Primary 提供实现后, 播放入口与下载入口的付费判定同时生效 —— 两条链路一行没改。 3) 钱的事必须可追溯、可幂等:所有金币变动都带幂等键并写 coin_ledger, 余额与流水同事务;订单每次状态流转都写 order_event(月分区),支付争议可回溯。 4) 后台要能兜住线上问题:补发(重复提交幂等)、退款(回收权益 + 扣回金币, 余额不足时留人工跟进备注)、人工补币(先校验用户存在,避免给不存在的用户建钱包)、 手动对账(默认每天 04:20 自动跑前一天)。 5) 09 商店支付按约束只做端口预留:StoreVerifier 未接入时明确报"尚未配置", 宁可不收钱也不产生假订单。
67 lines
2.3 KiB
XML
67 lines
2.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts</artifactId>
|
|
<version>1.0.0-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<artifactId>fruitshorts-admin-api</artifactId>
|
|
<name>fruitshorts-admin-api</name>
|
|
<description>管理后台接入层:/admin/**</description>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-system</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-content</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-media</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-user</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-playback</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-interaction</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fruitshorts</groupId>
|
|
<artifactId>fruitshorts-module-commerce</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.security</groupId>
|
|
<artifactId>spring-security-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|