提交
This commit is contained in:
97
ruoyi-common/ruoyi-common-pay/pom.xml
Normal file
97
ruoyi-common/ruoyi-common-pay/pom.xml
Normal file
@@ -0,0 +1,97 @@
|
||||
<?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 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>ruoyi-common-pay</artifactId>
|
||||
|
||||
<description>
|
||||
ruoyi-common-pay 拉卡拉支付服务
|
||||
</description>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!--<dependency>
|
||||
<groupId>com.lkl.laop.sdk</groupId>
|
||||
<artifactId>lkl-java-sdk</artifactId>
|
||||
<version>1.0.7</version>
|
||||
</dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.lkl.laop.sdk</groupId>
|
||||
<artifactId>lkl-laop-java-sdk</artifactId>
|
||||
<version>1.0.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>4.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
<artifactId>okhttp</artifactId>
|
||||
<version>4.12.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
<version>2.0.53</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.vaadin.external.google</groupId>
|
||||
<artifactId>android-json</artifactId>
|
||||
<version>0.0.20131108.vaadin1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
<version>20240303</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.13</version> <!-- 请根据需要选择版本 -->
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-core</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo;
|
||||
|
||||
import com.lkl.laop.sdk.utils.JsonUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/5/17 10:20
|
||||
* @description 用于测试demo中接口是否均能正常响应
|
||||
*/
|
||||
public class AutoTest {
|
||||
public static void main(String[] args) throws Exception {
|
||||
String packageName = "com.lakala.zf.laop.java.sdk.demo.v2";
|
||||
List<Class<?>> classes = getClasses(packageName);
|
||||
|
||||
String packageName2 = "com.lakala.zf.laop.java.sdk.demo.v3";
|
||||
classes.addAll(getClasses(packageName2));
|
||||
|
||||
List<Class<?>> errorClasses = new ArrayList<>();
|
||||
for (Class<?> clazz : classes) {
|
||||
if (hasMainMethod(clazz)) {
|
||||
Method mainMethod = clazz.getDeclaredMethod("main", String[].class);
|
||||
try {
|
||||
mainMethod.invoke(null, (Object) new String[0]);
|
||||
} catch (Exception e) {
|
||||
errorClasses.add(clazz);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
System.out.println("========接口demo执行完成=======");
|
||||
System.out.printf("========失败信息:%s=======%n", JsonUtils.toJSONString(errorClasses));
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static boolean hasMainMethod(Class<?> clazz) {
|
||||
for (Method method : clazz.getDeclaredMethods()) {
|
||||
if (method.getName().equals("main")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static List<Class<?>> getClasses(String packageName) throws ClassNotFoundException, IOException {
|
||||
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
||||
String path = packageName.replace('.', '/');
|
||||
Enumeration<URL> resources = classLoader.getResources(path);
|
||||
List<File> dirs = new ArrayList<>();
|
||||
while (resources.hasMoreElements()) {
|
||||
URL resource = resources.nextElement();
|
||||
dirs.add(new File(resource.getFile()));
|
||||
}
|
||||
ArrayList<Class<?>> classes = new ArrayList<>();
|
||||
for (File directory : dirs) {
|
||||
classes.addAll(findClasses(directory, packageName));
|
||||
}
|
||||
return classes;
|
||||
}
|
||||
|
||||
private static List<Class<?>> findClasses(File directory, String packageName) throws ClassNotFoundException {
|
||||
List<Class<?>> classes = new ArrayList<>();
|
||||
if (!directory.exists()) {
|
||||
return classes;
|
||||
}
|
||||
File[] files = directory.listFiles();
|
||||
for (File file : files) {
|
||||
if (file.isDirectory()) {
|
||||
assert !file.getName().contains(".");
|
||||
classes.addAll(findClasses(file, packageName + "." + file.getName()));
|
||||
} else if (file.getName().endsWith(".class")) {
|
||||
classes.add(Class.forName(packageName + '.' + file.getName().substring(0, file.getName().length() - 6)));
|
||||
}
|
||||
}
|
||||
return classes;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo;
|
||||
|
||||
import com.lkl.laop.sdk.Config;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.exception.SDKException;
|
||||
|
||||
/***
|
||||
* @Description 功能描述:使用Java配置方式初始化SDK
|
||||
* @Date 2023/7/19 15:41
|
||||
*/
|
||||
public class BaseCommonDemo {
|
||||
|
||||
// 拉卡拉appId
|
||||
private static final String appId = "OP10000499";
|
||||
|
||||
// 你的证书序列号
|
||||
private static final String serialNo = "0195119ac8ac";
|
||||
|
||||
/*//商户私钥信息地址
|
||||
private static final String priKeyPath = "D:\\manage\\jcs\\OP10000499商户私钥.txt";
|
||||
|
||||
//拉卡拉支付平台证书地址
|
||||
private static final String lklCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";
|
||||
|
||||
//拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
|
||||
private static final String lklNotifyCerPath = "D:\\manage\\jcs\\平台公钥生产.cer";*/
|
||||
|
||||
|
||||
//商户私钥信息地址
|
||||
private static final String priKeyPath = "/home/manage/jcs/OP10000499商户私钥.txt";
|
||||
|
||||
//拉卡拉支付平台证书地址
|
||||
private static final String lklCerPath = "/home/manage/jcs/平台公钥生产.cer";
|
||||
|
||||
//拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
|
||||
private static final String lklNotifyCerPath = "/home/manage/jcs/平台公钥生产.cer";
|
||||
|
||||
/**
|
||||
* 拉卡拉报文加密对称性密钥
|
||||
*/
|
||||
private static final String sm4Key = "uIj6CPg1GZAY10dXFfsEAQ==";
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
private static final String serverUrl = "https://s2.lakala.com";
|
||||
|
||||
private static volatile boolean init = false;
|
||||
|
||||
/***
|
||||
* @Description: 初始化设置商户公共参数(全局只需设置一次)
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void doInit() throws Exception {
|
||||
if(!init) {
|
||||
init = initByJava();
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean initByJava() throws SDKException {
|
||||
Config config = new Config();
|
||||
config.setAppId(appId);
|
||||
config.setSerialNo(serialNo);
|
||||
config.setPriKeyPath(priKeyPath);
|
||||
config.setLklCerPath(lklCerPath);
|
||||
config.setLklNotifyCerPath(lklNotifyCerPath);
|
||||
config.setServerUrl(serverUrl);
|
||||
config.setSm4Key(sm4Key);
|
||||
return LKLSDK.init(config);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo;
|
||||
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.exception.SDKException;
|
||||
|
||||
/***
|
||||
* @author admin
|
||||
* @Description 功能描述:使用properties文件配置方式初始化SDK
|
||||
* @Date 2023/7/19 15:41
|
||||
*/
|
||||
public class BaseCommonDemo2 {
|
||||
|
||||
// private static String configPath = "ruoyi-common/ruoyi-common-pay/src/main/resources/lkl-sdk-config.properties";
|
||||
|
||||
private static String configPath = "ruoyi-common/ruoyi-common-pay/src/main/resources/lkl-sdk-config-prod.properties";
|
||||
|
||||
private static boolean init = false;
|
||||
|
||||
/***
|
||||
* @Description: 初始化设置商户公共参数(全局只需设置一次)
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void doInit() throws Exception {
|
||||
if (!init) {
|
||||
init = initByFile();
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean initByFile() throws SDKException {
|
||||
return LKLSDK.init(configPath);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo;
|
||||
|
||||
//import com.lkl.laop.sdk.Config2;
|
||||
|
||||
import com.lkl.laop.sdk.exception.SDKException;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/5/13 11:07
|
||||
* @description 支持证书以字符串形式传入
|
||||
*/
|
||||
public class BaseCommonDemo3 {
|
||||
|
||||
private static final String appId = "OP00000003"; // 拉卡拉appId
|
||||
private static final String serialNo = "00dfba8194c41b84cf"; // 你的证书序列号
|
||||
/**
|
||||
* 商户私钥信息
|
||||
*/
|
||||
private static final String priKeyStr = "-----BEGIN PRIVATE KEY-----\n" +
|
||||
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx\n" +
|
||||
"rIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M\n" +
|
||||
"8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD\n" +
|
||||
"ZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW\n" +
|
||||
"dhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN\n" +
|
||||
"rpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1\n" +
|
||||
"5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4\n" +
|
||||
"mE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7\n" +
|
||||
"qCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK\n" +
|
||||
"NXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X\n" +
|
||||
"3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK\n" +
|
||||
"TPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk\n" +
|
||||
"9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH\n" +
|
||||
"STTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0\n" +
|
||||
"Zr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv\n" +
|
||||
"AtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI\n" +
|
||||
"RgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke\n" +
|
||||
"MzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4\n" +
|
||||
"8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP\n" +
|
||||
"scd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi\n" +
|
||||
"bEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn\n" +
|
||||
"Ll2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz\n" +
|
||||
"NzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j\n" +
|
||||
"Aylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq\n" +
|
||||
"CHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6\n" +
|
||||
"QsFLQgFyXgvDnzr/o+hQJelW\n" +
|
||||
"-----END PRIVATE KEY-----";
|
||||
/**
|
||||
* 拉卡拉支付平台证书
|
||||
*/
|
||||
private static final String lklCerStr = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIEMTCCAxmgAwIBAgIGAXRTgcMnMA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT\n" +
|
||||
"AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK\n" +
|
||||
"DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW\n" +
|
||||
"YWxpZGF0aW9uIENBMB4XDTIwMTAxMDA1MjQxNFoXDTMwMTAwODA1MjQxNFowZTEL\n" +
|
||||
"MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx\n" +
|
||||
"FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu\n" +
|
||||
"Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt1zHL54HiI8d2sLJ\n" +
|
||||
"lwoQji3/ln0nsvfZ/XVpOjuB+1YR6/0LdxEDMC/hxI6iH2Rm5MjwWz3dmN/6BZeI\n" +
|
||||
"gwGeTOWJUZFARo8UduKrlhC6gWMRpAiiGC8wA8stikc5gYB+UeFVZi/aJ0WN0cpP\n" +
|
||||
"JYCvPBhxhMvhVDnd4hNohnR1L7k0ypuWg0YwGjC25FaNAEFBYP9EYUyCJjE//9Z7\n" +
|
||||
"sMzHR9SJYCqqo6r9bOH9G6sWKuEp+osuAh+kJIxJMHfipw7w3tEcWG0hce9u/el4\n" +
|
||||
"cYJtg8/PPMVoccKmeCzMvarr7jdKP4lenJbtwlgyfs+JgNu60KMUJH8RS72wC9NY\n" +
|
||||
"uFz09wIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo\n" +
|
||||
"dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE\n" +
|
||||
"BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh\n" +
|
||||
"a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFJ2Kx9YZfmWpkKFnC33C0r5D\n" +
|
||||
"K3rFMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA\n" +
|
||||
"A4IBAQBZoeU0XyH9O0LGF9R+JyGwfU/O5amoB97VeM+5n9v2z8OCiIJ8eXVGKN9L\n" +
|
||||
"tl9QkpTEanYwK30KkpHcJP1xfVkhPi/cCMgfTWQ5eKYC7Zm16zk7n4CP6IIgZIqm\n" +
|
||||
"TVGsIGKk8RzWseyWPB3lfqMDR52V1tdA1S8lJ7a2Xnpt5M2jkDXoArl3SVSwCb4D\n" +
|
||||
"AmThYhak48M++fUJNYII9JBGRdRGbfJ2GSFdPXgesUL2CwlReQwbW4GZkYGOg9LK\n" +
|
||||
"CNPK6XShlNdvgPv0CCR08KCYRwC3HZ0y1F0NjaKzYdGNPrvOq9lA495ONZCvzYDo\n" +
|
||||
"gmsu/kd6eqxTs/JwdaIYr4sCMg8Z\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
/**
|
||||
* 拉卡拉支付平台证书2(用于拉卡拉通知验签)
|
||||
*/
|
||||
private static final String lklNotifyCerStr = "-----BEGIN CERTIFICATE-----\n" +
|
||||
"MIIEMTCCAxmgAwIBAgIGAXRTgcMnMA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT\n" +
|
||||
"AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK\n" +
|
||||
"DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW\n" +
|
||||
"YWxpZGF0aW9uIENBMB4XDTIwMTAxMDA1MjQxNFoXDTMwMTAwODA1MjQxNFowZTEL\n" +
|
||||
"MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx\n" +
|
||||
"FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu\n" +
|
||||
"Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt1zHL54HiI8d2sLJ\n" +
|
||||
"lwoQji3/ln0nsvfZ/XVpOjuB+1YR6/0LdxEDMC/hxI6iH2Rm5MjwWz3dmN/6BZeI\n" +
|
||||
"gwGeTOWJUZFARo8UduKrlhC6gWMRpAiiGC8wA8stikc5gYB+UeFVZi/aJ0WN0cpP\n" +
|
||||
"JYCvPBhxhMvhVDnd4hNohnR1L7k0ypuWg0YwGjC25FaNAEFBYP9EYUyCJjE//9Z7\n" +
|
||||
"sMzHR9SJYCqqo6r9bOH9G6sWKuEp+osuAh+kJIxJMHfipw7w3tEcWG0hce9u/el4\n" +
|
||||
"cYJtg8/PPMVoccKmeCzMvarr7jdKP4lenJbtwlgyfs+JgNu60KMUJH8RS72wC9NY\n" +
|
||||
"uFz09wIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo\n" +
|
||||
"dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE\n" +
|
||||
"BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh\n" +
|
||||
"a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFJ2Kx9YZfmWpkKFnC33C0r5D\n" +
|
||||
"K3rFMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA\n" +
|
||||
"A4IBAQBZoeU0XyH9O0LGF9R+JyGwfU/O5amoB97VeM+5n9v2z8OCiIJ8eXVGKN9L\n" +
|
||||
"tl9QkpTEanYwK30KkpHcJP1xfVkhPi/cCMgfTWQ5eKYC7Zm16zk7n4CP6IIgZIqm\n" +
|
||||
"TVGsIGKk8RzWseyWPB3lfqMDR52V1tdA1S8lJ7a2Xnpt5M2jkDXoArl3SVSwCb4D\n" +
|
||||
"AmThYhak48M++fUJNYII9JBGRdRGbfJ2GSFdPXgesUL2CwlReQwbW4GZkYGOg9LK\n" +
|
||||
"CNPK6XShlNdvgPv0CCR08KCYRwC3HZ0y1F0NjaKzYdGNPrvOq9lA495ONZCvzYDo\n" +
|
||||
"gmsu/kd6eqxTs/JwdaIYr4sCMg8Z\n" +
|
||||
"-----END CERTIFICATE-----";
|
||||
/**
|
||||
* 拉卡拉报文加密对称性密钥
|
||||
*/
|
||||
private static final String sm4Key = "uIj6CPg1GZAY10dXFfsEAQ==";
|
||||
/**
|
||||
* 服务地址
|
||||
*/
|
||||
private static final String serverUrl = "https://test.wsmsd.cn/sit";
|
||||
|
||||
private static volatile boolean init = false;
|
||||
|
||||
/***
|
||||
* @Description: 初始化设置商户公共参数(全局只需设置一次)
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void doInit() throws Exception {
|
||||
if (!init) {
|
||||
init = initByJava();
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean initByJava() throws SDKException {
|
||||
/*Config2 config = new Config2();
|
||||
config.setAppId(appId);
|
||||
config.setSerialNo(serialNo);
|
||||
config.setPriKey(priKeyStr);
|
||||
config.setLklCer(lklCerStr);
|
||||
config.setLklNotifyCer(lklNotifyCerStr);
|
||||
config.setServerUrl(serverUrl);
|
||||
config.setSm4Key(sm4Key);
|
||||
return LKLSDK.init(config);*/
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 添加银行卡请求参数
|
||||
* @author Maosw
|
||||
*/
|
||||
@Data
|
||||
public class AddOrUpdateBankCardReq {
|
||||
/**
|
||||
* id:用户标识是新增还是修改
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String acctName;
|
||||
|
||||
/**
|
||||
* 身份证号
|
||||
*/
|
||||
private String acctCertificateNo;
|
||||
|
||||
/**
|
||||
* 卡号
|
||||
*/
|
||||
private String acctNo;
|
||||
|
||||
/**
|
||||
* 开户行
|
||||
*/
|
||||
private String acctOpenBankName;
|
||||
|
||||
/**
|
||||
* 签名
|
||||
*/
|
||||
private String signature;
|
||||
|
||||
/**
|
||||
* 协议图片
|
||||
*/
|
||||
private String cooperateAgreementImage;
|
||||
|
||||
/**
|
||||
* 附件资料
|
||||
*/
|
||||
private List<Attach> attachList;
|
||||
|
||||
@Data
|
||||
public static class Attach {
|
||||
/**
|
||||
* 附件类型:1-身份证正面 2-身份证反面 3-银行卡 4-营业执照 5-合作协议-纸质版 6-合作协议-电子版
|
||||
*/
|
||||
private String attachType;
|
||||
|
||||
/**
|
||||
* 附件名称
|
||||
*/
|
||||
private String attachName;
|
||||
|
||||
/**
|
||||
* 附件地址
|
||||
*/
|
||||
private String attachStorePath;
|
||||
|
||||
/**
|
||||
* 前端不管
|
||||
*/
|
||||
private String klkPath;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author Maosw
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AgreementReq extends AddOrUpdateBankCardReq{
|
||||
|
||||
private String code;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分账接收方信息变更请求参数
|
||||
* @author admin
|
||||
*/
|
||||
@Data
|
||||
public class UpdateBankCardReq {
|
||||
|
||||
/**
|
||||
* 姓名
|
||||
*/
|
||||
private String acctName;
|
||||
|
||||
/**
|
||||
* 身份证号
|
||||
*/
|
||||
private String acctCertificateNo;
|
||||
|
||||
/**
|
||||
* 卡号
|
||||
*/
|
||||
private String acctNo;
|
||||
|
||||
/**
|
||||
* 开户行
|
||||
*/
|
||||
private String acctOpenBankName;
|
||||
|
||||
/**
|
||||
* 附件资料
|
||||
*/
|
||||
private List<AddOrUpdateBankCardReq.Attach> attachList;
|
||||
|
||||
@Data
|
||||
public static class Attach {
|
||||
/**
|
||||
* 附件类型:1-身份证正面 2-身份证反面 3-银行卡 4-营业执照 5-合作协议-纸质版 6-合作协议-电子版
|
||||
*/
|
||||
private String attachType;
|
||||
|
||||
/**
|
||||
* 附件名称
|
||||
*/
|
||||
private String attachName;
|
||||
|
||||
/**
|
||||
* 附件地址
|
||||
*/
|
||||
private String attachStorePath;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 前端不管
|
||||
*/
|
||||
private String klkPath;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author Maosw
|
||||
*/
|
||||
@Data
|
||||
public class UploadFileBo {
|
||||
|
||||
/**
|
||||
* 文件类型
|
||||
*/
|
||||
private String attType;
|
||||
|
||||
/**
|
||||
* 文件后缀
|
||||
*/
|
||||
private String attExtName;
|
||||
|
||||
/**
|
||||
* 文件内容
|
||||
*/
|
||||
private String attContext;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 附件上传请求参数
|
||||
* @author admin
|
||||
*/
|
||||
@Data
|
||||
public class UploadFileReq {
|
||||
/**
|
||||
* 1-身份证正面 2-身份证反面 3-银行卡 4-营业执照 5-合作协议-纸质版 6-合作协议-电子版
|
||||
*/
|
||||
private String attType;
|
||||
|
||||
/**
|
||||
* 附件扩展名称:如 jpg | png | pdf
|
||||
*/
|
||||
private String attExtName;
|
||||
|
||||
/**
|
||||
* 附件内容:将文件内容转Base64字符串
|
||||
*/
|
||||
private String attContext;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
package com.lakala.zf.laop.java.sdk.demo.extend;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.lkl.laop.sdk.request.V3CcssCounterOrderSpecialCreateRequest;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 16:31
|
||||
* @description 实体增加字段 -> 继承原实体重写字段. 想对哪层实体字段重写就继承哪个实体
|
||||
*//*
|
||||
|
||||
public class V3CcssCounterOrderSpecialCreateRequestExtend extends V3CcssCounterOrderSpecialCreateRequest {
|
||||
|
||||
*/
|
||||
/**
|
||||
* 增加外层扩展字段
|
||||
*//*
|
||||
|
||||
@JsonProperty("ext_filed1")
|
||||
private String extFiled1;
|
||||
|
||||
|
||||
public String getExtFiled1() {
|
||||
return extFiled1;
|
||||
}
|
||||
|
||||
public void setExtFiled1(String extFiled1) {
|
||||
this.extFiled1 = extFiled1;
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -0,0 +1,172 @@
|
||||
/*
|
||||
package com.lakala.zf.laop.java.sdk.demo.extend;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.exception.SDKException;
|
||||
import com.lkl.laop.sdk.request.V3CcssCounterOrderSpecialCreateRequest;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderSceneFieldInfo;
|
||||
import com.lkl.laop.sdk.utils.JsonUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2023/8/16 15:33
|
||||
* @description 实体扩展-收银台订单创建 DEMO
|
||||
*//*
|
||||
|
||||
public class V3CcssCounterOrderSpecialCreateRequestExtendDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
//增加实体一级参数demo
|
||||
extendFirstStruct();
|
||||
//增加实体二级参数demo
|
||||
extendSecondStruct();
|
||||
//增加调用sdk未封装接口demo
|
||||
extendAllStruct();
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 增加实体最外层字段
|
||||
* > 重写实体继承原实体
|
||||
*
|
||||
* @see V3CcssCounterOrderSpecialCreateRequestExtend 继承
|
||||
* @see V3CcssCounterOrderSpecialCreateRequest
|
||||
*//*
|
||||
|
||||
private static void extendFirstStruct() throws SDKException {
|
||||
// 创建自定义实体V3CcssCounterOrderSpecialCreateRequestExtend 继承V3CcssCounterOrderSpecialCreateRequest
|
||||
V3CcssCounterOrderSpecialCreateRequestExtend req = new V3CcssCounterOrderSpecialCreateRequestExtend();
|
||||
req.setOutOrderNo("8221210594300JY" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
|
||||
req.setMerchantNo("8221210594300JY");
|
||||
req.setTotalAmount(10L);
|
||||
req.setOrderEfficientTime("20230824155923");
|
||||
req.setNotifyUrl("http://run.mocky.io/v3/b02c9448-20a2-4ff6-a678-38ecab30161d");
|
||||
req.setSupportRefund(1);
|
||||
req.setSupportRepeatPay(1);
|
||||
req.setCounterParam("{\"pay_mode\":\"ALIPAY\"}");
|
||||
req.setSupportCancel(0);
|
||||
req.setBusiTypeParam("[{\"busi_type\":\"UPCARD\",\"params\":{\"crd_flg\":\"CRDFLG_D|CRDFLG_C|CRDFLG_OTH\"}},{\"busi_type\":\"SCPAY\",\"params\":{\"pay_mode\":\"WECHAT\",\"crd_flg\":\"CRDFLG_D\"}}]");
|
||||
req.setOrderInfo("测试12313131");
|
||||
req.setTermNo("T12331234");
|
||||
List<String> sgnInfos = new ArrayList<>();
|
||||
sgnInfos.add("1");
|
||||
req.setSgnInfo(sgnInfos);
|
||||
|
||||
V3CcssOrderSceneFieldInfo info = new V3CcssOrderSceneFieldInfo();
|
||||
V3CcssOrderSceneFieldInfo.HbFqSceneInfo hbFqSceneInfo = new V3CcssOrderSceneFieldInfo.HbFqSceneInfo();
|
||||
hbFqSceneInfo.setHbFqNum("3");
|
||||
hbFqSceneInfo.setHbFqSellerPercent("0");
|
||||
info.setSceneInfo(JsonUtils.toJSONString(hbFqSceneInfo));
|
||||
info.setOrderSceneType("HB_FQ");
|
||||
req.setOrderSceneField(info);
|
||||
|
||||
//====================== 增加下面字段 ===============
|
||||
req.setExtFiled1("扩展字段1");
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 增加实体内层嵌套实体字段
|
||||
* > 重写嵌套实体继承原实体
|
||||
*
|
||||
* @see V3CcssOrderSceneFieldInfoExtend 继承
|
||||
* @see V3CcssOrderSceneFieldInfo
|
||||
*//*
|
||||
|
||||
private static void extendSecondStruct() throws SDKException {
|
||||
|
||||
V3CcssCounterOrderSpecialCreateRequest req = new V3CcssCounterOrderSpecialCreateRequest();
|
||||
req.setOutOrderNo("8221210594300JY" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
|
||||
req.setMerchantNo("8221210594300JY");
|
||||
req.setTotalAmount(10L);
|
||||
req.setOrderEfficientTime("20230824155923");
|
||||
req.setNotifyUrl("http://run.mocky.io/v3/b02c9448-20a2-4ff6-a678-38ecab30161d");
|
||||
req.setSupportRefund(1);
|
||||
req.setSupportRepeatPay(1);
|
||||
req.setCounterParam("{\"pay_mode\":\"ALIPAY\"}");
|
||||
req.setSupportCancel(0);
|
||||
req.setBusiTypeParam("[{\"busi_type\":\"UPCARD\",\"params\":{\"crd_flg\":\"CRDFLG_D|CRDFLG_C|CRDFLG_OTH\"}},{\"busi_type\":\"SCPAY\",\"params\":{\"pay_mode\":\"WECHAT\",\"crd_flg\":\"CRDFLG_D\"}}]");
|
||||
req.setOrderInfo("测试12313131");
|
||||
req.setTermNo("T12331234");
|
||||
List<String> sgnInfos = new ArrayList<>();
|
||||
sgnInfos.add("1");
|
||||
req.setSgnInfo(sgnInfos);
|
||||
|
||||
//创建自定义实体继承 V3CcssOrderSceneFieldInfo
|
||||
V3CcssOrderSceneFieldInfoExtend info = new V3CcssOrderSceneFieldInfoExtend();
|
||||
V3CcssOrderSceneFieldInfo.HbFqSceneInfo hbFqSceneInfo = new V3CcssOrderSceneFieldInfo.HbFqSceneInfo();
|
||||
hbFqSceneInfo.setHbFqNum("3");
|
||||
hbFqSceneInfo.setHbFqSellerPercent("0");
|
||||
info.setSceneInfo(JsonUtils.toJSONString(hbFqSceneInfo));
|
||||
info.setOrderSceneType("HB_FQ");
|
||||
|
||||
//----- 增加内部结构字段
|
||||
info.setSecondExtFiled1("内部扩展字段");
|
||||
|
||||
req.setOrderSceneField(info);
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 增加自定义实体(sdk未封装接口)
|
||||
* > v2接口继承
|
||||
*
|
||||
* @see com.lkl.laop.sdk.request.V2CommRequest
|
||||
* > v3接口继承
|
||||
* @see com.lkl.laop.sdk.request.V3CommRequest
|
||||
*//*
|
||||
|
||||
private static void extendAllStruct() throws SDKException {
|
||||
//创建 V3ExtendRequest 继承 V3CommRequest
|
||||
V3ExtendRequest req = new V3ExtendRequest();
|
||||
req.setOutOrderNo("8221210594300JY" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
|
||||
req.setMerchantNo("8221210594300JY");
|
||||
req.setTotalAmount(10L);
|
||||
req.setOrderEfficientTime("20230824155923");
|
||||
req.setNotifyUrl("http://run.mocky.io/v3/b02c9448-20a2-4ff6-a678-38ecab30161d");
|
||||
req.setSupportRefund(1);
|
||||
req.setSupportRepeatPay(1);
|
||||
req.setCounterParam("{\"pay_mode\":\"ALIPAY\"}");
|
||||
req.setSupportCancel(0);
|
||||
req.setBusiTypeParam("[{\"busi_type\":\"UPCARD\",\"params\":{\"crd_flg\":\"CRDFLG_D|CRDFLG_C|CRDFLG_OTH\"}},{\"busi_type\":\"SCPAY\",\"params\":{\"pay_mode\":\"WECHAT\",\"crd_flg\":\"CRDFLG_D\"}}]");
|
||||
req.setOrderInfo("测试12313131");
|
||||
req.setTermNo("T12331234");
|
||||
List<String> sgnInfos = new ArrayList<>();
|
||||
sgnInfos.add("1");
|
||||
req.setSgnInfo(sgnInfos);
|
||||
|
||||
V3CcssOrderSceneFieldInfo info = new V3CcssOrderSceneFieldInfo();
|
||||
V3CcssOrderSceneFieldInfo.HbFqSceneInfo hbFqSceneInfo = new V3CcssOrderSceneFieldInfo.HbFqSceneInfo();
|
||||
hbFqSceneInfo.setHbFqNum("3");
|
||||
hbFqSceneInfo.setHbFqSellerPercent("0");
|
||||
info.setSceneInfo(JsonUtils.toJSONString(hbFqSceneInfo));
|
||||
info.setOrderSceneType("HB_FQ");
|
||||
req.setOrderSceneField(info);
|
||||
//========================== 发送请求使用此方法 ==========================
|
||||
//参数需要加密时 使用 LKLSDK.sm4Encrypt(req.toBody(); 自行加密
|
||||
String response = LKLSDK.httpPost("https://test.wsmsd.cn/sit/api/v3/ccss/counter/order/create",req.toBody());
|
||||
//解密时 使用 LKLSDK.sm4Decrypt(response); 自行解密
|
||||
|
||||
//响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.extend;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderSceneFieldInfo;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 16:35
|
||||
* @description 内部实体扩展
|
||||
*/
|
||||
public class V3CcssOrderSceneFieldInfoExtend extends V3CcssOrderSceneFieldInfo {
|
||||
|
||||
/**
|
||||
* 内部实体增加字段
|
||||
*/
|
||||
@JsonProperty("second_ext_filed1")
|
||||
private String secondExtFiled1;
|
||||
|
||||
public String getSecondExtFiled1() {
|
||||
return secondExtFiled1;
|
||||
}
|
||||
|
||||
public void setSecondExtFiled1(String secondExtFiled1) {
|
||||
this.secondExtFiled1 = secondExtFiled1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,681 @@
|
||||
/*
|
||||
package com.lakala.zf.laop.java.sdk.demo.extend;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.lkl.laop.sdk.enums.FunctionCodeEnum;
|
||||
import com.lkl.laop.sdk.request.V3CcssCounterOrderSpecialCreateRequest;
|
||||
import com.lkl.laop.sdk.request.V3CommRequest;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderGoodsFieldInfo;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderOutSplitInfo;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderSceneFieldInfo;
|
||||
import com.lkl.laop.sdk.request.model.V3TransIdentityInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 16:59
|
||||
* @description 自定义实体调sdk未封装接口;FunctionCodeEnum无需设置
|
||||
*//*
|
||||
|
||||
public class V3ExtendRequest extends V3CommRequest {
|
||||
*/
|
||||
/**
|
||||
* 商户订单号
|
||||
* M
|
||||
*//*
|
||||
|
||||
@JsonProperty("out_order_no")
|
||||
private String outOrderNo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 银联商户号
|
||||
* M
|
||||
*//*
|
||||
|
||||
@JsonProperty("merchant_no")
|
||||
private String merchantNo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 交易设备标识
|
||||
* C
|
||||
* 非合单场景必输该字段,进件返回接口中的termId字段,非API接口进件请联系业务员。
|
||||
*//*
|
||||
|
||||
@JsonProperty("vpos_id")
|
||||
private String vposId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 渠道号
|
||||
* C
|
||||
* 一般不用
|
||||
*//*
|
||||
|
||||
@JsonProperty("channel_id")
|
||||
private String channelId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 业务模式
|
||||
* C
|
||||
* ACQ-收单 默认为“ACQ-收单”
|
||||
* PAY-付款
|
||||
*//*
|
||||
|
||||
@JsonProperty("busi_mode")
|
||||
private String busiMode;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 订单金额
|
||||
* M
|
||||
* 单位:分
|
||||
*//*
|
||||
|
||||
@JsonProperty("total_amount")
|
||||
private Long totalAmount;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 订单有效期
|
||||
* M
|
||||
* 格式yyyyMMddHHmmss
|
||||
*//*
|
||||
|
||||
@JsonProperty("order_efficient_time")
|
||||
private String orderEfficientTime;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 订单支付成功后商户接收订单通知的地址
|
||||
* C
|
||||
*//*
|
||||
|
||||
@JsonProperty("notify_url")
|
||||
private String notifyUrl;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 是否支持撤销
|
||||
* C
|
||||
* 默认 0 不支持;busi_mode为“PAY-付款”不支持 撤销
|
||||
* 0 不支持 1支持
|
||||
*//*
|
||||
|
||||
@JsonProperty("support_cancel")
|
||||
private Integer supportCancel;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 是否支持退款
|
||||
* C
|
||||
* 默认0 不支持
|
||||
* 0 不支持 1支持
|
||||
*//*
|
||||
|
||||
@JsonProperty("support_refund")
|
||||
private Integer supportRefund;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 是否支持“多次发起支付”
|
||||
* C
|
||||
* 默认0 不支持
|
||||
* 0 不支持 1支持
|
||||
*//*
|
||||
|
||||
@JsonProperty("support_repeat_pay")
|
||||
private Integer supportRepeatPay;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 发起订单方的userId
|
||||
* C
|
||||
* 归属于channelId下的userId
|
||||
*//*
|
||||
|
||||
@JsonProperty("out_user_id")
|
||||
private String outUserId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 客户端下单完成支付后返回的商户网页跳转地址。
|
||||
* C
|
||||
*//*
|
||||
|
||||
@JsonProperty("callback_url")
|
||||
private String callbackUrl;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 订单标题
|
||||
* M
|
||||
* 在使用收银台扫码支付时必输入,交易时送往账户端
|
||||
*//*
|
||||
|
||||
@JsonProperty("order_info")
|
||||
private String orderInfo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 结算终端号
|
||||
* C
|
||||
* 合单场景必输该字段
|
||||
*//*
|
||||
|
||||
@JsonProperty("term_no")
|
||||
private String termNo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 合单标识
|
||||
* C
|
||||
* “1”为合单,不填默认是为非合单
|
||||
*//*
|
||||
|
||||
@JsonProperty("split_mark")
|
||||
private String splitMark;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 结算类型(非合单)
|
||||
* C
|
||||
* “0”或者空,常规结算方式 注意:该字段会影响结算方式,慎用。(调用拉卡拉分账接口需必传)
|
||||
*//*
|
||||
|
||||
@JsonProperty("settle_type")
|
||||
private String settleType;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 拆单信息
|
||||
* C
|
||||
* 合单标识为“1”时必传该字段。
|
||||
*//*
|
||||
|
||||
@JsonProperty("out_split_info")
|
||||
private List<V3CcssOrderOutSplitInfo> outSplitInfo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* json字符串 收银台参数
|
||||
* C
|
||||
*//*
|
||||
|
||||
@JsonProperty("counter_param")
|
||||
private String counterParam;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 收银台下单备注
|
||||
* C
|
||||
*//*
|
||||
|
||||
@JsonProperty("counter_remark")
|
||||
private String counterRemark;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 业务类型控制参数,jsonStr格式
|
||||
* C
|
||||
*//*
|
||||
|
||||
@JsonProperty("busi_type_param")
|
||||
private String busiTypeParam;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 签约协议号列表(字符串)
|
||||
* C
|
||||
* 列表中签约协议号不能为空;列表中签约协议号不能重复
|
||||
*//*
|
||||
|
||||
@JsonProperty("sgn_info")
|
||||
private List<String> sgnInfo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 转账支付时可以上送
|
||||
* C
|
||||
* 全报文加密接口可上送
|
||||
*//*
|
||||
|
||||
@JsonProperty("transfer_field")
|
||||
private V3CcssCounterOrderSpecialCreateRequest.TransferField transferField;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 实名信息 json字符串
|
||||
* C
|
||||
* 全报文加密接口可上送
|
||||
* @see V3TransIdentityInfo
|
||||
*//*
|
||||
|
||||
@JsonProperty("identity_info")
|
||||
private String identityInfo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 指定产品编号 (200809:线上外卡收银台)
|
||||
* O
|
||||
* 该字段默认不需要指定,特殊场景下使用,慎用
|
||||
*//*
|
||||
|
||||
@JsonProperty("product_id")
|
||||
private String productId;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 商品信息标识
|
||||
* O
|
||||
* 1:含商品信息,不填默认不含商品信息
|
||||
*//*
|
||||
|
||||
@JsonProperty("goods_mark")
|
||||
private String goodsMark;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 商品信息域
|
||||
* O
|
||||
* good_mark送1时该域必填,否则不送。只有线上外卡业务上送该字段
|
||||
*
|
||||
* @see V3CcssOrderGoodsFieldInfo
|
||||
*//*
|
||||
|
||||
@JsonProperty("goods_field")
|
||||
private String goodsField;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 订单场景域,特殊场景下需要上送
|
||||
* O
|
||||
*//*
|
||||
|
||||
@JsonProperty("order_scene_field")
|
||||
private V3CcssOrderSceneFieldInfo orderSceneField;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 年龄限制
|
||||
* C
|
||||
* 0:不限年龄;1:年龄限制
|
||||
*//*
|
||||
|
||||
@JsonProperty("age_limit")
|
||||
private String ageLimit;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 重复支付后是否自动退货
|
||||
* C
|
||||
* 0:重复支付后不自动退货;1:重复支付后自动退货 (默认不送为0),注意:请详细了解字段场景后上送
|
||||
* 需注意互斥条件:repeat_pay_auto_refund选择“1”重复支付后自动退货后,
|
||||
* repeat_pay_notify仅支持选择“0”重复支付订单不通知
|
||||
*//*
|
||||
|
||||
@JsonProperty("repeat_pay_auto_refund")
|
||||
private String repeatPayAutoRefund;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 重复支付后是否通知
|
||||
* C
|
||||
* 0:重复支付订单不通知;1:重复支付订单通知 (默认不送为0)
|
||||
*//*
|
||||
|
||||
@JsonProperty("repeat_pay_notify")
|
||||
private String repeatPayNotify;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 是否自动退货
|
||||
* C
|
||||
* 0:不自动退货;1:关闭订单后支付成功触发自动退货 (默认不送为0)注意:请详细了解字段场景后上送
|
||||
*//*
|
||||
|
||||
@JsonProperty("close_order_auto_refund")
|
||||
private String closeOrderAutoRefund;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 币种(三位数字),参见国标,默认值:156 详细见接口文档说明(待上线)
|
||||
* C
|
||||
* 特定场景下使用
|
||||
*//*
|
||||
|
||||
@JsonProperty("trans_currency")
|
||||
private String transCurrency;
|
||||
|
||||
public String getOutOrderNo() {
|
||||
return outOrderNo;
|
||||
}
|
||||
|
||||
public void setOutOrderNo(String outOrderNo) {
|
||||
this.outOrderNo = outOrderNo;
|
||||
}
|
||||
|
||||
public String getMerchantNo() {
|
||||
return merchantNo;
|
||||
}
|
||||
|
||||
public void setMerchantNo(String merchantNo) {
|
||||
this.merchantNo = merchantNo;
|
||||
}
|
||||
|
||||
public String getVposId() {
|
||||
return vposId;
|
||||
}
|
||||
|
||||
public void setVposId(String vposId) {
|
||||
this.vposId = vposId;
|
||||
}
|
||||
|
||||
public String getChannelId() {
|
||||
return channelId;
|
||||
}
|
||||
|
||||
public void setChannelId(String channelId) {
|
||||
this.channelId = channelId;
|
||||
}
|
||||
|
||||
public String getBusiMode() {
|
||||
return busiMode;
|
||||
}
|
||||
|
||||
public void setBusiMode(String busiMode) {
|
||||
this.busiMode = busiMode;
|
||||
}
|
||||
|
||||
public Long getTotalAmount() {
|
||||
return totalAmount;
|
||||
}
|
||||
|
||||
public void setTotalAmount(Long totalAmount) {
|
||||
this.totalAmount = totalAmount;
|
||||
}
|
||||
|
||||
public String getOrderEfficientTime() {
|
||||
return orderEfficientTime;
|
||||
}
|
||||
|
||||
public void setOrderEfficientTime(String orderEfficientTime) {
|
||||
this.orderEfficientTime = orderEfficientTime;
|
||||
}
|
||||
|
||||
public String getNotifyUrl() {
|
||||
return notifyUrl;
|
||||
}
|
||||
|
||||
public void setNotifyUrl(String notifyUrl) {
|
||||
this.notifyUrl = notifyUrl;
|
||||
}
|
||||
|
||||
public Integer getSupportCancel() {
|
||||
return supportCancel;
|
||||
}
|
||||
|
||||
public void setSupportCancel(Integer supportCancel) {
|
||||
this.supportCancel = supportCancel;
|
||||
}
|
||||
|
||||
public Integer getSupportRefund() {
|
||||
return supportRefund;
|
||||
}
|
||||
|
||||
public void setSupportRefund(Integer supportRefund) {
|
||||
this.supportRefund = supportRefund;
|
||||
}
|
||||
|
||||
public Integer getSupportRepeatPay() {
|
||||
return supportRepeatPay;
|
||||
}
|
||||
|
||||
public void setSupportRepeatPay(Integer supportRepeatPay) {
|
||||
this.supportRepeatPay = supportRepeatPay;
|
||||
}
|
||||
|
||||
public String getOutUserId() {
|
||||
return outUserId;
|
||||
}
|
||||
|
||||
public void setOutUserId(String outUserId) {
|
||||
this.outUserId = outUserId;
|
||||
}
|
||||
|
||||
public String getCallbackUrl() {
|
||||
return callbackUrl;
|
||||
}
|
||||
|
||||
public void setCallbackUrl(String callbackUrl) {
|
||||
this.callbackUrl = callbackUrl;
|
||||
}
|
||||
|
||||
public String getOrderInfo() {
|
||||
return orderInfo;
|
||||
}
|
||||
|
||||
public void setOrderInfo(String orderInfo) {
|
||||
this.orderInfo = orderInfo;
|
||||
}
|
||||
|
||||
public String getTermNo() {
|
||||
return termNo;
|
||||
}
|
||||
|
||||
public void setTermNo(String termNo) {
|
||||
this.termNo = termNo;
|
||||
}
|
||||
|
||||
public String getSplitMark() {
|
||||
return splitMark;
|
||||
}
|
||||
|
||||
public void setSplitMark(String splitMark) {
|
||||
this.splitMark = splitMark;
|
||||
}
|
||||
|
||||
public String getSettleType() {
|
||||
return settleType;
|
||||
}
|
||||
|
||||
public void setSettleType(String settleType) {
|
||||
this.settleType = settleType;
|
||||
}
|
||||
|
||||
public List<V3CcssOrderOutSplitInfo> getOutSplitInfo() {
|
||||
return outSplitInfo;
|
||||
}
|
||||
|
||||
public void setOutSplitInfo(List<V3CcssOrderOutSplitInfo> outSplitInfo) {
|
||||
this.outSplitInfo = outSplitInfo;
|
||||
}
|
||||
|
||||
public String getCounterParam() {
|
||||
return counterParam;
|
||||
}
|
||||
|
||||
public void setCounterParam(String counterParam) {
|
||||
this.counterParam = counterParam;
|
||||
}
|
||||
|
||||
public String getCounterRemark() {
|
||||
return counterRemark;
|
||||
}
|
||||
|
||||
public void setCounterRemark(String counterRemark) {
|
||||
this.counterRemark = counterRemark;
|
||||
}
|
||||
|
||||
public String getBusiTypeParam() {
|
||||
return busiTypeParam;
|
||||
}
|
||||
|
||||
public void setBusiTypeParam(String busiTypeParam) {
|
||||
this.busiTypeParam = busiTypeParam;
|
||||
}
|
||||
|
||||
public List<String> getSgnInfo() {
|
||||
return sgnInfo;
|
||||
}
|
||||
|
||||
public void setSgnInfo(List<String> sgnInfo) {
|
||||
this.sgnInfo = sgnInfo;
|
||||
}
|
||||
|
||||
public String getProductId() {
|
||||
return productId;
|
||||
}
|
||||
|
||||
public void setProductId(String productId) {
|
||||
this.productId = productId;
|
||||
}
|
||||
|
||||
public String getGoodsMark() {
|
||||
return goodsMark;
|
||||
}
|
||||
|
||||
public void setGoodsMark(String goodsMark) {
|
||||
this.goodsMark = goodsMark;
|
||||
}
|
||||
|
||||
public String getGoodsField() {
|
||||
return goodsField;
|
||||
}
|
||||
|
||||
public void setGoodsField(String goodsField) {
|
||||
this.goodsField = goodsField;
|
||||
}
|
||||
|
||||
public V3CcssOrderSceneFieldInfo getOrderSceneField() {
|
||||
return orderSceneField;
|
||||
}
|
||||
|
||||
public void setOrderSceneField(V3CcssOrderSceneFieldInfo orderSceneField) {
|
||||
this.orderSceneField = orderSceneField;
|
||||
}
|
||||
|
||||
public V3CcssCounterOrderSpecialCreateRequest.TransferField getTransferField() {
|
||||
return transferField;
|
||||
}
|
||||
|
||||
public void setTransferField(V3CcssCounterOrderSpecialCreateRequest.TransferField transferField) {
|
||||
this.transferField = transferField;
|
||||
}
|
||||
|
||||
public String getIdentityInfo() {
|
||||
return identityInfo;
|
||||
}
|
||||
|
||||
public void setIdentityInfo(String identityInfo) {
|
||||
this.identityInfo = identityInfo;
|
||||
}
|
||||
|
||||
public String getAgeLimit() {
|
||||
return ageLimit;
|
||||
}
|
||||
|
||||
public void setAgeLimit(String ageLimit) {
|
||||
this.ageLimit = ageLimit;
|
||||
}
|
||||
|
||||
public String getRepeatPayAutoRefund() {
|
||||
return repeatPayAutoRefund;
|
||||
}
|
||||
|
||||
public void setRepeatPayAutoRefund(String repeatPayAutoRefund) {
|
||||
this.repeatPayAutoRefund = repeatPayAutoRefund;
|
||||
}
|
||||
|
||||
public String getRepeatPayNotify() {
|
||||
return repeatPayNotify;
|
||||
}
|
||||
|
||||
public void setRepeatPayNotify(String repeatPayNotify) {
|
||||
this.repeatPayNotify = repeatPayNotify;
|
||||
}
|
||||
|
||||
public String getCloseOrderAutoRefund() {
|
||||
return closeOrderAutoRefund;
|
||||
}
|
||||
|
||||
public void setCloseOrderAutoRefund(String closeOrderAutoRefund) {
|
||||
this.closeOrderAutoRefund = closeOrderAutoRefund;
|
||||
}
|
||||
|
||||
public String getTransCurrency() {
|
||||
return transCurrency;
|
||||
}
|
||||
|
||||
public void setTransCurrency(String transCurrency) {
|
||||
this.transCurrency = transCurrency;
|
||||
}
|
||||
|
||||
public static class TransferField {
|
||||
|
||||
*/
|
||||
/**
|
||||
* 付款人账号
|
||||
* C
|
||||
* 付款人账号 上送则校验
|
||||
*//*
|
||||
|
||||
@JsonProperty("acc_out_no")
|
||||
private String accOutNo;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 付款人姓名
|
||||
* C
|
||||
* 付款人姓名 上送则校验
|
||||
*//*
|
||||
|
||||
@JsonProperty("acc_out_name")
|
||||
private String accOutName;
|
||||
|
||||
*/
|
||||
/**
|
||||
* 转账附言
|
||||
* C
|
||||
* 转账附言 上送则校验
|
||||
*//*
|
||||
|
||||
@JsonProperty("additional")
|
||||
private String additional;
|
||||
|
||||
public String getAccOutNo() {
|
||||
return accOutNo;
|
||||
}
|
||||
|
||||
public void setAccOutNo(String accOutNo) {
|
||||
this.accOutNo = accOutNo;
|
||||
}
|
||||
|
||||
public String getAccOutName() {
|
||||
return accOutName;
|
||||
}
|
||||
|
||||
public void setAccOutName(String accOutName) {
|
||||
this.accOutName = accOutName;
|
||||
}
|
||||
|
||||
public String getAdditional() {
|
||||
return additional;
|
||||
}
|
||||
|
||||
public void setAdditional(String additional) {
|
||||
this.additional = additional;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public FunctionCodeEnum getFunctionCode() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
package com.lakala.zf.laop.java.sdk.demo.notify;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.notification.NotificationResult;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
*/
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2023/8/18 17:02
|
||||
* @description 处理拉卡拉推送DEMO
|
||||
*//*
|
||||
|
||||
@RestController
|
||||
public class NotificationHandlerDemo extends BaseCommonDemo {
|
||||
|
||||
*/
|
||||
/**
|
||||
* @param request spring-boot 2.x 使用javax.servlet.http.HttpServletRequest接收
|
||||
* spring-boot 3.x 使用jakarta.servlet.http.HttpServletRequest接收
|
||||
* @return
|
||||
* @throws Exception
|
||||
*//*
|
||||
|
||||
@RequestMapping("/messageHandle")
|
||||
public ResponseEntity<?> messageHandle(HttpServletRequest request) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
// spring-boot 2.x 直接调用读取请求提并验签方法,返回请求体
|
||||
String body = LKLSDK.notificationHandle(request);
|
||||
|
||||
//spring-boot 3.x 先读取请求体及请求头中的认证信息,SDK提供验签方法
|
||||
// LKLSDK.notificationHandle(getBody(request), getAuthorization(request));
|
||||
|
||||
System.out.println("验签成功,请求body:" + body);
|
||||
|
||||
//业务处理
|
||||
|
||||
//标准响应成功格式
|
||||
return ResponseEntity.ok(NotificationResult.ok());
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
/**
|
||||
* 读取请求头
|
||||
*//*
|
||||
|
||||
private String getAuthorization(HttpServletRequest request) {
|
||||
return request.getHeader("Authorization");
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 读取请求体
|
||||
*//*
|
||||
|
||||
private String getBody(HttpServletRequest request) {
|
||||
try (InputStreamReader in = new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8)) {
|
||||
StringBuilder bf = new StringBuilder();
|
||||
int len;
|
||||
char[] chs = new char[1024];
|
||||
while ((len = in.read(chs)) != -1) {
|
||||
bf.append(new String(chs, 0, len));
|
||||
}
|
||||
return bf.toString();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("读取body失败");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.utils;
|
||||
|
||||
/**
|
||||
* @author Maosw
|
||||
*/
|
||||
public class KlkConstant {
|
||||
public static final String VERSION = "1.0";
|
||||
/**
|
||||
* 机构代码:测试环境为1
|
||||
*/
|
||||
public static final String ORG_CODE = "200007";
|
||||
|
||||
/**
|
||||
* 终端号
|
||||
*/
|
||||
public static final String TERM_NO = "K2072351";
|
||||
|
||||
/**
|
||||
* setOrgNo bmcp机构号 测试环境为1
|
||||
*/
|
||||
public static final String ORG_NO = "1";
|
||||
|
||||
public static String merchantNo = "8223610503900MS";
|
||||
|
||||
public static String merInnerNo = "ZF20231212000000000000000000000001";
|
||||
|
||||
public static String merCupNo = "8223610891206BG";
|
||||
|
||||
/**
|
||||
* 收款账户账户类型:57:对公 58:对私
|
||||
*/
|
||||
public static final String ACC_TYPE = "58";
|
||||
|
||||
/**
|
||||
* AcctCertificateType:收款账户证件类型
|
||||
* 17 身份证,18 护照,19 港澳居民来往内地通行证 20 台湾居民来往内地通行证
|
||||
*/
|
||||
public static final String ACC_CERT_TYPE = "17";
|
||||
|
||||
/**
|
||||
* bindAccount 分账关系绑定结果回调地址
|
||||
*/
|
||||
public static final String BIND_ACC_URL = "https://jcs-api.52o.site/api/mall/callback/applyBind";
|
||||
|
||||
/**
|
||||
* 提现结果回调地址
|
||||
*/
|
||||
public static final String WITHDRAWAL = "https://jcs-api.52o.site/api/mall/callback/withdrawal";
|
||||
|
||||
/**
|
||||
* 余额充值订单回调地址
|
||||
*/
|
||||
public static final String RECHARGE_ORDER = "https://jcs-api.52o.site/api/callback/rechargeOrder";
|
||||
|
||||
/**
|
||||
* DD画图订单回调地址
|
||||
*/
|
||||
public static final String DDHT_ORDER = "https://jcs-api.52o.site/api/callback/order";
|
||||
|
||||
/**
|
||||
* 分账状态 处理中:PROCESSING, 已受理:ACCEPTED, 成功:SUCCESS, 失败:FAIL
|
||||
*/
|
||||
public static final String PROCESSING = "PROCESSING";
|
||||
public static final String ACCEPTED = "ACCEPTED";
|
||||
public static final String SUCCESS = "SUCCESS";
|
||||
public static final String FAIL = "FAIL";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.utils;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.exception.SDKException;
|
||||
import com.lkl.laop.sdk.request.V3CcssCounterOrderCreateRequest;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderOutSplitInfo;
|
||||
import com.lkl.laop.sdk.request.model.V3CcssOrderSceneFieldInfo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Maosw
|
||||
*/
|
||||
public class LakalaUtils extends BaseCommonDemo {
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 聚合收银台创建订单
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject createOrderPayment(String orderNo, BigDecimal payPrice, List<V3CcssOrderOutSplitInfo> splitInfoList) throws Exception {
|
||||
doInit();
|
||||
//创建订单请求参数
|
||||
V3CcssCounterOrderCreateRequest request = new V3CcssCounterOrderCreateRequest();
|
||||
|
||||
//商户订单号
|
||||
request.setOutOrderNo(orderNo);
|
||||
|
||||
//是否支持多次发起订单 0 不支持 1 支持
|
||||
request.setSupportRepeatPay(1);
|
||||
|
||||
//银联商户号
|
||||
request.setMerchantNo(KlkConstant.merchantNo);
|
||||
|
||||
//订单支付金额 单位:分
|
||||
request.setTotalAmount(payPrice.multiply(new BigDecimal(100)).longValue());
|
||||
|
||||
//支付有效期 一天
|
||||
request.setOrderEfficientTime(DateUtil.format(DateUtil.offsetDay(new Date(), 1), "yyyyMMddHHmmss"));
|
||||
|
||||
//回调地址
|
||||
request.setNotifyUrl(KlkConstant.DDHT_ORDER);
|
||||
|
||||
request.setSupportCancel(1);
|
||||
|
||||
request.setSupportRefund(1);
|
||||
|
||||
/*request.setSplitMark("1");
|
||||
request.setOutSplitInfo(splitInfoList);*/
|
||||
|
||||
//支付类型
|
||||
// req.setCounterParam("{\"pay_mode\":\"ALIPAY\"}");
|
||||
|
||||
// req.setBusiTypeParam("[{\"busi_type\":\"UPCARD\",\"params\":{\"crd_flg\":\"CRDFLG_D|CRDFLG_C|CRDFLG_OTH\"}},{\"busi_type\":\"SCPAY\",\"params\":{\"pay_mode\":\"WECHAT\",\"crd_flg\":\"CRDFLG_D\"}}]");
|
||||
|
||||
// 订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
|
||||
request.setOrderInfo("集材社订单支付");
|
||||
|
||||
List<String> sgnInfos = new ArrayList<>();
|
||||
|
||||
sgnInfos.add("1");
|
||||
|
||||
request.setSgnInfo(sgnInfos);
|
||||
|
||||
V3CcssOrderSceneFieldInfo.HbFqSceneInfo hbFqSceneInfo = new V3CcssOrderSceneFieldInfo.HbFqSceneInfo();
|
||||
|
||||
hbFqSceneInfo.setHbFqNum("3");
|
||||
|
||||
hbFqSceneInfo.setHbFqSellerPercent("0");
|
||||
|
||||
//3. 发送请求
|
||||
String response = null;
|
||||
try {
|
||||
response = LKLSDK.httpPost(request);
|
||||
} catch (SDKException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
|
||||
JSONObject jsonObject = JSONObject.parseObject(response);
|
||||
if ("000000".equals(jsonObject.get("code"))) {
|
||||
System.out.println(jsonObject.get("resp_data").toString());
|
||||
} else {
|
||||
System.out.println(jsonObject.get("msg").toString());
|
||||
}
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* 聚合收银台创建订单
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject createOrderPay(String orderNo, BigDecimal payPrice, String notifyUrl) throws Exception {
|
||||
doInit();
|
||||
//创建订单请求参数
|
||||
V3CcssCounterOrderCreateRequest request = new V3CcssCounterOrderCreateRequest();
|
||||
|
||||
//商户订单号
|
||||
request.setOutOrderNo(orderNo);
|
||||
|
||||
//是否支持多次发起订单 0 不支持 1 支持
|
||||
request.setSupportRepeatPay(1);
|
||||
|
||||
//银联商户号
|
||||
request.setMerchantNo(KlkConstant.merchantNo);
|
||||
|
||||
//订单支付金额 单位:分
|
||||
request.setTotalAmount(payPrice.multiply(new BigDecimal(100)).longValue());
|
||||
|
||||
//支付有效期 一天
|
||||
request.setOrderEfficientTime(DateUtil.format(DateUtil.offsetDay(new Date(), 1), "yyyyMMddHHmmss"));
|
||||
|
||||
//回调地址
|
||||
request.setNotifyUrl(notifyUrl);
|
||||
|
||||
request.setSupportCancel(1);
|
||||
|
||||
request.setSupportRefund(1);
|
||||
|
||||
//支付类型
|
||||
// req.setCounterParam("{\"pay_mode\":\"ALIPAY\"}");
|
||||
|
||||
// req.setBusiTypeParam("[{\"busi_type\":\"UPCARD\",\"params\":{\"crd_flg\":\"CRDFLG_D|CRDFLG_C|CRDFLG_OTH\"}},{\"busi_type\":\"SCPAY\",\"params\":{\"pay_mode\":\"WECHAT\",\"crd_flg\":\"CRDFLG_D\"}}]");
|
||||
|
||||
// 订单标题,在使用收银台扫码支付时必输入,交易时送往账户端
|
||||
request.setOrderInfo("集材社订单支付");
|
||||
|
||||
List<String> sgnInfos = new ArrayList<>();
|
||||
|
||||
sgnInfos.add("1");
|
||||
|
||||
request.setSgnInfo(sgnInfos);
|
||||
|
||||
|
||||
V3CcssOrderSceneFieldInfo.HbFqSceneInfo hbFqSceneInfo = new V3CcssOrderSceneFieldInfo.HbFqSceneInfo();
|
||||
|
||||
hbFqSceneInfo.setHbFqNum("3");
|
||||
|
||||
hbFqSceneInfo.setHbFqSellerPercent("0");
|
||||
|
||||
//3. 发送请求
|
||||
String response = null;
|
||||
try {
|
||||
response = LKLSDK.httpPost(request);
|
||||
} catch (SDKException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
|
||||
JSONObject jsonObject = JSONObject.parseObject(response);
|
||||
if ("000000".equals(jsonObject.get("code"))) {
|
||||
System.out.println(jsonObject.get("resp_data").toString());
|
||||
} else {
|
||||
System.out.println(jsonObject.get("msg").toString());
|
||||
}
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
/*
|
||||
package com.lakala.zf.laop.java.sdk.demo.utils;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lakala.zf.laop.java.sdk.demo.extend.V3ExtendRequest;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest;
|
||||
import com.lkl.laop.sdk.request.model.V3LabsTradeLocationInfo;
|
||||
import com.lkl.laop.sdk.request.model.V3LabsTradePreorderAlipayBus;
|
||||
import com.lkl.laop.sdk.request.model.V3LabsTradePreorderUnionPayBus;
|
||||
import com.lkl.laop.sdk.request.model.V3LabsTradePreorderWechatBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class V3LabsTransPreorderRequestUtils extends BaseCommonDemo {
|
||||
|
||||
*/
|
||||
/**
|
||||
* 微信主扫支付预下单
|
||||
* @return
|
||||
* @throws Exception
|
||||
*//*
|
||||
|
||||
public static String transPreorderWxPay(V3ExtendRequest extendRequest) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
//2. 装配数据
|
||||
*/
|
||||
/*** 微信主扫场景示例 *//*
|
||||
|
||||
V3LabsTransPreorderRequest v3LabsTransPreorderWechatReq = new V3LabsTransPreorderRequest();
|
||||
v3LabsTransPreorderWechatReq.setMerchantNo("8222900594309B8");
|
||||
v3LabsTransPreorderWechatReq.setTermNo("A1135688");
|
||||
v3LabsTransPreorderWechatReq.setOutTradeNo("7089279514841774401");
|
||||
v3LabsTransPreorderWechatReq.setAccountType("WECHAT");
|
||||
v3LabsTransPreorderWechatReq.setTransType("71");
|
||||
v3LabsTransPreorderWechatReq.setTotalAmount("50");
|
||||
v3LabsTransPreorderWechatReq.setNotifyUrl("https://testca/notify");
|
||||
v3LabsTransPreorderWechatReq.setRemark("备注");
|
||||
|
||||
//地址位置信息
|
||||
V3LabsTradeLocationInfo v3LabsTradePreorderLocationInfo1 = new V3LabsTradeLocationInfo("12.34.56.78");
|
||||
v3LabsTransPreorderWechatReq.setLocationInfo(v3LabsTradePreorderLocationInfo1);
|
||||
|
||||
//微信主扫场景下acc_busi_fields域内容
|
||||
V3LabsTradePreorderWechatBus wechatBus = new V3LabsTradePreorderWechatBus();
|
||||
wechatBus.setSubAppid("wx68edd02e");
|
||||
wechatBus.setUserId("oO2Dq0ny0C");
|
||||
wechatBus.setGoodsTag("ceshi");
|
||||
wechatBus.setSceneInfo("{\"store_info\":{\"id\": \"123\",\"name\": \"456\",\"area_code\": \"2345\",\"address\": \"地址\" }}");
|
||||
|
||||
V3LabsTradePreorderWechatBus.AccBusiDetail accBusiDetail = new V3LabsTradePreorderWechatBus.AccBusiDetail();
|
||||
List<V3LabsTradePreorderWechatBus.WechatGoodsDetail> wechatGoodsDetails = new ArrayList<>();
|
||||
V3LabsTradePreorderWechatBus.WechatGoodsDetail wechatGoodsDetail = new V3LabsTradePreorderWechatBus.WechatGoodsDetail();
|
||||
wechatGoodsDetail.setGoodsId("100734033");
|
||||
wechatGoodsDetail.setPrice(50);
|
||||
wechatGoodsDetail.setQuantity(1);
|
||||
wechatGoodsDetails.add(wechatGoodsDetail);
|
||||
accBusiDetail.setCostPrice(555);
|
||||
accBusiDetail.setGoodsDetail(wechatGoodsDetails);
|
||||
wechatBus.setDetail(accBusiDetail);
|
||||
v3LabsTransPreorderWechatReq.setAccBusiFields(wechatBus);
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(v3LabsTransPreorderWechatReq);
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
return response;
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 支付宝主扫支付预下单
|
||||
*//*
|
||||
|
||||
public static String transPreorderAliPay(V3ExtendRequest extendRequest) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
//2. 装配数据
|
||||
*/
|
||||
/*** 支付宝主扫场景示例 *//*
|
||||
|
||||
V3LabsTransPreorderRequest v3LabsTransPreorderAlipayReq = new V3LabsTransPreorderRequest();
|
||||
v3LabsTransPreorderAlipayReq.setMerchantNo(extendRequest.getMerchantNo());
|
||||
v3LabsTransPreorderAlipayReq.setTermNo(extendRequest.getTermNo());
|
||||
v3LabsTransPreorderAlipayReq.setOutTradeNo(extendRequest.getOutOrderNo());
|
||||
v3LabsTransPreorderAlipayReq.setAccountType(extendRequest.getSettleType());
|
||||
v3LabsTransPreorderAlipayReq.setTransType("41");
|
||||
v3LabsTransPreorderAlipayReq.setTotalAmount(extendRequest.getTotalAmount().toString());
|
||||
v3LabsTransPreorderAlipayReq.setNotifyUrl(extendRequest.getNotifyUrl());
|
||||
v3LabsTransPreorderAlipayReq.setRemark(extendRequest.getCounterRemark());
|
||||
|
||||
//地址位置信息
|
||||
V3LabsTradeLocationInfo v3LabsTradePreorderLocationInfo2 = new V3LabsTradeLocationInfo();
|
||||
v3LabsTradePreorderLocationInfo2.setLocation("117.88.221.22");
|
||||
v3LabsTradePreorderLocationInfo2.setBaseStation("00+LAC:6361+CID:58130");
|
||||
v3LabsTradePreorderLocationInfo2.setRequestIp("+37.123456789/-121.123456789");
|
||||
v3LabsTransPreorderAlipayReq.setLocationInfo(v3LabsTradePreorderLocationInfo2);
|
||||
|
||||
|
||||
//支付宝主扫场景下acc_busi_fields域内容
|
||||
V3LabsTradePreorderAlipayBus alipayBus = new V3LabsTradePreorderAlipayBus();
|
||||
alipayBus.setStoreId("11111");
|
||||
alipayBus.setUserId("22222");
|
||||
alipayBus.setDisablePayChannels("credit_group");
|
||||
alipayBus.setBusinessParams("{“enable_thirdpar ty_subsidy”:”N”}");
|
||||
alipayBus.setQuitUrl("www.test.com");
|
||||
alipayBus.setTimeoutExpress("10");
|
||||
//支付宝extend_params字段说明
|
||||
// V3LabsTradePreorderAlipayBus.AlipayExtendParamInfo extendParamInfo = new V3LabsTradePreorderAlipayBus.AlipayExtendParamInfo();
|
||||
// extendParamInfo.setHbFqNum("3");
|
||||
// extendParamInfo.setSysServiceProviderId("2088511833207846");
|
||||
// extendParamInfo.setFoodOrderType("qr_order");
|
||||
// extendParamInfo.setHbFqSellerPercent("100");
|
||||
// alipayBus.setExtendParams(extendParamInfo);
|
||||
|
||||
//支付宝goods_detail字段说明
|
||||
List<V3LabsTradePreorderAlipayBus.AlipayGoodsDeTail> goodsDeTails = new ArrayList<>();
|
||||
V3LabsTradePreorderAlipayBus.AlipayGoodsDeTail alipayGoodsDeTail1 = new V3LabsTradePreorderAlipayBus.AlipayGoodsDeTail();
|
||||
alipayGoodsDeTail1.setAlipayGoodsId("6666");
|
||||
alipayGoodsDeTail1.setGoodsId("123");
|
||||
alipayGoodsDeTail1.setGoodsName("测试商品");
|
||||
alipayGoodsDeTail1.setQuantity("1.11");
|
||||
alipayGoodsDeTail1.setPrice("666.33");
|
||||
alipayGoodsDeTail1.setShowUrl("www.test.com");
|
||||
goodsDeTails.add(alipayGoodsDeTail1);
|
||||
alipayBus.setGoodsDetail(goodsDeTails);
|
||||
v3LabsTransPreorderAlipayReq.setAccBusiFields(alipayBus);
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(v3LabsTransPreorderAlipayReq);
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
return response;
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 银联主扫支付预下单
|
||||
*//*
|
||||
|
||||
public static String transPreorderUnionPay() throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
//2. 装配数据
|
||||
*/
|
||||
/*** 银联主扫场景示例 *//*
|
||||
|
||||
V3LabsTransPreorderRequest v3LabsTransPreorderUnionPayReq = new V3LabsTransPreorderRequest();
|
||||
v3LabsTransPreorderUnionPayReq.setMerchantNo("8222900594309B8");
|
||||
v3LabsTransPreorderUnionPayReq.setTermNo("A1135688");
|
||||
v3LabsTransPreorderUnionPayReq.setOutTradeNo("7089279514841773301");
|
||||
v3LabsTransPreorderUnionPayReq.setAccountType("UQRCODEPAY");
|
||||
v3LabsTransPreorderUnionPayReq.setTransType("51");
|
||||
v3LabsTransPreorderUnionPayReq.setTotalAmount("10");
|
||||
v3LabsTransPreorderUnionPayReq.setNotifyUrl("http://www.test.com");
|
||||
v3LabsTransPreorderUnionPayReq.setRemark("备注");
|
||||
|
||||
//地址位置信息
|
||||
V3LabsTradeLocationInfo v3LabsTradePreorderLocationInfo3 = new V3LabsTradeLocationInfo();
|
||||
v3LabsTradePreorderLocationInfo3.setRequestIp("117.88.221.21");
|
||||
v3LabsTradePreorderLocationInfo3.setLocation("+37.123456789,-121.123456789");
|
||||
v3LabsTransPreorderUnionPayReq.setLocationInfo(v3LabsTradePreorderLocationInfo3);
|
||||
|
||||
|
||||
//银联主扫场景下acc_busi_fields域内容
|
||||
V3LabsTradePreorderUnionPayBus unionPayBus = new V3LabsTradePreorderUnionPayBus();
|
||||
unionPayBus.setUserId("23425");
|
||||
unionPayBus.setFrontUrl("www.front.com");
|
||||
unionPayBus.setFrontFailUrl("www.fail.com");
|
||||
v3LabsTransPreorderUnionPayReq.setAccBusiFields(unionPayBus);
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(v3LabsTransPreorderUnionPayReq);
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
return response;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
@@ -0,0 +1,234 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.utils;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import okhttp3.*;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class V3LakalaBusinessUtils extends BaseCommonDemo {
|
||||
|
||||
private static final String BASE_URL = "https://test.wsmsd.cn/sit";
|
||||
|
||||
private static final String CLIENT_ID = "testsit";
|
||||
|
||||
private static final String CLIENT_SECRET = "EguwEckByf2I6u6z";
|
||||
|
||||
/**
|
||||
* 获取access_token
|
||||
* @return access_token响应
|
||||
*/
|
||||
public static String getAccessToken() {
|
||||
try {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
// 构建请求参数
|
||||
FormBody formBody = new FormBody.Builder()
|
||||
.add("grant_type", "client_credentials")
|
||||
.add("client_id", CLIENT_ID)
|
||||
.add("client_secret", CLIENT_SECRET)
|
||||
.build();
|
||||
|
||||
// 创建POST请求
|
||||
Request request = new Request.Builder()
|
||||
.url(BASE_URL+"/htkauth/oauth/token")
|
||||
.post(formBody)
|
||||
.build();
|
||||
|
||||
// 执行请求
|
||||
Response response = client.newCall(request).execute();
|
||||
// 立即读取并使用响应体
|
||||
JSONObject jsonObject = new JSONObject(response.body().string());
|
||||
return jsonObject.getString("access_token");
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("获取access_token失败", e);
|
||||
} catch (JSONException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 商户进件
|
||||
* @param entryInfo 进件信息
|
||||
* @return 进件结果
|
||||
*/
|
||||
public static String merchantEntry(String entryInfo) {
|
||||
try {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
String accessToken = getAccessToken();
|
||||
|
||||
RequestBody body = RequestBody.create(
|
||||
MediaType.parse("application/json"), entryInfo
|
||||
);
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(BASE_URL + "/htkregistration/merchant")
|
||||
.addHeader("Authorization", "Bearer " + accessToken)
|
||||
.post(body)
|
||||
.build();
|
||||
|
||||
Response response = client.newCall(request).execute();
|
||||
JSONObject jsonObject = new JSONObject(response.body().string());
|
||||
// return jsonObject.getString("merchantNo");
|
||||
return jsonObject.toString();
|
||||
} catch (IOException | JSONException e) {
|
||||
throw new RuntimeException("商户进件失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取地区信息
|
||||
* @param parentCode 父级编码,如果获取省份信息则传空
|
||||
* @return 地区信息列表
|
||||
*/
|
||||
public static JSONArray getRegionInfo(String parentCode) {
|
||||
try {
|
||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||
String accessToken = getAccessToken();
|
||||
|
||||
HttpUrl.Builder urlBuilder = HttpUrl.parse(BASE_URL + "/htkregistration/organization").newBuilder();
|
||||
if (parentCode != null && !parentCode.isEmpty()) {
|
||||
urlBuilder.addPathSegment(parentCode);
|
||||
}
|
||||
Request request = new Request.Builder()
|
||||
.url(urlBuilder.build())
|
||||
.addHeader("Authorization", "Bearer" + accessToken)
|
||||
.get()
|
||||
.build();
|
||||
|
||||
Response response = client.newCall(request).execute();
|
||||
|
||||
if (!response.isSuccessful()) {
|
||||
throw new RuntimeException("获取地区信息失败, HTTP 状态码: " + response.code());
|
||||
}
|
||||
|
||||
String responseBody = response.body().string();
|
||||
// 将响应字符串转换为 JSONArray
|
||||
JSONArray jsonArray = new JSONArray(responseBody);
|
||||
|
||||
// 遍历 JSONArray 中的每个 JSONObject
|
||||
for (int i = 0; i < jsonArray.length(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
// 处理每个 JSONObject 的逻辑
|
||||
int id = jsonObject.getInt("id");
|
||||
String createTime = jsonObject.getString("createTime");
|
||||
int optimistic = jsonObject.getInt("optimistic");
|
||||
String updateTime = jsonObject.isNull("updateTime") ? null : jsonObject.getString("updateTime");
|
||||
String code = jsonObject.getString("code");
|
||||
String name = jsonObject.getString("name");
|
||||
String parentCode1 = jsonObject.getString("parentCode");
|
||||
// 打印或进一步处理这些字段
|
||||
System.out.println("ID: " + id + ", Name: " + name + ", Code: " + code);
|
||||
}
|
||||
return jsonArray;
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("获取地区信息失败", e);
|
||||
} catch (JSONException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
/*String accessToken = getAccessToken();
|
||||
System.out.println(accessToken);*/
|
||||
String entryResult = """
|
||||
{
|
||||
"accountName": "**",
|
||||
"accountNo": "621****06879",
|
||||
"accountType": "58",
|
||||
"attchments": [
|
||||
{
|
||||
"id": "merchant/null/20220928161350755217AGREE_MENT.jpg",
|
||||
"type": "AGREE_MENT"
|
||||
},
|
||||
{
|
||||
"id": "merchant/null/20220928161347099171BANK_CARD.jpg",
|
||||
"type": "BANK_CARD"
|
||||
},
|
||||
{
|
||||
"id": "merchant/null/20220928161349793759OTHERS.jpg",
|
||||
"type": "OTHERS"
|
||||
},
|
||||
{
|
||||
"id": "merchant/null/20220928161346380779ID_CARD_FRONT.jpg",
|
||||
"type": "ID_CARD_FRONT"
|
||||
},
|
||||
{
|
||||
"id": "merchant/null/20220928161346680398ID_CARD_BEHIND.jpg",
|
||||
"type": "ID_CARD_BEHIND"
|
||||
},
|
||||
{
|
||||
"id": "merchant/null/20220928161347597952SHOP_OUTSIDE_IMG.jpg",
|
||||
"type": "SHOP_OUTSIDE_IMG"
|
||||
},
|
||||
{
|
||||
"id": "merchant/null/20220928161348568691SHOP_INSIDE_IMG.jpg",
|
||||
"type": "SHOP_INSIDE_IMG"
|
||||
}
|
||||
],
|
||||
"bizContent": {
|
||||
"activityId": 12,
|
||||
"fees": [
|
||||
{
|
||||
"feeCode": "WECHAT",
|
||||
"feeValue": 0.38
|
||||
},
|
||||
{
|
||||
"feeCode": "ALIPAY",
|
||||
"feeValue": 0.38
|
||||
},
|
||||
{
|
||||
"feeCode": "CREDIT_CARD",
|
||||
"feeValue": 0.6
|
||||
},
|
||||
{
|
||||
"feeCode": "DEBIT_CARD",
|
||||
"feeValue": 0.5,
|
||||
"topFee": 20
|
||||
}
|
||||
],
|
||||
"mcc": "12002",
|
||||
"termNum": "1"
|
||||
},
|
||||
"busiCode": "PAPER_CODE",
|
||||
"businessContent": "",
|
||||
"cityCode": "6410",
|
||||
"clearingBankCode": "102100099996",
|
||||
"contactMobile": "18208910781",
|
||||
"contactName": "**",
|
||||
"countyCode": "986410",
|
||||
"email": "***@qq.com",
|
||||
"larIdCard": "460027200111297612",
|
||||
"larIdCardEnd": "2030-05-20",
|
||||
"larIdCardStart": "2020-05-20",
|
||||
"larIdType": "01",
|
||||
"larName": "**",
|
||||
"latitude": "117.359967",
|
||||
"merAddr": "383",
|
||||
"merName": "24",
|
||||
"merRegName": "合肥集材社",
|
||||
"merType": "TP_PERSONAL",
|
||||
"openningBankCode": "102641000266",
|
||||
"openningBankName": "1111",
|
||||
"settleProvinceCode": "11",
|
||||
"settleProvinceName": "",
|
||||
"settleCityCode": "1000",
|
||||
"settleCityName": "",
|
||||
"provinceCode": "6400",
|
||||
"settleType": "D1",
|
||||
"source": "APP",
|
||||
"userNo": 20000101
|
||||
}
|
||||
""";
|
||||
|
||||
String result = merchantEntry(entryResult);
|
||||
System.out.println(result);
|
||||
|
||||
// 获取省份列表
|
||||
// getRegionInfo("1");
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.utils;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.*;
|
||||
import com.lkl.laop.sdk.utils.CommonUtil;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
|
||||
/**
|
||||
* @author Maosw
|
||||
*/
|
||||
public class V3LakalaUserUtils extends BaseCommonDemo {
|
||||
|
||||
|
||||
/**
|
||||
* 根据卡号查询卡BIN信息
|
||||
*/
|
||||
public static JSONObject cardBin(String acctNo) throws Exception {
|
||||
doInit();
|
||||
if (acctNo == null) {
|
||||
throw new ServletException("acctNo不能为空");
|
||||
}
|
||||
V2MmsOpenApiCardBin cardBin = new V2MmsOpenApiCardBin();
|
||||
cardBin.setVersion(KlkConstant.VERSION);
|
||||
cardBin.setOrderNo(CommonUtil.getOrderNo());
|
||||
cardBin.setOrgCode(KlkConstant.ORG_CODE);
|
||||
cardBin.setCardNo(acctNo);
|
||||
String cardBinResponse = LKLSDK.httpPost(cardBin);
|
||||
return JSON.parseObject(cardBinResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
*附件上传
|
||||
*/
|
||||
public static JSONObject uploadFile(V2MmsOpenApiUploadFile uploadFile) throws Exception {
|
||||
doInit();
|
||||
if (uploadFile == null) {
|
||||
throw new ServletException("fileBo不能为空");
|
||||
}
|
||||
// V2MmsOpenApiUploadFile uploadFile = new V2MmsOpenApiUploadFile();
|
||||
uploadFile.setVersion(KlkConstant.VERSION);
|
||||
uploadFile.setOrderNo(CommonUtil.getOrderNo());
|
||||
uploadFile.setOrgCode(KlkConstant.ORG_CODE);
|
||||
uploadFile.setAttType(uploadFile.getAttType());
|
||||
uploadFile.setAttExtName(uploadFile.getAttExtName());
|
||||
uploadFile.setAttContext(uploadFile.getAttContext());
|
||||
String uploadFileResponse = LKLSDK.httpPost(uploadFile);
|
||||
return JSON.parseObject(uploadFileResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分账接收方创建申请
|
||||
*/
|
||||
public static JSONObject applyLedgerReceiver(V2MmsApplyLedgerReceiverRequest ledgerReceiver) throws Exception {
|
||||
doInit();
|
||||
if (ledgerReceiver == null) {
|
||||
throw new ServletException("ledgerReceiver不能为空");
|
||||
}
|
||||
ledgerReceiver.setVersion(KlkConstant.VERSION);
|
||||
ledgerReceiver.setOrderNo(CommonUtil.getOrderNo());
|
||||
ledgerReceiver.setOrgCode(KlkConstant.ORG_CODE);
|
||||
String uploadFileResponse = LKLSDK.httpPost(ledgerReceiver);
|
||||
return JSON.parseObject(uploadFileResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询提现申请详情
|
||||
*/
|
||||
public static JSONObject queryWithdraw(V3SacsQueryRequest queryRequest) throws Exception {
|
||||
doInit();
|
||||
if (queryRequest == null) {
|
||||
throw new ServletException("queryRequest不能为空");
|
||||
}
|
||||
String response = LKLSDK.httpPost(queryRequest);
|
||||
return JSON.parseObject(response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 提现申请
|
||||
*/
|
||||
public static JSONObject withdraw(V3SacsBalanceSeparateRequest separateRequest) throws Exception {
|
||||
doInit();
|
||||
if (separateRequest == null) {
|
||||
throw new ServletException("separateRequest不能为空");
|
||||
}
|
||||
String response = LKLSDK.httpPost(separateRequest);
|
||||
return JSON.parseObject(response);
|
||||
}
|
||||
|
||||
/**
|
||||
*提款模式设置
|
||||
*/
|
||||
public static JSONObject setWithdrawMode(V2LaepIndustryEwalletSettleProfileRequest ewalletSettleProfileRequest) throws Exception {
|
||||
doInit();
|
||||
if (ewalletSettleProfileRequest == null) {
|
||||
throw new ServletException("ewalletSettleProfileRequest不能为空");
|
||||
}
|
||||
String response = LKLSDK.httpPost(ewalletSettleProfileRequest);
|
||||
return JSON.parseObject(response);
|
||||
}
|
||||
|
||||
/* *//**
|
||||
* 退款
|
||||
*//*
|
||||
public static JSONObject relationRefund(V3LabsRelationRefundRequest v3LabsRelationRefundRequest) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
if (v3LabsRelationRefundRequest == null) {
|
||||
throw new ServletException("v3LabsRelationRefundRequest不能为空");
|
||||
}
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(v3LabsRelationRefundRequest);
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
return JSON.parseObject(response);
|
||||
}*/
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepCreateEleReceiptRequest;
|
||||
import com.lkl.laop.sdk.utils.JsonUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Base64;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/17 10:18
|
||||
* @description 账管家V2.0-生成电子回单DEMO
|
||||
*/
|
||||
public class V2LaepCreateEleReceiptRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepCreateEleReceiptRequest req = new V2LaepCreateEleReceiptRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
req.setAcctSysSq("663321182762102784");
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//下载文件
|
||||
//downloadFile(response);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
private static void downloadFile(String response) {
|
||||
Map parse = JsonUtils.parse(response, Map.class);
|
||||
Object respData = parse.get("respData");
|
||||
Map parse1 = JsonUtils.parse(JsonUtils.toJSONString(respData), Map.class);
|
||||
String fileName = parse1.get("fileName").toString();
|
||||
String fileObject = parse1.get("fileObject").toString();
|
||||
boolean downResult = base64str2File(fileObject, "./" + fileName);
|
||||
System.out.println("下载结果:" + downResult);
|
||||
}
|
||||
|
||||
|
||||
public static boolean base64str2File(String base64FileStr, String filePath) {
|
||||
|
||||
if (base64FileStr == null) {
|
||||
return false;
|
||||
}
|
||||
//判断文件夹是否存在
|
||||
File outputFile = new File(filePath);
|
||||
File fileP = outputFile.getParentFile();
|
||||
if (!fileP.exists() && !fileP.mkdirs() && !fileP.mkdir()) {
|
||||
throw new IllegalArgumentException("创建文件目录失败");
|
||||
}
|
||||
Base64.Decoder decoder = Base64.getDecoder();
|
||||
OutputStream out = null;
|
||||
try {
|
||||
// Base64解码,对字节数组字符串进行Base64解码并生成文件
|
||||
byte[] byt = decoder.decode(base64FileStr);
|
||||
InputStream input = new ByteArrayInputStream(byt);
|
||||
// 生成指定格式的文件
|
||||
out = new FileOutputStream(filePath);
|
||||
byte[] buff = new byte[1024];
|
||||
int len;
|
||||
while ((len = input.read(buff)) != -1) {
|
||||
out.write(buff, 0, len);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
assert out != null;
|
||||
out.flush();
|
||||
out.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepEwalletAccountBillsQryRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 14:51
|
||||
* @description 账管家V2.0-账单分页查询DEMO
|
||||
*/
|
||||
public class V2LaepEwalletAccountBillsQryRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepEwalletAccountBillsQryRequest req = new V2LaepEwalletAccountBillsQryRequest();
|
||||
req.setOrgNo("100012");
|
||||
req.setBmcpNo("1");
|
||||
req.setAcctNo("02001012000000008481");
|
||||
req.setCustNo("82229005943096V");
|
||||
req.setPayType("01");
|
||||
req.setAmntcd("+");
|
||||
req.setBillSq("663321182762102784");
|
||||
req.setOutTransSq("");
|
||||
req.setSid("");
|
||||
req.setLklOrderNo("");
|
||||
req.setStartDate("2022-12-30");
|
||||
req.setEndDate("2023-01-05");
|
||||
req.setPage(1);
|
||||
req.setSize(10);
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepEwalletAccountQueryAcctInfoRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/15 16:56
|
||||
* @description 账管家V2.0-收单账户信息查询DEMO
|
||||
*/
|
||||
public class V2LaepEwalletAccountQueryAcctInfoRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepEwalletAccountQueryAcctInfoRequest req = new V2LaepEwalletAccountQueryAcctInfoRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
req.setBalanceFlag("4");
|
||||
req.setRemark("备注");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryBankcardBindRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 13:30
|
||||
* @description 账管家V2.0-绑定银行卡
|
||||
*/
|
||||
public class V2LaepIndustryBankcardBindRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryBankcardBindRequest req = new V2LaepIndustryBankcardBindRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
req.setBankNo("111");
|
||||
req.setBankName("中国工商银行");
|
||||
req.setClearingBankCode("111");
|
||||
req.setBankcardNo("666666");
|
||||
req.setType("1");
|
||||
req.setDefaultFlag("0");
|
||||
req.setAcctCity("北京");
|
||||
req.setAcctBank("**支行");
|
||||
req.setValidate("2099-01-01");
|
||||
req.setRemark("备注");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req, true, false);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryBankcardListRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 14:31
|
||||
* @description 账管家V2.0-查询银行卡列表DEMO
|
||||
*/
|
||||
public class V2LaepIndustryBankcardListRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryBankcardListRequest req = new V2LaepIndustryBankcardListRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req, false, true);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryBankcardUnbindRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 14:38
|
||||
* @description 账管家V2.0-解绑银行卡DEMO
|
||||
*/
|
||||
public class V2LaepIndustryBankcardUnbindRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryBankcardUnbindRequest req = new V2LaepIndustryBankcardUnbindRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
req.setBankId("342401162699187293");
|
||||
req.setRemark("备注");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletBalanceQueryRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/15 16:41
|
||||
* @description 账管家V2.0-账管家余额查询DEMO
|
||||
*/
|
||||
public class V2LaepIndustryEwalletBalanceQueryRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletBalanceQueryRequest req = new V2LaepIndustryEwalletBalanceQueryRequest();
|
||||
req.setOrgNo("1");
|
||||
req.setMerchantNo("8221000581200BS");
|
||||
req.setPayNo("02001012000000010423");
|
||||
req.setPayType("01");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletEwalletfeeRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/12 14:37
|
||||
* @description 账管家V2.0-账管家提款手续费设置DEMO
|
||||
*/
|
||||
public class V2LaepIndustryEwalletEwalletfeeRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletEwalletfeeRequest req = new V2LaepIndustryEwalletEwalletfeeRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
req.setFeeType("02");
|
||||
req.setFeeAmt("0.01");
|
||||
req.setMinFeeAmt("1000");
|
||||
req.setMaxFeeAmt("1000");
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletQueryfeeRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/12 15:05
|
||||
* @description 账管家V2.0-账管家提款手续费查询
|
||||
*/
|
||||
public class V2LaepIndustryEwalletQueryfeeRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletQueryfeeRequest req = new V2LaepIndustryEwalletQueryfeeRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletSettleProfileRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/5/17 10:14
|
||||
* @description 账管家V2.0-账管家提款模式设置
|
||||
*/
|
||||
public class V2LaepIndustryEwalletSettleProfileRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletSettleProfileRequest req = new V2LaepIndustryEwalletSettleProfileRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("8221000581200BS");
|
||||
req.setSettleType("01");
|
||||
req.setSettleTime("");
|
||||
req.setSettleCircle("");
|
||||
req.setPayType("");
|
||||
req.setNotifyUrl("");
|
||||
req.setRetainedAmt("");
|
||||
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletSettleQueryRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/12 14:15
|
||||
* @description 账管家V2.0-账管家提款模式查询DEMO
|
||||
*/
|
||||
public class V2LaepIndustryEwalletSettleQueryRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletSettleQueryRequest req = new V2LaepIndustryEwalletSettleQueryRequest();
|
||||
req.setBmcpNo("1");
|
||||
req.setMercId("82229005943096B");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletWithdrawD1Request;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/12 15:15
|
||||
* @description 账管家V2.0-账管家提现D1 DEMO
|
||||
*/
|
||||
public class V2LaepIndustryEwalletWithdrawD1RequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletWithdrawD1Request req = new V2LaepIndustryEwalletWithdrawD1Request();
|
||||
req.setOrgNo("1");
|
||||
req.setMerchantNo("8221000581200BS");
|
||||
req.setDrawAmt("10");
|
||||
req.setNotifyUrl("test");
|
||||
req.setMerOrderNo("hxmkl20240111900004");
|
||||
req.setPayNo("");
|
||||
req.setPayType("");
|
||||
req.setRemark("");
|
||||
req.setBankId("");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletWithdrawQueryRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2023/12/26 11:08
|
||||
* @description 账管家V2.0-账管家提现结果查询
|
||||
*/
|
||||
public class V2LaepIndustryEwalletWithdrawQueryRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletWithdrawQueryRequest req = new V2LaepIndustryEwalletWithdrawQueryRequest();
|
||||
req.setOrgNo("1");
|
||||
req.setMerchantNo("8221000581200BS");
|
||||
req.setDrawJnl("231226110008150831688934");
|
||||
req.setMerOrderNo("hxmkl20230816900005");
|
||||
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryEwalletWithdrawRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2023/12/26 10:54
|
||||
* @description 账管家V2.0-账管家提现Demo
|
||||
*/
|
||||
public class V2LaepIndustryEwalletWithdrawRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryEwalletWithdrawRequest req = new V2LaepIndustryEwalletWithdrawRequest();
|
||||
req.setOrgNo("1");
|
||||
req.setMerchantNo("8221000581200BS");
|
||||
req.setDrawAmt("10");
|
||||
req.setDrawMode("D0");
|
||||
req.setNotifyUrl("http://www.test.com");
|
||||
req.setMerOrderNo("hxmkl20220816900003");
|
||||
req.setPayNo("1");
|
||||
req.setPayType("01");
|
||||
req.setRemark("备注");
|
||||
req.setSummary("摘要");
|
||||
req.setBankId("1");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryTransferDirectRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/15 13:49
|
||||
* @description 账管家V2.0-可用余额定向转账DEMO
|
||||
*/
|
||||
public class V2LaepIndustryTransferDirectRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryTransferDirectRequest req = new V2LaepIndustryTransferDirectRequest();
|
||||
req.setOutBmcpNo("1");
|
||||
req.setOutMercId("8222900594309P3");
|
||||
req.setOutAcctType("01");
|
||||
req.setInBmcpNo("1");
|
||||
req.setInMercId("8221000581200BS");
|
||||
req.setInPayType("06");
|
||||
req.setMerOrderNo("da6029197c4f4f8e852dd3bc60ed3e35");
|
||||
req.setAmount("100");
|
||||
req.setRemark("132");
|
||||
|
||||
|
||||
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2LaepIndustryTransferQueryRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/15 14:42
|
||||
* @description 账管家V2.0-转账订单查询DEMO
|
||||
*/
|
||||
public class V2LaepIndustryTransferQueryRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2LaepIndustryTransferQueryRequest req = new V2LaepIndustryTransferQueryRequest();
|
||||
req.setOutBmcpNo("1");
|
||||
req.setOutMercId("8222900594309P3");
|
||||
req.setMerOrderNo("da6029197c4f4f8e852dd3bc60ed3e35");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.lakala.zf.laop.java.sdk.demo.v2;
|
||||
|
||||
import com.lakala.zf.laop.java.sdk.demo.BaseCommonDemo;
|
||||
import com.lkl.laop.sdk.LKLSDK;
|
||||
import com.lkl.laop.sdk.request.V2MrssQueryQueryAcctInfoRequest;
|
||||
|
||||
/**
|
||||
* @author nxj
|
||||
* @date 2024/1/16 09:58
|
||||
* @description 收单清结算接口V2-账户信息查询DEMO
|
||||
*/
|
||||
public class V2MrssQueryQueryAcctInfoRequestDemo extends BaseCommonDemo {
|
||||
public static void main(String[] args) throws Exception {
|
||||
// 1. 配置初始化
|
||||
doInit();
|
||||
|
||||
//2. 装配数据
|
||||
V2MrssQueryQueryAcctInfoRequest req = new V2MrssQueryQueryAcctInfoRequest();
|
||||
req.setQryNo("123456789");
|
||||
req.setMerId("82219305946000D");
|
||||
req.setBalanceFlag("2");
|
||||
|
||||
//3. 发送请求
|
||||
String response = LKLSDK.httpPost(req, false, true);
|
||||
|
||||
//4. 响应
|
||||
System.out.println(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDokGGq7SlDoULN
|
||||
PULY8lcb2uXJcrFKkJI/lSfPppIkGH4xPfQytZXRlonpXqgOvovflJT5VhRvoLe2
|
||||
inJ/59kRF59KTerbCG5sG2IHhR/qCUGHervnZuPwgrjOOlnB19VCCUKY1tcplkZa
|
||||
KIksUU3TVh09GB3lUngkuOeO15ihcFHMIknOiSpL+Q04+qQf0g++9CxdQUtNY5za
|
||||
Z2Jdvch/4yFstR59qQu73ZCCYHFqXaVakyfOC3xOQkRB58jPOUvIab9zwo2hPukT
|
||||
+6qkqfokqMhX979HhNshPAJEEUXp4szk0QtP+2n8hq8t3Dws+GY8ElAFvmeGHx5j
|
||||
WzPYAcXvAgMBAAECggEBALIsu8caf/zCdc2MW8SelkJPCLG330DDVmjEO4YJlfl1
|
||||
kmjjkE2xdSDn9q0GyjbRoZQf36rPWkTTmyyNEYAQ/urrcCybWY2J/h9xMz+TrIm/
|
||||
oabMT13QJF5FqJTHe7DZTReUxKMYJixEZ433dHCxsbByT2BZM75X2pg32aBEaTl0
|
||||
v9OfIMwfaJ5fSBmleJv4q/Lfd232/oOPzyr+EHfsMpTwOrgzQwPNoah1GvH+jBhz
|
||||
goafi36vT8HVjJ+ZjOreH+Z2zVas683Le62rQaN/51jHS5vQGd2+z3qrI3kvu8KK
|
||||
Wu0kIDQwCKtSFUT00MiKSaklE9JHf8rCNm3+en4kjfECgYEA/0Z2QaP4sOUt1+cZ
|
||||
IOprsMkJOl2sLTTDx3MseD2BxUukLDT8P3HTWLtBN9AkGlL6XD8WSs1k9YlGCqf2
|
||||
y9qC43Bgwsky8CH1ACk5K4PuWidGUQiqW4Oll/ris2vjagE+QfMHFFa7IalV5FvI
|
||||
v9L01jMqSL4duoM5w/WlLyLu8s0CgYEA6TlppWuxUMbxhEL5jmCZSSvsyhmIOdRk
|
||||
t4V9MuxwiRuItzywMo4+O7Hs6tjAxTnV/ROa33qyQtm4Olmd4Oa/TkmAJFX+mUrW
|
||||
jUohDvm7Js2Y7/eeSRcRQLcgCjncpNe3AJoeVEvrGeaJMERYXnTwboUDKxsRyFFq
|
||||
AyuZHfuh86sCgYAm3pjFF+2XKd5YIKUv4OHy8jmIfJjp7T3eUcg0qtDmtMTTwmGi
|
||||
W3ed7C1bDUNiCr56a1S+oRW9WWCj4L1wft4tOYBSSIaMD++ZTa2Z1aXmblKDpjki
|
||||
ZCJDyPzZ6xSeoH/VVOcADtDBqGIeumcP5lRHhVTr7J7kNnUGRJIZYk1WBQKBgQCl
|
||||
LAIEI4cKnDrD3uL60LL+vVsPrpFp02AZETMf84+nqpZin1pyE4dDo7kUgbnUdCd2
|
||||
+oF+sFi7O5Jb0MgdVY47FZbpJPYQ/o2AtvU+s+K1knozyPyS6wFPAeJxG5WGMTfr
|
||||
9zpvnOy+BSU3x8+F5e+5df5OcvdfFTmtUR05vNJvzQKBgHUtziAeWo7H6vxknFcc
|
||||
kVv7++a4IWF59eP+rpxlaHOtPTI43PLxJgSHEbw3epEzTUnCL9dpP8n48fuYuwM+
|
||||
+vpAujDcaGjGffmxW40E6wuGjOYBNg1zjSfEyjxF2fY+D9WoICSPHnrWB0/BEAZB
|
||||
aL9Lho8+BUEFergUMjxUdvAS
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDvDBZyHUDndAGx
|
||||
rIcsCV2njhNO3vCEZotTaWYSYwtDvkcAb1EjsBFabXZaKigpqFXk5XXNI3NIHP9M
|
||||
8XKzIgGvc65NpLAfRjVql8JiTvLyYd1gIUcOXMInabu+oX7dQSI1mS8XzqaoVRhD
|
||||
ZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbW
|
||||
dhZ+NHwitnQwAJTLBFvfk28INM39G7XOsXdVLfsooFdglVTOHpNuRiQAj9gShCCN
|
||||
rpGsNQxDiJIxE43qRsNsRwigyo6DPJk/klgDJa417E2wgP8VrwiXparO4FMzOGK1
|
||||
5quuoD7DAgMBAAECggEBANhmWOt1EAx3OBFf3f4/fEjylQgRSiqRqg8Ymw6KGuh4
|
||||
mE4Md6eW/B6geUOmZjVP7nIIR1wte28M0REWgn8nid8LGf+v1sB5DmIwgAf+8G/7
|
||||
qCwd8/VMg3aqgQtRp0ckb5OV2Mv0h2pbnltkWHR8LDIMwymyh5uCApbn/aTrCAZK
|
||||
NXcPOyAn9tM8Bu3FHk3Pf24Er3SN+bnGxgpzDrFjsDSHjDFT9UMIc2WdA3tuMv9X
|
||||
3DDn0bRCsHnsIw3WrwY6HQ8mumdbURk+2Ey3eRFfMYxyS96kOgBC2hqZOlDwVPAK
|
||||
TPtS4hoq+cQ0sRaJQ4T0UALJrBVHa+EESgRaTvrXqAECgYEA+WKmy9hcvp6IWZlk
|
||||
9Q1JZ+dgIVxrO65zylK2FnD1/vcTx2JMn73WKtQb6vdvTuk+Ruv9hY9PEsf7S8gH
|
||||
STTmzHOUgo5x0F8yCxXFnfji2juoUnDdpkjtQK5KySDcpQb5kcCJWEVi9v+zObM0
|
||||
Zr1Nu5/NreE8EqUl3+7MtHOu1TMCgYEA9WM9P6m4frHPW7h4gs/GISA9LuOdtjLv
|
||||
AtgCK4cW2mhtGNAMttD8zOBQrRuafcbFAyU9de6nhGwetOhkW9YSV+xRNa7HWTeI
|
||||
RgXJuJBrluq5e1QGTIwZU/GujpNaR4Qiu0B8TodM/FME7htsyxjmCwEfT6SDYlke
|
||||
MzTbMa9Q0DECgYBqsR/2+dvD2YMwAgZFKKgNAdoIq8dcwyfamUQ5mZ5EtGQL2yw4
|
||||
8zibHh/LiIxgUD1Kjk/qQgNsX45NP4iOc0mCkrgomtRqdy+rumbPTNmQ0BEVJCBP
|
||||
scd+8pIgNiTvnWpMRvj7gMP0NDTzLI3wnnCRIq8WAtR2jZ0Ejt+ZHBziLQKBgQDi
|
||||
bEe/zqNmhDuJrpXEXmO7fTv3YB/OVwEj5p1Z/LSho2nHU3Hn3r7lbLYEhUvwctCn
|
||||
Ll2fzC7Wic1rsGOqOcWDS5NDrZpUQGGF+yE/JEOiZcPwgH+vcjaMtp0TAfRzuQEz
|
||||
NzV8YGwxB4mtC7E/ViIuVULHAk4ZGZI8PbFkDxjKgQKBgG8jEuLTI1tsP3kyaF3j
|
||||
Aylnw7SkBc4gfe9knsYlw44YlrDSKr8AOp/zSgwvMYvqT+fygaJ3yf9uIBdrIilq
|
||||
CHKXccZ9uA/bT5JfIi6jbg3EoE9YhB0+1aGAS1O2dBvUiD8tJ+BjAT4OB0UDpmM6
|
||||
QsFLQgFyXgvDnzr/o+hQJelW
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,21 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDYTCCAkmgAwIBAgIJAN+6gZTEG4TPMA0GCSqGSIb3DQEBCwUAMEkxCzAJBgNV
|
||||
BAYTAlVTMREwDwYDVQQIEwhzaGFuZ2hhaTERMA8GA1UEBxMIc2hhbmdoYWkxFDAS
|
||||
BgNVBAMUC2xha2FsYV8yMDIxMB4XDTIxMDYxODA3MjEzNFoXDTMxMDYxOTA3MjEz
|
||||
NFowSTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCHNoYW5naGFpMREwDwYDVQQHEwhz
|
||||
aGFuZ2hhaTEUMBIGA1UEAxQLbGFrYWxhXzIwMjEwggEiMA0GCSqGSIb3DQEBAQUA
|
||||
A4IBDwAwggEKAoIBAQDvDBZyHUDndAGxrIcsCV2njhNO3vCEZotTaWYSYwtDvkcA
|
||||
b1EjsBFabXZaKigpqFXk5XXNI3NIHP9M8XKzIgGvc65NpLAfRjVql8JiTvLyYd1g
|
||||
IUcOXMInabu+oX7dQSI1mS8XzqaoVRhDZQWhXcJW9bxMulgnzvk0Ggw07AjGF7si
|
||||
+hP/Va8SJmN7EJwfQq6TpSxR+WdIHpbWdhZ+NHwitnQwAJTLBFvfk28INM39G7XO
|
||||
sXdVLfsooFdglVTOHpNuRiQAj9gShCCNrpGsNQxDiJIxE43qRsNsRwigyo6DPJk/
|
||||
klgDJa417E2wgP8VrwiXparO4FMzOGK15quuoD7DAgMBAAGjTDBKMAkGA1UdEwQC
|
||||
MAAwEQYJYIZIAYb4QgEBBAQDAgTwMAsGA1UdDwQEAwIFoDAdBgNVHSUEFjAUBggr
|
||||
BgEFBQcDAgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAI21YYAlH+Pc1ISv
|
||||
nbQrGqL8suGL0Hh/8hGaFfrJEJEKr9OeC8jElUhck2MTmfu/Y1lB7r8RBrhGPXi4
|
||||
kTXmB6ADs/9+ezNW3WXyFj7fhs3JcZ3mo33T9wyQySDKd//JrEtrTsc/s2PZ602y
|
||||
qNmPomXSzjrlugaMyC7LI9sR44mc7sQnchjHoxrQFD5/usTFW72UQfYCORsQWYMt
|
||||
0KKEyAcpRL51RE3xbX1WDtduFYGP62PbwLAn2nCL/j1wlF5hltWj7sditWqKgso5
|
||||
F8BTffn2Bb0RdsNxqwMy1cTPrWLeXVOqMDu3ge7hvoav8lZKTjk5Kmqhs7wNAQXK
|
||||
mg9qSwo=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,25 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMTCCAxmgAwIBAgIGAXRTgcMnMA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT
|
||||
AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK
|
||||
DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW
|
||||
YWxpZGF0aW9uIENBMB4XDTIwMTAxMDA1MjQxNFoXDTMwMTAwODA1MjQxNFowZTEL
|
||||
MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx
|
||||
FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu
|
||||
Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt1zHL54HiI8d2sLJ
|
||||
lwoQji3/ln0nsvfZ/XVpOjuB+1YR6/0LdxEDMC/hxI6iH2Rm5MjwWz3dmN/6BZeI
|
||||
gwGeTOWJUZFARo8UduKrlhC6gWMRpAiiGC8wA8stikc5gYB+UeFVZi/aJ0WN0cpP
|
||||
JYCvPBhxhMvhVDnd4hNohnR1L7k0ypuWg0YwGjC25FaNAEFBYP9EYUyCJjE//9Z7
|
||||
sMzHR9SJYCqqo6r9bOH9G6sWKuEp+osuAh+kJIxJMHfipw7w3tEcWG0hce9u/el4
|
||||
cYJtg8/PPMVoccKmeCzMvarr7jdKP4lenJbtwlgyfs+JgNu60KMUJH8RS72wC9NY
|
||||
uFz09wIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo
|
||||
dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE
|
||||
BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh
|
||||
a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFJ2Kx9YZfmWpkKFnC33C0r5D
|
||||
K3rFMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA
|
||||
A4IBAQBZoeU0XyH9O0LGF9R+JyGwfU/O5amoB97VeM+5n9v2z8OCiIJ8eXVGKN9L
|
||||
tl9QkpTEanYwK30KkpHcJP1xfVkhPi/cCMgfTWQ5eKYC7Zm16zk7n4CP6IIgZIqm
|
||||
TVGsIGKk8RzWseyWPB3lfqMDR52V1tdA1S8lJ7a2Xnpt5M2jkDXoArl3SVSwCb4D
|
||||
AmThYhak48M++fUJNYII9JBGRdRGbfJ2GSFdPXgesUL2CwlReQwbW4GZkYGOg9LK
|
||||
CNPK6XShlNdvgPv0CCR08KCYRwC3HZ0y1F0NjaKzYdGNPrvOq9lA495ONZCvzYDo
|
||||
gmsu/kd6eqxTs/JwdaIYr4sCMg8Z
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,8 @@
|
||||
appId=OP00000003
|
||||
serialNo=00dfba8194c41b84cf
|
||||
priKeyPath=/home/manage/jcs/OP00000003\u5546\u6237\u79C1\u94A5.txt
|
||||
lklCerPath=/home/manage/jcs/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
lklNotifyCerPath=/home/manage/jcs/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
sm4Key=uIj6CPg1GZAY10dXFfsEAQ==
|
||||
serverUrl = https://test.wsmsd.cn/sit
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
appId=OP00000003
|
||||
serialNo=00dfba8194c41b84cf
|
||||
priKeyPath=ruoyi-common/ruoyi-common-pay/src/main/resources/OP00000003\u5546\u6237\u79C1\u94A5.txt
|
||||
#lklCerPath=lkl-zf-bs-laop-java-sdk-sample/src/main/resources/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
lklCerPath=ruoyi-common/ruoyi-common-pay/src/main/resources/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
#lklNotifyCerPath=lkl-zf-bs-laop-java-sdk-sample/src/main/resources/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
lklNotifyCerPath=ruoyi-common/ruoyi-common-pay/src/main/resources/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
sm4Key=uIj6CPg1GZAY10dXFfsEAQ==
|
||||
serverUrl = https://test.wsmsd.cn/sit
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
appId=800000010334001
|
||||
serialNo=48066e7ce3551149cd9ebdaf924582794137feb6
|
||||
priKeyPath=lkl-zf-bs-laop-java-sdk-sample/src/main/resources/800000010334001\u79C1\u94A5.txt
|
||||
lklCerPath=lkl-zf-bs-laop-java-sdk-sample/src/main/resources/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
lklNotifyCerPath=lkl-zf-bs-laop-java-sdk-sample/src/main/resources/lakala\u5F00\u653E\u5E73\u53F0\u8BC1\u4E66.cer
|
||||
sm4Key=WNEbweljs25BpaSxko1NUw==
|
||||
serverUrl = https://test.wsmsd.cn/sit
|
||||
14
ruoyi-common/ruoyi-common-pay/src/main/resources/logback.xml
Normal file
14
ruoyi-common/ruoyi-common-pay/src/main/resources/logback.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<configuration>
|
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>[%d] [%-5level] %logger{0} %line -- %msg%n</pattern>
|
||||
<charset>utf8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user