支付宝刷脸

This commit is contained in:
萧道子 2025-04-16 17:20:36 +08:00
parent 557852ba40
commit 5f688ed98a
10 changed files with 165 additions and 4 deletions

View File

@ -12,10 +12,10 @@ import java.net.UnknownHostException;
@Slf4j
@SpringBootApplication
public class Application {
public class StandDllApplication {
public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext application = SpringApplication.run(Application.class, args);
ConfigurableApplicationContext application = SpringApplication.run(StandDllApplication.class, args);
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");

View File

@ -21,7 +21,7 @@ public class AlipayDll {
*/
public static Dll instance() throws DllRegistrationException {
try {
return Native.load("NationECCode", Dll.class);
return Native.load("AlipayChs", Dll.class);
} catch (UnsatisfiedLinkError e) {
log.info("[AlipayDll][getPrintSDK][医保动态库] SDK注册失败{}", e.getMessage());
throw new DllRegistrationException("Failed to load AlipayDll library: ", e);

View File

@ -21,7 +21,7 @@ public class HispayDll {
*/
public static Dll instance() throws DllRegistrationException {
try {
return Native.load("PayClient", Dll.class);
return Native.load("HispayChs", Dll.class);
} catch (UnsatisfiedLinkError e) {
log.info("[HispayDll][getPrintSDK][医保动态库] SDK注册失败{}", e.getMessage());
throw new DllRegistrationException("Failed to load AlipayDll library: ", e);

View File

@ -0,0 +1,62 @@
package com.dpkj.modules.scanface.ali.controller;
import cn.hutool.core.lang.Console;
import com.alibaba.fastjson.JSONObject;
import com.dpkj.common.constant.ChsConst;
import com.dpkj.common.vo.Result;
import com.dpkj.modules.chs.dll.AlipayDll;
import com.dpkj.modules.chs.entity.AlipayEcRequestData;
import com.dpkj.modules.scanface.ali.dll.AliScanFaceDll;
import com.dpkj.modules.scanface.ali.service.IAliScanFaceService;
import com.sun.jna.Callback;
import com.sun.jna.Memory;
import com.sun.jna.Pointer;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Auther: 萧道子
* @Date: 2025/4/16 16:47
* @Description:
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/scanface/ali")
public class AliScanFaceController {
private final IAliScanFaceService aliScanFaceService;
@GetMapping("test")
public Result<?> test() {
try {
AliScanFaceDll.Dll dll = AliScanFaceDll.instance();
dll.bp_api_set_isv_lan(1);
dll.abcp_init(null, null, null, null,
new AliScanFaceDll.ProcessCallback() {
@Override
public void invoke(Object obj) {
Console.log(obj);
}
},
new AliScanFaceDll.FinishCallback() {
@Override
public void invoke(Object obj) {
Console.log(obj);
}
});
return Result.ok("成功");
} catch (Exception e) {
e.printStackTrace();
return Result.error("失败");
}
}
}

View File

@ -0,0 +1,78 @@
package com.dpkj.modules.scanface.ali.dll;
import com.sun.jna.Callback;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.win32.DLLCallback;
import lombok.extern.slf4j.Slf4j;
/**
* @Auther: 萧道子
* @Date: 2025/4/16
* @Description: 阿里扫脸程序
*/
@Slf4j
public class AliScanFaceDll {
/**
* 获取 Dll 实例同时注册 Dll 控件
*
* @return AlipayDll 实例
* @throws DllRegistrationException 如果注册控件失败抛出此异常
*/
public static Dll instance() throws DllRegistrationException {
try {
return Native.load("AliScanFace", Dll.class);
} catch (UnsatisfiedLinkError e) {
log.info("[AliScanFaceDll][instance][阿里扫脸动态库] SDK注册失败{}", e.getMessage());
throw new DllRegistrationException("Failed to load AliScanFace library: ", e);
}
}
/**
* 定义自定义异常类用于表示注册控件时发生的错误
*/
public static class DllRegistrationException extends Exception {
public DllRegistrationException(String message) {
super(message);
}
public DllRegistrationException(String message, Throwable cause) {
super(message, cause);
}
}
public interface ProcessCallback extends DLLCallback {
void invoke(Object obj);
}
public interface FinishCallback extends DLLCallback {
void invoke(Object obj);
}
/**
* 定义接口映射本地库中的函数
*/
public interface Dll extends Library {
void bp_api_set_isv_lan(Integer type_isv_language);// 0:cpp | 1:cshap | 2:jni | 3:jna
void abcp_init(Integer arg, String app_id, String app_version, String json_param, Callback on_process, Callback on_finish);
void abcp_start_service(Integer arg, String app_id, String service_code, String json_param, Callback on_process, Callback on_finish);
void abcp_stop_service(Integer arg, String app_id, String service_code, String json_param, Callback on_process, Callback on_finish);
void abcp_get_meta_info(Integer arg, String app_id, String json_param, Callback on_process, Callback on_finish);
void abcp_stop_smile(Integer arg, String app_id, String json_param, Callback on_process, Callback on_finish);
void abcp_zimid_init_for_test(Integer arg, String zimmetainfo, String smileType, String smileFlag, Callback callback);
void abcp_call(Integer arg, String app_id, String call_method, String json_param, Callback on_process, Callback on_finish);
}
}

View File

@ -0,0 +1,4 @@
package com.dpkj.modules.scanface.ali.service;
public interface IAliScanFaceService {
}

View File

@ -0,0 +1,17 @@
package com.dpkj.modules.scanface.ali.service.impl;
import com.dpkj.modules.scanface.ali.service.IAliScanFaceService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @Auther: 萧道子
* @Date: 2025/4/16 16:47
* @Description:
*/
@Service
@AllArgsConstructor
public class AliScanFaceServiceImpl implements IAliScanFaceService {
}

Binary file not shown.