拉卡拉支付增加接口

This commit is contained in:
Jack 2025-01-21 00:15:34 +08:00
parent a31bee549d
commit 8b2d9bc383
15 changed files with 213 additions and 157 deletions

View File

@ -89,6 +89,7 @@ secure:
- "/admin/account/open/**" - "/admin/account/open/**"
- "/esProduct/**" - "/esProduct/**"
- "/admin/oss/upload/**" - "/admin/oss/upload/**"
- "/mobile/**/**/test/case"
universal: universal:
urls: urls:
- "/admin/account/account-user-base/info" - "/admin/account/account-user-base/info"

View File

@ -137,7 +137,9 @@
<filtering>true</filtering> <filtering>true</filtering>
<includes> <includes>
<include>**/*.crt</include> <include>**/*.crt</include>
<include>**/*.pem</include>
<include>**/*.p12</include> <include>**/*.p12</include>
<include>**/*.cer</include>
<include>**/*.properties</include> <include>**/*.properties</include>
<include>application.yml</include> <include>application.yml</include>
<include>bootstrap.yml</include> <include>bootstrap.yml</include>
@ -151,6 +153,9 @@
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>com.spotify</groupId> <groupId>com.spotify</groupId>

View File

@ -11,7 +11,7 @@ package com.suisung.mall.pay.service.impl;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ijpay.core.kit.IpKit; import com.ijpay.core.kit.IpKit;
import com.lkl.laop.sdk.Config; import com.lkl.laop.sdk.Config2;
import com.lkl.laop.sdk.LKLSDK; import com.lkl.laop.sdk.LKLSDK;
import com.lkl.laop.sdk.exception.SDKException; import com.lkl.laop.sdk.exception.SDKException;
import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest; import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest;
@ -20,50 +20,51 @@ import com.lkl.laop.sdk.request.model.V3LabsTradePreorderWechatBus;
import com.suisung.mall.pay.service.LakalaService; import com.suisung.mall.pay.service.LakalaService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@Slf4j @Slf4j
@Service @Service
public class LakalaServiceImpl implements LakalaService { public class LakalaServiceImpl implements LakalaService {
private static volatile boolean init = false; private static volatile boolean init = false;
@Value("${lakala.term_no}")
private String termNo;
@Value("${lakala.app_id}")
private String appId; // 拉卡拉appId
@Value("${lakala.serial_no}")
private String serialNo; // 你的证书序列号
@Value("${lakala.merchant_no}")
private String merchantNo;
/**
* 商户私钥信息地址
*/
@Value("${lakala.pri_key_path}")
private String priKeyPath;
/**
* 拉卡拉支付平台证书地址
*/
// @Value("${lakala.lkl_cer_path}")
@Value("${lakala.lkl_notify_cer_path}")
private String lklCerPath;
/**
* 拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
*/
@Value("${lakala.lkl_notify_cer_path}")
private String lklNotifyCerPath;
/**
* 拉卡拉报文加密对称性密钥
*/
@Value("${lakala.sm4_key}")
private String sm4Key;
/** /**
* 服务地址 * 服务地址
*/ */
@Value("${lakala.server_url}") @Value("${lakala.server_url}")
private String serverUrl; private String serverUrl;
@Value("${lakala.app_id}")
private String appId; // 拉卡拉appId
@Value("${lakala.merchant_no}")
private String merchantNo;
@Value("${lakala.serial_no}")
private String serialNo; // 你的证书序列号
@Value("${lakala.term_no}")
private String termNo;
/**
* 商户私钥信息地址
*/
@Value("${lakala.api_pri_key_path}")
private String priKeyPath;
/**
* 拉卡拉支付平台证书地址
*/
@Value("${lakala.lkl_platform_cer_path}")
private String lklCerPath;
/**
* 拉卡拉支付平台证书地址2(用于拉卡拉通知验签)
*/
@Value("${lakala.lkl_platform_cer_path}")
private String lklNotifyCerPath;
/*** /***
* @Description: 初始化设置商户公共参数全局只需设置一次 * @Description: 初始化设置商户公共参数全局只需设置一次
@ -75,26 +76,38 @@ public class LakalaServiceImpl implements LakalaService {
} }
} }
private String getResourceFile(String fileName) {
StringBuilder stringBuilder = new StringBuilder();
try (InputStream inputStream = new ClassPathResource(fileName).getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
} catch (IOException e) {
// 记录异常信息
log.error(e.getMessage());
}
String content = stringBuilder.toString();
log.info("证书内容:{}", content);
return content;
}
/** /**
* 初始化 拉卡拉 SDK * 初始化 拉卡拉 SDK
* *
* @return * @return
*/ */
public boolean initLKLSDK() { public boolean initLKLSDK() {
Config config = new Config(); Config2 config = new Config2();
config.setAppId(appId); config.setAppId(appId);
config.setSerialNo(serialNo); config.setSerialNo(serialNo);
config.setPriKeyPath(priKeyPath); config.setPriKey(getResourceFile(priKeyPath));
config.setLklCerPath(lklCerPath); config.setLklCer(getResourceFile(lklCerPath));
config.setLklNotifyCerPath(lklNotifyCerPath); config.setLklNotifyCer(getResourceFile(lklNotifyCerPath));
config.setServerUrl(serverUrl); config.setServerUrl(serverUrl);
config.setSm4Key(sm4Key); return LKLSDK.init(config);
try {
return LKLSDK.init(config);
} catch (SDKException e) {
log.error("doInit error", e);
throw new RuntimeException(e);
}
} }
@Override @Override

View File

@ -195,7 +195,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
// 总待支付金额 // 总待支付金额
BigDecimal trade_payment_amount = trade_rows.stream().map(PayConsumeTrade::getTrade_payment_amount).reduce(BigDecimal::add).get(); BigDecimal trade_payment_amount = trade_rows.stream().map(PayConsumeTrade::getTrade_payment_amount).reduce(BigDecimal::add).get();
if (trade_payment_amount.compareTo(BigDecimal.ZERO) > 0 && !StrUtil.equals(payment_channel_code, "offline")) { if (trade_payment_amount.compareTo(BigDecimal.ZERO) > 0 && !StrUtil.equals(payment_channel_code, "offline")) {
// 金额大于0且不是线下交易的情况
BigDecimal trade_payment_recharge_card = (BigDecimal) requestParams.get("trade_payment_recharge_card"); BigDecimal trade_payment_recharge_card = (BigDecimal) requestParams.get("trade_payment_recharge_card");
BigDecimal trade_payment_points = (BigDecimal) requestParams.get("trade_payment_points"); BigDecimal trade_payment_points = (BigDecimal) requestParams.get("trade_payment_points");
BigDecimal trade_payment_sp = (BigDecimal) requestParams.get("trade_payment_sp"); BigDecimal trade_payment_sp = (BigDecimal) requestParams.get("trade_payment_sp");
@ -253,7 +253,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
trade_row.setTrade_title(I18nUtil._("在线购物")); trade_row.setTrade_title(I18nUtil._("在线购物"));
trade_row.setTrade_desc(I18nUtil._("在线购物")); trade_row.setTrade_desc(I18nUtil._("在线购物"));
} }
// 去支付 // 重要注去支付
toPay(request, response, trade_row, payTypeBean); toPay(request, response, trade_row, payTypeBean);
return; return;
} else { } else {
@ -417,6 +417,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
aliPcPay(response, trade_row, payTypeBean); aliPcPay(response, trade_row, payTypeBean);
break; break;
case WX_XCX: case WX_XCX:
// 小程序
String wechat_xcx_app_id = accountBaseConfigService.getConfig("wechat_xcx_app_id"); String wechat_xcx_app_id = accountBaseConfigService.getConfig("wechat_xcx_app_id");
wxJSAPIPay(request, response, trade_row, payTypeBean.getOpenid(), wechat_xcx_app_id); wxJSAPIPay(request, response, trade_row, payTypeBean.getOpenid(), wechat_xcx_app_id);
break; break;
@ -499,7 +500,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl<PayUserPayMapper, Pay
} }
/** /**
* 微信公众号 支付 * 微信公众号小程序 支付自己对接微信支付平台的方法
* *
* @param request * @param request
* @param response * @param response

View File

@ -111,12 +111,19 @@ logstash:
host: @logstash.host@ host: @logstash.host@
#拉卡拉支付和分账 #拉卡拉支付和分账
lakala: lakala:
app_id: OP00000003 #服务地址
serial_no: 00dfba8194c41b84cf
merchant_no: 82229007392000A
pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem
lkl_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer
lkl_notify_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer
term_no: D9296400
sm4_key: uIj6CPg1GZAY10dXFfsEAQ==
server_url: https://test.wsmsd.cn/sit server_url: https://test.wsmsd.cn/sit
#应用Id
app_id: OP00000003
#商户号
merchant_no: 82229007392000A
#商户证书序列号
serial_no: 00dfba8194c41b84cf
#商户证书
api_cert_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer
#商户私钥
api_pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem
#拉卡拉平台证书
lkl_platform_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer
#终端号
term_no: D9296400

View File

@ -111,12 +111,19 @@ logstash:
host: @logstash.host@ host: @logstash.host@
#拉卡拉支付和分账 #拉卡拉支付和分账
lakala: lakala:
app_id: OP00000003 # 服务地址
serial_no: 00dfba8194c41b84cf server_url: https://s2.lakala.com
merchant_no: 82229007392000A #应用Id
pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem app_id: OP10000439
lkl_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer #商户号
lkl_notify_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer merchant_no: 8226330599900LN
term_no: D9296400 #商户证书序列号
sm4_key: uIj6CPg1GZAY10dXFfsEAQ== serial_no: 1737359895636
server_url: https://test.wsmsd.cn/sit #商户证书
api_cert_path: payKey/lakala/prod/api_cert.cer
#商户私钥
api_pri_key_path: payKey/lakala/prod/api_private_key.pem
#拉卡拉平台证书
lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
#终端号码M0780629B2B收银台 M0780798专业化扫码
term_no: M0780798

View File

@ -113,12 +113,19 @@ logstash:
host: @logstash.host@ host: @logstash.host@
#拉卡拉支付和分账 #拉卡拉支付和分账
lakala: lakala:
app_id: OP00000003 # 服务地址
serial_no: 00dfba8194c41b84cf server_url: https://s2.lakala.com
merchant_no: 82229007392000A #应用Id
pri_key_path: mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_private_key.pem app_id: OP10000439
lkl_cer_path: mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_cert.cer #商户号
lkl_notify_cer_path: mall-pay/src/main/resources/payKey/lakala/prod/lkl_notify_cert_v2.cer merchant_no: 8226330599900LN
term_no: D9296400 #商户证书序列号
sm4_key: uIj6CPg1GZAY10dXFfsEAQ== serial_no: 1737359895636
server_url: https://test.wsmsd.cn/sit #商户证书
api_cert_path: payKey/lakala/prod/api_cert.cer
#商户私钥
api_pri_key_path: payKey/lakala/prod/api_private_key.pem
#拉卡拉平台证书
lkl_platform_cer_path: payKey/lakala/prod/lkl_platform.cer
#终端号码M0780629B2B收银台 M0780798专业化扫码
term_no: M0780798

View File

@ -111,12 +111,19 @@ logstash:
host: @logstash.host@ host: @logstash.host@
#拉卡拉支付和分账 #拉卡拉支付和分账
lakala: lakala:
app_id: OP00000003 #服务地址
serial_no: 00dfba8194c41b84cf
merchant_no: 82229007392000A
pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem
lkl_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer
lkl_notify_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer
term_no: D9296400
sm4_key: uIj6CPg1GZAY10dXFfsEAQ==
server_url: https://test.wsmsd.cn/sit server_url: https://test.wsmsd.cn/sit
#应用Id
app_id: OP00000003
#商户号
merchant_no: 82229007392000A
#商户证书序列号
serial_no: 00dfba8194c41b84cf
#商户证书
api_cert_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer
#商户私钥
api_pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem
#拉卡拉平台证书
lkl_platform_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer
#终端号
term_no: D9296400

View File

@ -111,12 +111,19 @@ logstash:
host: @logstash.host@ host: @logstash.host@
#拉卡拉支付和分账 #拉卡拉支付和分账
lakala: lakala:
app_id: OP00000003 #服务地址
serial_no: 00dfba8194c41b84cf
merchant_no: 82229007392000A
pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem
lkl_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer
lkl_notify_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer
term_no: D9296400
sm4_key: uIj6CPg1GZAY10dXFfsEAQ==
server_url: https://test.wsmsd.cn/sit server_url: https://test.wsmsd.cn/sit
#应用Id
app_id: OP00000003
#商户号
merchant_no: 82229007392000A
#商户证书序列号
serial_no: 00dfba8194c41b84cf
#商户证书
api_cert_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer
#商户私钥
api_pri_key_path: mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem
#拉卡拉平台证书
lkl_platform_cer_path: mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer
#终端号
term_no: D9296400

View File

@ -1,21 +0,0 @@
-----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-----

View File

@ -1,28 +0,0 @@
-----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-----

View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDoDCCAoigAwIBAgIGAZSCuCxUMA0GCSqGSIb3DQEBBQUAMGAxFDASBgNVBAMM
C0xBS0FMQS1MQU9QMQswCQYDVQQGEwJDTjEXMBUGA1UECgwOTGFrYWxhIENvLixM
dGQxDzANBgNVBAsMBkxLTC1ZRjERMA8GA1UEBwwIc2hhbmdoYWkwHhcNMjUwMTIw
MDc1ODE1WhcNMzUwMTIwMDc1ODE1WjBgMRQwEgYDVQQDDAtMQUtBTEEtTEFPUDEL
MAkGA1UEBhMCQ04xFzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMQ8wDQYDVQQLDAZM
S0wtWUYxETAPBgNVBAcMCHNoYW5naGFpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAksIeSx7qKgmI7yFSglMBsty3ZoyC8qsCbLSWANwUPYikd5TPojB8
43wJGJxOBOtDV8FL55q0zX3eQOE4BOVGcDMMUsZsAhy4ST46ne4e8CFVFHmM6TON
tS5Kla0hLjETpUjYStR8En534uoLYvnNPAI1CvmvWiUo+QGd3yc2SmyE+XB/8bKk
wiLjAauGyfb8m2BgCaoBIai+0IImInX2Xb85L0TAu0eYC6fX1T8BCupA4EVOpvLL
cM5P8nye4mibgS46lzlve1soC73W1vGAHnMw4epzk89NHKIMYEmZPoCU6jKuDbR0
K73QwU0QZt9MSJnTdnWt/PeUJ8PzkhV0RQIDAQABo2AwXjAPBgNVHRMECDAGAQH/
AgEAMB8GA1UdIwQYMBaAFG1rabju/OE7B3cPuQFZhs77ku5qMB0GA1UdDgQWBBRt
a2m47vzhOwd3D7kBWYbO+5LuajALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQAD
ggEBACzdFsulR2X6HPKX+D2VU7msJyXRVWrAi06SV/zds8lPYUwSTEksbpWejD5L
ABftyv5DL7bU66vL80she2r5d+DbY+gB2hAgRHW+ymzfAqQJOcpciAXZHxc4orf+
V4YtmLIRT0lg9rfU93D4S9fPe+HHMAmKFQXjnZNiv7DOar62MP0RrI74hWevaZao
gK8cMspxUW7H9VFvJvgGZRTRXVFHIvaPOpvlsdCYfUDomH2sWVLIiaSQoAVXxoET
c0HJB0er7Df2PSBSF/8bl9cVmp5HDB2YgtlfNKaFneGNN2WQtO3gl56heud8hGAe
F4YZkE8ML2mh83QqVSY4AkfWo+0=
-----END CERTIFICATE-----

View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCSwh5LHuoqCYjv
IVKCUwGy3LdmjILyqwJstJYA3BQ9iKR3lM+iMHzjfAkYnE4E60NXwUvnmrTNfd5A
4TgE5UZwMwxSxmwCHLhJPjqd7h7wIVUUeYzpM421LkqVrSEuMROlSNhK1HwSfnfi
6gti+c08AjUK+a9aJSj5AZ3fJzZKbIT5cH/xsqTCIuMBq4bJ9vybYGAJqgEhqL7Q
giYidfZdvzkvRMC7R5gLp9fVPwEK6kDgRU6m8stwzk/yfJ7iaJuBLjqXOW97WygL
vdbW8YAeczDh6nOTz00cogxgSZk+gJTqMq4NtHQrvdDBTRBm30xImdN2da3895Qn
w/OSFXRFAgMBAAECggEACN60qAOpUXscDJ/t9bSAoMfYSdlqPLJ7RgiwHEMw8fsl
PZj/56SYl8MyZYtk58U0X8RuCwR9swHNggxar2kQFc3wC7y0YHhN5xdcwZjXw9mv
47no+1tDUFUI6vz4yWrr7gx2DifDi/aa1lsg7w18CwlzHUO0BnXCgTJI0Wj0ThEj
k3AxCv41a4dwQW2EejaikMdzkWv7p9cG1cjJocBvaURg8RZrw2v1lqXx9iZb5Ywv
XkQP907AAnUn40bLgQ7hyUruxjKPzIM5ZjIER6PTtvGk1Uzt7Kj2YZZ4egYp0PXv
5fEJIcppeIyGfatEZ4U/ZmfA0L7+xtSY8kICndPSTQKBgQDHy5n6N6JdYyyrVFH/
x4xTHwyiReOzw5Pz2K9uSxZM6pmDWfZexAxkpMycQotZYOk6GYDqml5XAiXAYVKn
i9FCEC6PnFRZ/v7TN3ag3k8eXwLrQu589+X0ppOizIp01IQ8AWAUr1tA/UcqLt8T
5XSHnoEDo9SY9Aw1kskY5TWoowKBgQC8CwRxfFNWk3Na+U4HgvVv8CSrB7rbkLUI
L11jNKFx4xms8uIjBrIencHsRAazoG73wMsY7MzbPtJKIFcXmSKjLFClJ6luN9np
1tYkWXF/nyo6L2IhCG7N28sxYa56XTR0lDnfkW+LiI7iaC1Z+XUtxoY3ZIL+0Dbv
wCfYS2I19wKBgQCtoRjtRJALzHYzZpHkUQx36BHYrBgYTy0yyuqaVRLKQU6rwfDD
pmiGxlkyqvni8L9+yE8qkoDN6IXaTDnCdVWjreBo2ZjMpTfbYuXrI4dqg3NL9NzB
KcZj+Kdw4YSpx04rv546G7KYJgREentPFSdR/MNt4GCPk/dQT4IH6pnZNQKBgQC2
esKPFqURCPoSuIf+RhnDzPjoeBHe7KihDsXDddmN2WKbMQA+GUtU5qa/jqwqOHA3
QQJWZ8XMpUQQ5x1dKyAv1NtVyg1jhhOUFwWsNJgtztl9qWnCwJo2byrZ+v8Eg9pZ
n1YiHNJwR87Q62PHQotyJossyf9NI+WL958zCMR/tQKBgCTDIKnfjq4riVLEOLxl
oGzGMowFTp9v8dyvrYj71C0ZDzLg/EH1tTQ4K46GIXJfyZvIATAIisC6R37KNmUA
w8f6YAOSS+iZBSZo36DoGIqJTYGyYgQDDftMsj/gxthgwRO5Zhwbn63ayJkWYyPy
C1RJ27LO8qX+3/s5pV7G9GlO
-----END PRIVATE KEY-----

View File

@ -1,25 +0,0 @@
-----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-----

View File

@ -0,0 +1,25 @@
-----BEGIN CERTIFICATE-----
MIIEMTCCAxmgAwIBAgIGAXUrc4b4MA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNVBAYT
AkNOMRAwDgYDVQQIDAdCZWlKaW5nMRAwDgYDVQQHDAdCZWlKaW5nMRcwFQYDVQQK
DA5MYWthbGEgQ28uLEx0ZDEqMCgGA1UEAwwhTGFrYWxhIE9yZ2FuaXphdGlvbiBW
YWxpZGF0aW9uIENBMB4XDTIwMTAxNTA4NDk1MloXDTMwMTAxMzA4NDk1MlowZTEL
MAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaUppbmcxEDAOBgNVBAcMB0JlaUppbmcx
FzAVBgNVBAoMDkxha2FsYSBDby4sTHRkMRkwFwYDVQQDDBBBUElHVy5MQUtBTEEu
Q09NMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwAXZw9lupWcFXouC
Nhm0DQT47Zf4KOIRF8rqT8Ps3pYzT8odROJ8rq4P+lciGrg29czpqrRM22yQktFr
itvcM7JlE6jFbGH3rycnvGvhRYU/j1N9k0ozm8oVwmKX357/OtGzNivBECGSnU9L
Bkp4Nm9M1K4cOwEuZ0xsQEthZjQYF0mDpnlWmVJL5i1Lq834atN2qrb/mzMHBNtD
JnqRV7rPL39lKpe7LJiitsC2JuW1UbWZZU1NNwA/rz2d83C+KD1DLJ0+sMYY2Q3T
OQ4BPAowDEwOH7XAXrHM/0kRm+ZeIFlwevEGIQWmMt1Ogz+AW4Iq0slINc4wOINK
vH9tHwIDAQABo4HVMIHSMIGSBgNVHSMEgYowgYeAFCnH4DkZPR6CZxRn/kIqVsMo
dJHpoWekZTBjMQswCQYDVQQGEwJDTjEQMA4GA1UECAwHQmVpSmluZzEQMA4GA1UE
BwwHQmVpSmluZzEXMBUGA1UECgwOTGFrYWxhIENvLixMdGQxFzAVBgNVBAMMDkxh
a2FsYSBSb290IENBggYBaiUALIowHQYDVR0OBBYEFIya0Yc4OSBer55JLyA0AYe9
m8mTMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUA
A4IBAQCBEwOlk3mXigNv94Drn3dcaY2ml/y+8yNpAIuUhuBE00WFoqEX5lOatFy5
fzdXuC12lBVQ8SjSm3aH7k2X0eXqDzkOHiur2ZBRKmJ++J4TeenuSUOjSIbQK/DT
vxaqFUjYwFSVCyizpy7wfU4wKt+jOuFb9LyULJ9lkM1dV9Kh7Lmd9+nlJYYuPEPU
LJkkVZqSALSiiJudXnTwlISjZTXEAkJpdIlMw+hvPTAkoG95B95M+OV/uLbItGK+
qT4+RHWo8EbBDPQYo6J4QYHOxRlfMoGBMyrz6XDt7ELLmT7ld4aE02w6KQPfK3gq
kLDT+/STozvaNmXzBJh7J6KqxJBH
-----END CERTIFICATE-----