diff --git a/mall-common/pom.xml b/mall-common/pom.xml index 626d5647..e679edd6 100644 --- a/mall-common/pom.xml +++ b/mall-common/pom.xml @@ -94,10 +94,12 @@ com.suisung.mall core 1.0.3 - + + + mybatis-plus-boot-starter + com.baomidou + + @@ -133,7 +135,7 @@ org.bouncycastle bcprov-jdk15on - 1.55 + 1.59 compile @@ -149,6 +151,16 @@ com.aliyun.oss aliyun-sdk-oss + + + commons-lang + commons-lang + + + commons-logging + commons-logging + + com.aliyun @@ -164,6 +176,12 @@ com.tencentcloudapi tencentcloud-sdk-java 3.1.87 + + + okhttp + com.squareup.okhttp + + com.github.qcloudsms diff --git a/mall-pay/pom.xml b/mall-pay/pom.xml index 116aa12f..cd7f53e2 100644 --- a/mall-pay/pom.xml +++ b/mall-pay/pom.xml @@ -68,6 +68,17 @@ de.codecentric spring-boot-admin-starter-client + + + + com.lkl.laop.sdk + lkl-laop-java-sdk + 1.0.7 + ${project.basedir}/src/main/resources/lib/lkl-java-sdk-1.0.7.jar + system + + + org.springframework.boot diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java b/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java index 4f17a582..f7369623 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/controller/mobile/IndexController.java @@ -3,6 +3,7 @@ package com.suisung.mall.pay.controller.mobile; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.suisung.mall.common.api.CommonResult; @@ -26,10 +27,7 @@ import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -44,28 +42,29 @@ import java.util.Map; @RequestMapping("/mobile/pay/index") public class IndexController extends BaseControllerImpl { + private static final Logger log = LoggerFactory.getLogger(IndexController.class); @Autowired private PayUserPayService payUserPayService; - @Autowired private PayConsumeRecordService payConsumeRecordService; - @Autowired private PayPaymentChannelService payPaymentChannelService; - @Autowired private PayBaseRechargeLevelService payBaseRechargeLevelService; - @Autowired private PayConsumeTradeService payConsumeTradeService; - @Autowired private PayConsumeWithdrawService payConsumeWithdrawService; - @Autowired private PayUserResourceService payUserResourceService; + @Autowired + private LakalaService lakalaService; - private static final Logger log = LoggerFactory.getLogger(IndexController.class); + @ApiOperation(value = "测试接口", notes = "测试接口") + @RequestMapping(value = "/test/case", method = RequestMethod.POST) + public JSONObject testCase(@RequestBody JSONObject objectJSON){ + return lakalaService.transPreOrder((String) objectJSON.get("orderId")); + } @ApiOperation(value = "获取支付密码", notes = "获取支付密码") @RequestMapping(value = "/getPayPasswd", method = RequestMethod.GET) @@ -220,7 +219,7 @@ public class IndexController extends BaseControllerImpl { requestParams.put("password", password); // 支付方式 - PayTypeBean payTypeBean = new PayTypeBean(prepayapp_flag, mp_flag, return_flag, prepay_flag,pc_scancode_flag,openid, payment_channel_code); + PayTypeBean payTypeBean = new PayTypeBean(prepayapp_flag, mp_flag, return_flag, prepay_flag, pc_scancode_flag, openid, payment_channel_code); payUserPayService.pay(request, response, requestParams, payTypeBean); } @@ -246,14 +245,14 @@ public class IndexController extends BaseControllerImpl { } @RequestMapping(value = "/pay_state_detection", method = RequestMethod.GET) - public CommonResult payStateDetection(@RequestParam String order_id){ + public CommonResult payStateDetection(@RequestParam String order_id) { UserDto userDto = getCurrentUser(); QueryWrapper tradeQueryWrapper = new QueryWrapper<>(); - tradeQueryWrapper.eq("order_id",order_id); - tradeQueryWrapper.eq("buyer_id",userDto.getId()); + tradeQueryWrapper.eq("order_id", order_id); + tradeQueryWrapper.eq("buyer_id", userDto.getId()); PayConsumeTrade payConsumeTrade = payConsumeTradeService.findOne(tradeQueryWrapper); Integer trade_is_paid = payConsumeTrade.getTrade_is_paid(); - if (trade_is_paid.equals(StateCode.ORDER_PAID_STATE_YES)){ + if (trade_is_paid.equals(StateCode.ORDER_PAID_STATE_YES)) { return CommonResult.success("订单已支付"); } return CommonResult.failed("订单未支付"); diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/LakalaService.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/LakalaService.java new file mode 100644 index 00000000..643a7379 --- /dev/null +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/LakalaService.java @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.pay.service; + +import cn.hutool.json.JSONObject; + +public interface LakalaService { + + JSONObject transPreOrder(String orderId); +} diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaServiceImpl.java new file mode 100644 index 00000000..e5612176 --- /dev/null +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/LakalaServiceImpl.java @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.pay.service.impl; + + +import cn.hutool.json.JSONUtil; +import com.lkl.laop.sdk.Config; +import com.lkl.laop.sdk.LKLSDK; +import com.lkl.laop.sdk.exception.SDKException; +import com.lkl.laop.sdk.request.V3LabsTransPreorderRequest; +import com.lkl.laop.sdk.request.model.V3LabsTradeLocationInfo; +import com.lkl.laop.sdk.request.model.V3LabsTradePreorderWechatBus; +import com.suisung.mall.pay.service.LakalaService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class LakalaServiceImpl implements LakalaService { + + @Value("${lakala.term_no}") + private String termNo; + private static volatile boolean init = false; + @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}") + private String serverUrl; + + /*** + * @Description: 初始化设置商户公共参数(全局只需设置一次) + * @throws Exception + */ + public void doInit() { + if (!init) { + init = initLKLSDK(); + } + } + + /** + * 初始化 拉卡拉 SDK + * + * @return + */ + public boolean initLKLSDK() { + 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); + try { + return LKLSDK.init(config); + } catch (SDKException e) { + log.error("doInit error", e); + throw new RuntimeException(e); + } + } + + @Override + public cn.hutool.json.JSONObject transPreOrder(String orderId) { + // 1. 配置初始化 + doInit(); + //2. 装配数据 + /*** 微信主扫场景示例 */ + V3LabsTransPreorderRequest v3LabsTransPreorderWechatReq = new V3LabsTransPreorderRequest(); + v3LabsTransPreorderWechatReq.setMerchantNo(merchantNo); + v3LabsTransPreorderWechatReq.setTermNo(termNo); + v3LabsTransPreorderWechatReq.setOutTradeNo(orderId); + v3LabsTransPreorderWechatReq.setSubject("油麦菜5斤装特惠"); + v3LabsTransPreorderWechatReq.setAccountType("WECHAT"); + v3LabsTransPreorderWechatReq.setTransType("51"); + v3LabsTransPreorderWechatReq.setTotalAmount("1"); + v3LabsTransPreorderWechatReq.setNotifyUrl("http://mall.gpxscs.cn/notify"); + v3LabsTransPreorderWechatReq.setRemark("测试预下单备注"); + + //地址位置信息 + V3LabsTradeLocationInfo v3LabsTradePreorderLocationInfo1 = new V3LabsTradeLocationInfo("12.34.56.78"); + v3LabsTransPreorderWechatReq.setLocationInfo(v3LabsTradePreorderLocationInfo1); + + //微信主扫场景下acc_busi_fields域内容 + V3LabsTradePreorderWechatBus wechatBus = new V3LabsTradePreorderWechatBus(); + wechatBus.setSubAppid("wx5a73f844dac0da5c"); + wechatBus.setUserId("oDVKR7T0qxg6O8tqIL9SgY6LXqqQ"); + wechatBus.setGoodsTag("农家食品"); + wechatBus.setLimitPayer("ADULT"); + v3LabsTransPreorderWechatReq.setAccBusiFields(wechatBus); + + //3. 发送请求 + String response = ""; + try { + response = LKLSDK.httpPost(v3LabsTransPreorderWechatReq); + + //4. 响应 + return JSONUtil.parseObj(response); + } catch (SDKException e) { + log.error("doInit error", e); + throw new RuntimeException(e); + } + + } + +} diff --git a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java index a2c27410..5983d9e7 100644 --- a/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java +++ b/mall-pay/src/main/java/com/suisung/mall/pay/service/impl/PayUserPayServiceImpl.java @@ -48,10 +48,10 @@ import com.suisung.mall.common.modules.order.ShopOrderInfo; import com.suisung.mall.common.modules.order.ShopOrderReturn; import com.suisung.mall.common.modules.pay.*; import com.suisung.mall.common.modules.pay.dto.ItemActivityInfoDTO; -import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.common.utils.CheckUtil; import com.suisung.mall.common.utils.I18nUtil; import com.suisung.mall.common.utils.LogUtil; +import com.suisung.mall.core.web.service.impl.BaseServiceImpl; import com.suisung.mall.pay.entity.AliPayBean; import com.suisung.mall.pay.entity.H5SceneInfo; import com.suisung.mall.pay.entity.PayTypeBean; @@ -61,7 +61,6 @@ import io.seata.spring.annotation.GlobalTransactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; @@ -91,41 +90,30 @@ import static com.suisung.mall.common.utils.ContextUtil.getCurrentUser; @Service public class PayUserPayServiceImpl extends BaseServiceImpl implements PayUserPayService { + private static final Logger logger = LoggerFactory.getLogger(PayUserPayServiceImpl.class); @Autowired private PayPaymentChannelService payPaymentChannelService; - @Autowired private PayConsumeTradeService payConsumeTradeService; - @Autowired private AccountBaseConfigService accountBaseConfigService; - @Autowired private ShopService shopService; - @Autowired private PayConsumeTradeCombineService payConsumeTradeCombineService; - @Autowired private PayConsumeDepositService payConsumeDepositService; - @Autowired private AliPayBean aliPayBean; - @Autowired private AccountService accountService; - @Autowired private PayUserResourceService payUserResourceService; - @Autowired private DataSourceTransactionManager transactionManager; - @Autowired private TransactionDefinition transactionDefinition; - private static final Logger logger = LoggerFactory.getLogger(PayUserPayServiceImpl.class); - /** * 获取支付密码 * @@ -265,6 +253,7 @@ public class PayUserPayServiceImpl extends BaseServiceImpl params = UnifiedOrderModel.builder().appid(appid).mch_id(wxPayApiConfig.getMchId()).nonce_str(WxPayKit.generateStr()).goods_tag(trade_remark).body(subject).attach("").out_trade_no(out_trade_no).total_fee(total_fee).spbill_create_ip(ip).notify_url(domain + "/wxPay_notify_url").time_start(DateUtil.format(new Date(), "yyyyMMddHHmmss")).trade_type(TradeType.JSAPI.getTradeType()).openid(openId).build().createSign(wxPayApiConfig.getPartnerKey(), SignType.HMACSHA256); + Map params = UnifiedOrderModel.builder() + .appid(appid) + .mch_id(wxPayApiConfig.getMchId()) + .nonce_str(WxPayKit.generateStr()) + .goods_tag(trade_remark) + .body(subject).attach("") + .out_trade_no(out_trade_no) + .total_fee(total_fee) + .spbill_create_ip(ip) + .notify_url(domain + "/wxPay_notify_url") + .time_start(DateUtil.format(new Date(), "yyyyMMddHHmmss")) + .trade_type(TradeType.JSAPI.getTradeType()) + .openid(openId).build() + .createSign(wxPayApiConfig.getPartnerKey(), SignType.HMACSHA256); String xmlResult = WxPayApi.pushOrder(false, params); Map resultMap = WxPayKit.xmlToMap(xmlResult); @@ -1402,14 +1404,14 @@ public class PayUserPayServiceImpl extends BaseServiceImpl resultMap = WxPayKit.xmlToMap(xmlResult); String returnCode = resultMap.get("return_code"); String resultCode = resultMap.get("result_code"); if (!WxPayKit.codeIsOk(returnCode) || !WxPayKit.codeIsOk(resultCode)) { - LogUtil.error("微信退款异常!" + resultMap.toString()); + LogUtil.error("微信退款异常!" + resultMap); return null; } diff --git a/mall-pay/src/main/resources/bootstrap-dev.yml b/mall-pay/src/main/resources/bootstrap-dev.yml index 5c6f0879..cf8dbfd8 100644 --- a/mall-pay/src/main/resources/bootstrap-dev.yml +++ b/mall-pay/src/main/resources/bootstrap-dev.yml @@ -108,4 +108,15 @@ logging: reactor: error springfox: error logstash: - host: @logstash.host@ \ No newline at end of file + host: @logstash.host@ +#拉卡拉支付和分账 +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 \ No newline at end of file diff --git a/mall-pay/src/main/resources/bootstrap-local.yml b/mall-pay/src/main/resources/bootstrap-local.yml index 5c6f0879..cf8dbfd8 100644 --- a/mall-pay/src/main/resources/bootstrap-local.yml +++ b/mall-pay/src/main/resources/bootstrap-local.yml @@ -108,4 +108,15 @@ logging: reactor: error springfox: error logstash: - host: @logstash.host@ \ No newline at end of file + host: @logstash.host@ +#拉卡拉支付和分账 +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 \ No newline at end of file diff --git a/mall-pay/src/main/resources/bootstrap-prod.yml b/mall-pay/src/main/resources/bootstrap-prod.yml index d54022e5..267e906d 100644 --- a/mall-pay/src/main/resources/bootstrap-prod.yml +++ b/mall-pay/src/main/resources/bootstrap-prod.yml @@ -110,4 +110,15 @@ logging: reactor: error springfox: error logstash: - host: @logstash.host@ \ No newline at end of file + host: @logstash.host@ +#拉卡拉支付和分账 +lakala: + app_id: OP00000003 + serial_no: 00dfba8194c41b84cf + merchant_no: 82229007392000A + pri_key_path: mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_private_key.pem + 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 + term_no: D9296400 + sm4_key: uIj6CPg1GZAY10dXFfsEAQ== + server_url: https://test.wsmsd.cn/sit \ No newline at end of file diff --git a/mall-pay/src/main/resources/bootstrap-test.yml b/mall-pay/src/main/resources/bootstrap-test.yml index 5c6f0879..cf8dbfd8 100644 --- a/mall-pay/src/main/resources/bootstrap-test.yml +++ b/mall-pay/src/main/resources/bootstrap-test.yml @@ -108,4 +108,15 @@ logging: reactor: error springfox: error logstash: - host: @logstash.host@ \ No newline at end of file + host: @logstash.host@ +#拉卡拉支付和分账 +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 \ No newline at end of file diff --git a/mall-pay/src/main/resources/bootstrap-uat.yml b/mall-pay/src/main/resources/bootstrap-uat.yml index 5c6f0879..cf8dbfd8 100644 --- a/mall-pay/src/main/resources/bootstrap-uat.yml +++ b/mall-pay/src/main/resources/bootstrap-uat.yml @@ -108,4 +108,15 @@ logging: reactor: error springfox: error logstash: - host: @logstash.host@ \ No newline at end of file + host: @logstash.host@ +#拉卡拉支付和分账 +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 \ No newline at end of file diff --git a/mall-pay/src/main/resources/lib/lkl-java-sdk-1.0.7.jar b/mall-pay/src/main/resources/lib/lkl-java-sdk-1.0.7.jar new file mode 100644 index 00000000..aee89f34 Binary files /dev/null and b/mall-pay/src/main/resources/lib/lkl-java-sdk-1.0.7.jar differ diff --git a/mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer b/mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer new file mode 100644 index 00000000..f85afd02 --- /dev/null +++ b/mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_cert.cer @@ -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----- diff --git a/mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem b/mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem new file mode 100644 index 00000000..7d95886c --- /dev/null +++ b/mall-pay/src/main/resources/payKey/lakala/dev/OP00000003_private_key.pem @@ -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----- diff --git a/mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer b/mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer new file mode 100644 index 00000000..12723ebe --- /dev/null +++ b/mall-pay/src/main/resources/payKey/lakala/dev/lkl_notify_cert_v2.cer @@ -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----- diff --git a/mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_cert.cer b/mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_cert.cer new file mode 100644 index 00000000..f85afd02 --- /dev/null +++ b/mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_cert.cer @@ -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----- diff --git a/mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_private_key.pem b/mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_private_key.pem new file mode 100644 index 00000000..7d95886c --- /dev/null +++ b/mall-pay/src/main/resources/payKey/lakala/prod/OP00000003_private_key.pem @@ -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----- diff --git a/mall-pay/src/main/resources/payKey/lakala/prod/lkl_notify_cert_v2.cer b/mall-pay/src/main/resources/payKey/lakala/prod/lkl_notify_cert_v2.cer new file mode 100644 index 00000000..12723ebe --- /dev/null +++ b/mall-pay/src/main/resources/payKey/lakala/prod/lkl_notify_cert_v2.cer @@ -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-----