feat(core): 新增苹果 App Store 订阅票据校验与向量存储结构升级
- 引入 Apple App Store Server Library,完成票据验证、续订、退款通知全套流程 - 新增 AppleReceiptController / AppleReceiptService 及相关配置类,支持沙箱与生产环境双端点 - 向量存储接口升级:EmbedSaveReq 封装向量与业务实体,QdrantVectorService 改为 JSON 字符串载荷并补全异常处理 - 补充 Apple 根证书与订阅密钥资源文件,pom 与 yml 增加对应依赖与配置
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package com.yolo.keyborad.controller;
|
||||
|
||||
import com.yolo.keyborad.model.dto.AppleReceiptValidationResult;
|
||||
import com.yolo.keyborad.service.AppleReceiptService;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/apple")
|
||||
public class AppleReceiptController {
|
||||
|
||||
private final AppleReceiptService appleReceiptService;
|
||||
|
||||
public AppleReceiptController(AppleReceiptService appleReceiptService) {
|
||||
this.appleReceiptService = appleReceiptService;
|
||||
}
|
||||
|
||||
@PostMapping("/validate-receipt")
|
||||
public AppleReceiptValidationResult validateReceipt(@RequestBody Map<String, String> body) {
|
||||
String receipt = body.get("receipt");
|
||||
return appleReceiptService.validateReceipt(receipt);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.yolo.keyborad.controller;
|
||||
|
||||
import cn.hutool.json.JSON;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.yolo.keyborad.common.BaseResponse;
|
||||
import com.yolo.keyborad.common.ResultUtils;
|
||||
|
||||
import com.yolo.keyborad.model.dto.EmbedSaveReq;
|
||||
import com.yolo.keyborad.model.dto.IosPayVerifyReq;
|
||||
import com.yolo.keyborad.service.impl.QdrantVectorService;
|
||||
import io.qdrant.client.QdrantClient;
|
||||
@@ -82,8 +85,10 @@ public class DemoController {
|
||||
@PostMapping("/testSaveEmbed")
|
||||
@Operation(summary = "测试存储向量接口", description = "测试存储向量接口")
|
||||
@Parameter(name = "userInput",required = true,description = "测试存储向量接口")
|
||||
public BaseResponse<Boolean> testSaveEmbed( @RequestBody List<Float> userInput) throws Exception {
|
||||
qdrantVectorService.upsertPoint(1L, userInput, null);
|
||||
public BaseResponse<Boolean> testSaveEmbed(@RequestBody EmbedSaveReq embedSaveReq) {
|
||||
qdrantVectorService.upsertPoint(embedSaveReq.getRecordItem().getId()
|
||||
, embedSaveReq.getVector()
|
||||
, JSONUtil.toJsonStr(embedSaveReq.getRecordItem()));
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user