diff --git a/pom.xml b/pom.xml
index 0aa86e1..a1eb3f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -135,6 +135,26 @@
validation-api
2.0.1.Final
+
+
+
+ com.github.binarywang
+ weixin-java-pay
+ 4.7.0
+
+
+
+
+ org.jdom
+ jdom2
+ 2.0.6
+
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+
+
diff --git a/src/main/java/com/dpkj/common/constant/WxConstant.java b/src/main/java/com/dpkj/common/constant/WxConstant.java
new file mode 100644
index 0000000..5799d96
--- /dev/null
+++ b/src/main/java/com/dpkj/common/constant/WxConstant.java
@@ -0,0 +1,42 @@
+package com.dpkj.common.constant;
+
+/**
+ * @description:
+ * @author: Zhangxue
+ * @time: 2025/5/28 11:04
+ */
+public interface WxConstant {
+
+ /**
+ * 门店编号, 由商户定义, 各门店唯一。
+ * TODO 修改
+ */
+ String STORE_ID = "1111111111111";
+
+ //门店名称,由商户定义。(可用于展示);中文会导致调用失败
+ String STORE_TEXT = "device8998No1";
+
+ //终端设备编号,由商户定义
+ String DEVICE_ID = "device8998";
+
+ //版本号。固定为1
+ String VERSION = "1";
+
+ //参数签名,使用MD5
+ String SING_TYPE = "MD5";
+
+ /**
+ * 支付类型
+ */
+ String FACEPAY = "FACEPAY";
+
+ /**
+ * 结果状态 成功
+ */
+ String STATE_SUCCESS = "SUCCESS";
+
+ /**
+ * 结果状态 失败
+ */
+ String STATE_FAIL = "FAIL";
+}
diff --git a/src/main/java/com/dpkj/modules/scanface/ali/config/AliFaceConfig.java b/src/main/java/com/dpkj/modules/scanface/ali/config/AliFaceConfig.java
new file mode 100644
index 0000000..36ba73e
--- /dev/null
+++ b/src/main/java/com/dpkj/modules/scanface/ali/config/AliFaceConfig.java
@@ -0,0 +1,52 @@
+package com.dpkj.modules.scanface.ali.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @description: 支付宝刷脸配置信息
+ * @author: Zhangxue
+ * @time: 2025/4/16 20:23
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "dpkj.ali.face")
+public class AliFaceConfig {
+
+ /**
+ * ABCP_SDK部署后DLL文件路径
+ */
+ private String dllPath;
+
+ /**
+ * 应用管理-appid
+ */
+ private String appId;
+
+ /**
+ * IOT应用版本
+ */
+ private String appVersion;
+
+ /**
+ * 签约商家的 PID,以 2088 开头,企业主体
+ */
+ private String merchantId;
+
+ /**
+ * 商家机具终端编号,每台设备保持唯一
+ */
+ private String deviceNum;
+
+ /**
+ * 服务商的 PID
+ */
+ private String partnerId;
+
+ /**
+ * 核心入参 serviceId
+ */
+ private String serviceId;
+}
diff --git a/src/main/java/com/dpkj/modules/scanface/ali/constants/AliFaceConstants.java b/src/main/java/com/dpkj/modules/scanface/ali/constants/AliFaceConstants.java
new file mode 100644
index 0000000..dda4f23
--- /dev/null
+++ b/src/main/java/com/dpkj/modules/scanface/ali/constants/AliFaceConstants.java
@@ -0,0 +1,25 @@
+package com.dpkj.modules.scanface.ali.constants;
+
+/**
+ * @description: 支付宝刷脸模块常量
+ * @author: Zhangxue
+ * @time: 2025/4/24 9:25
+ */
+public final class AliFaceConstants {
+
+ /**
+ * 刷脸去初始化服务
+ * https://ant-iot.alipay.com/open/iotbpaas/service/serviceManage/serviceDetail
+ */
+ public static final String SMILEVERIFYNIN_V1 = "BPaaSSmileVerifyNonInitV1";
+
+
+
+ /**
+ * 刷脸支付服务
+ * ...
+ */
+ public static final String SMILEPAY = "BPaaSFaceSmilePayVerify";
+
+
+}
diff --git a/src/main/java/com/dpkj/modules/scanface/ali/controller/AliScanFaceController.java b/src/main/java/com/dpkj/modules/scanface/ali/controller/AliScanFaceController.java
new file mode 100644
index 0000000..895c899
--- /dev/null
+++ b/src/main/java/com/dpkj/modules/scanface/ali/controller/AliScanFaceController.java
@@ -0,0 +1,114 @@
+package com.dpkj.modules.scanface.ali.controller;
+
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.http.ContentType;
+import cn.hutool.http.Header;
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSONObject;
+import com.dpkj.common.vo.Result;
+import com.dpkj.modules.scanface.ali.config.AliFaceConfig;
+import com.dpkj.modules.scanface.ali.constants.AliFaceConstants;
+import com.dpkj.modules.scanface.ali.dll.AbcpInvoke;
+import com.dpkj.modules.scanface.ali.service.IAliScanFaceService;
+import com.dpkj.modules.scanface.ali.vo.AliOrderVo;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.util.Map;
+
+/**
+ * @Auther: 萧道子
+ * @Date: 2025/4/16 16:47
+ * @Description:
+ */
+@Slf4j
+@AllArgsConstructor
+@RestController
+@RequestMapping("/scanface/ali")
+public class AliScanFaceController {
+
+ private final IAliScanFaceService aliScanFaceService;
+
+ @Resource
+ private AliFaceConfig aliFaceConfig;
+
+
+ /**
+ * 完整的统一的支付宝刷脸支付
+ * 1、调用硬件刷脸获取到ftoken
+ * 2、调用后端的支付宝支付、存入hispay
+ * @param aliOrderVo
+ * @return
+ * @throws Exception
+ */
+ @PostMapping("/aliFacePay")
+ public Result aliFacePay(@RequestBody AliOrderVo aliOrderVo) throws Exception {
+ return aliScanFaceService.aliFacePay(aliOrderVo);
+ }
+
+
+ /**
+ * ABCP初始化,
+ * 文档地址:https://opendocs.alipay.com/iot/05e9ye
+ * ABCP初始化:商家App 启动时通过调用接口 abcp_init 执行 ABCP SDK 的初始化,初始化动作只需启动时调用一次,初始化的时候需保证机具网络处于联网状态。
+ *
+ * @return
+ */
+ @GetMapping("iniAbcp")
+ Result