diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java index 0d0ae8d..95b4738 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/MerchantOrderController.java @@ -7,6 +7,7 @@ import cn.pluss.platform.api.Result; import cn.pluss.platform.api.ResultCode; import cn.pluss.platform.api.ResultGenerator; import cn.pluss.platform.constants.ProjectConstant; +import cn.pluss.platform.deviceStock.DeviceStockService; import cn.pluss.platform.dto.*; import cn.pluss.platform.entity.*; import cn.pluss.platform.exception.MsgException; @@ -25,6 +26,7 @@ import cn.pluss.platform.sxf.pay.SxfPayService; import cn.pluss.platform.user.impl.GeneralPushUtil; import cn.pluss.platform.userApp.UserAppService; import cn.pluss.platform.util.StringUtil; +import cn.pluss.platform.util.TokenUtil; import cn.pluss.platform.vo.MemberScanVO; import cn.pluss.platform.vo.MerchantOrderVO; import com.alibaba.fastjson.JSONObject; @@ -68,6 +70,8 @@ public class MerchantOrderController { private final SxfPayService sxfPayService; private final RyxPayService ryxPayService; private final MerchantChannelStatusMapper merchantChannelStatusMapper; + @Autowired + private DeviceStockService deviceStockService; @Setter(onMethod_ = {@Lazy, @Autowired}) private IdCardService idCardService; @@ -424,6 +428,36 @@ public class MerchantOrderController { return ResultGenerator.genFailResult(e.getMessage()); } } + /** + * 博实结pos机反扫支付 + * @param merchantOrderDTO + * @return + */ + @PostMapping("/posScanPay") + public Result posScanPay(@RequestBody MerChantOrderDTO merchantOrderDTO) { + //首先验签 + Map token = TokenUtil.getToken(merchantOrderDTO.getTimestamp(), merchantOrderDTO.getRequestId()); + boolean sign = token.get("TOKEN").equals(merchantOrderDTO.getToken()); + System.out.println(token); + MsgException.check(!sign,"签名错误"); + //通过后查询商户信息 + DeviceStock deviceStock = deviceStockService.checkBind(merchantOrderDTO.getSn()); + MerchantBaseInfo merchantBaseInfoById = merchantBaseInfoService.getMerchantBaseInfoById(Integer.valueOf(deviceStock.getActMercId())); + MsgException.checkNull(merchantBaseInfoById, "找不到商户"); + merchantOrderDTO.setMerchantCode(merchantBaseInfoById.getMerchantCode()); + //校验金额 + if (!StringUtil.isMoney(String.valueOf(merchantOrderDTO.getConsumeFee()))){ + MsgException.throwException("金额异常"); + } + //进行支付操作 + try { + return merchantOrderService.toActivePay(merchantOrderDTO); + } catch (Exception e){ + e.printStackTrace(); + return ResultGenerator.genFailResult(e.getMessage()); + } + } + /** * 主扫会员支付 diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java b/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java index 4adf5f7..d40474c 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/controller/merchant/MerchantCashPlaceController.java @@ -5,6 +5,7 @@ import cn.pluss.platform.api.ResultGenerator; import cn.pluss.platform.entity.MerchantCashPayCode; import cn.pluss.platform.entity.MerchantCashPlace; import cn.pluss.platform.entity.MerchantCashPlaceStaff; +import cn.pluss.platform.exception.MsgException; import cn.pluss.platform.merchant.MerchantCashPlaceService; import cn.pluss.platform.merchant.MerchantCashPlaceStaffService; import cn.pluss.platform.vo.MerchantCashPlaceStaffVO; @@ -33,6 +34,9 @@ public class MerchantCashPlaceController { @PostMapping public Result add(@RequestBody MerchantCashPlace merchantCashPlace) { + //判定字符位数 + size(merchantCashPlace.getAddress()); + size(merchantCashPlace.getName()); cashPlaceService.saveOrUpdate(merchantCashPlace); return ResultGenerator.genSuccessResult("保存成功", merchantCashPlace); } @@ -101,4 +105,9 @@ public class MerchantCashPlaceController { Page pageData = cashPlaceStaffService.getRecord(page, condition, orderItem); return ResultGenerator.genSuccessResult(pageData); } + private void size(String character){ + if (character.length() >= 50){ + throw new MsgException("输入内容过长"); + } + } } \ No newline at end of file diff --git a/pluss-api-page/src/main/java/cn/pluss/platform/interceptor/TokenRegistryInterceptor.java b/pluss-api-page/src/main/java/cn/pluss/platform/interceptor/TokenRegistryInterceptor.java index c7f8a7f..03b8f76 100644 --- a/pluss-api-page/src/main/java/cn/pluss/platform/interceptor/TokenRegistryInterceptor.java +++ b/pluss-api-page/src/main/java/cn/pluss/platform/interceptor/TokenRegistryInterceptor.java @@ -55,6 +55,7 @@ public class TokenRegistryInterceptor extends HandlerInterceptorAdapter { limitUri.add("/api/callback/"); limitUri.add("/api/open/login"); limitUri.add("/api/index.html"); + limitUri.add("/api/merchantOrder/posScanPay"); boolean passFlag = limitUri.stream().anyMatch(s -> s.equals(requestUri) || requestUri.startsWith(s)); if (passFlag) { return true; diff --git a/pluss-common-bundle/src/main/java/cn/pluss/platform/util/TokenUtil.java b/pluss-common-bundle/src/main/java/cn/pluss/platform/util/TokenUtil.java index d473ab1..c8dd1c0 100644 --- a/pluss-common-bundle/src/main/java/cn/pluss/platform/util/TokenUtil.java +++ b/pluss-common-bundle/src/main/java/cn/pluss/platform/util/TokenUtil.java @@ -25,6 +25,8 @@ public class TokenUtil { private static final String USER_CODE = "ZF544"; //APPSECRET private static final String APP_SECRET = "2022bsjZF544GAH"; + //sn + private static final String SN = "BSJQG01YJ0001"; /** * 获取TOKEN值 @@ -32,7 +34,7 @@ public class TokenUtil { * @param requestId 请求ID,自定义 * @return */ - private static Map getToken(String timestamp, String requestId) { + public static Map getToken(String timestamp, String requestId) { String token = ""; String encode = ""; SortedMap map = new TreeMap(); @@ -51,8 +53,17 @@ public class TokenUtil { Map finalMap = new HashMap<>(); finalMap.put("ENCODE",encode); System.out.println(token + APP_SECRET); - finalMap.put("TOKEN", MD5Util.md5(token + APP_SECRET)); + finalMap.put("TOKEN", MD5Util.md5(token + APP_SECRET).toUpperCase()); return finalMap; } + public static void main(String[] args) { + String s = String.valueOf(System.currentTimeMillis()); + System.out.println(s); + String s1 = UUID.randomUUID().toString(); + System.out.println(s1); + Map token = getToken(s, s1); + System.out.println(token); + } + } diff --git a/pluss-common-bundle/src/main/resources/config/application-ys.yml b/pluss-common-bundle/src/main/resources/config/application-ys.yml index ac4eb37..4dae38e 100644 --- a/pluss-common-bundle/src/main/resources/config/application-ys.yml +++ b/pluss-common-bundle/src/main/resources/config/application-ys.yml @@ -24,15 +24,15 @@ ys: ## 进件URL前缀v2 auditDomainV2: https://ouser.ysepay.com:6443/ ## 机构号ID - src: + src: 3520000052 ## 代理商编号 - agentNoV2: + agentNoV2: 801521000002UUS ## 进件私钥v2 - priKeyV2: + priKeyV2: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD2J82Gg79Tk8HZ9Zl7EOeLwvUn41c4ktUg6jveIhYLhT/PW5hpPAtgKXd9BvhtpfXhzbK6U9UURKhBgFIkQ+oIJQNfbB/F2jdVK9ke3IYi0/TXHMnY63x43qxciLeAOt+LxdhHn6ZImV4MsRkPjF/zLsaJrPOPWbc2m4T1yvinfzkrxhZaWn1dj4+IdyO3tA/juXCjydQqKR2kSqJlo6gdT9N3RIJ+ETda2UUahZyYXBfjyxFQEaOXthm6krZH1zBHs510Og6bQJQHjMmTskkslWvj38qPDfsuC4tq0Hgbu3LcyiX9vGYzQoGOaGhDEiNPObdDlOuh5gn0slRmg+PxAgMBAAECggEAJRvrCBRki50C5HD6Kmtp/M/vVYwYYhcAum2ViO9qk2ILNJ+CYpsCvASEVvzuBtm2L8xq3Vw2C1AubXGC8KSsa33o/EG4qIM1REnP+a8VKbr6dlOIuoMFyNMI+QpDX7mAafnxmRqgXuGAJDmupYFsFaU/mRHRxhKoZDsd2FA5HEbuDI9SJp86keE72NHsxyqfDIZyIk3Z8k7HZY2wg3FW+YaOKQBHVA9JYvhfZMeaQ1ymrA0IAqWpUqjLkqAa2Qa6xUsbj+QhvrkBCE48i8duamXKDSOaLfkqTb8IyxOM9eTsFwLVGEuZQrkhrLxdrg5aBPvu81pIJME6SgrquJJ84QKBgQD/MAFLiWU0wDJ4Hqf2jKa5vgrBmCqOsANBc079s8gDXM4zbsG/TjMHPDmiOGZxtDG8937twjYzRv9XpnqyITMArlhWWMhTOJ3r3CTVr/OISgeZKPGjfp+MbeDsOK4OggTVKZmNLx3nKiuc94IlTDOcz5qArVBTxKadWg56f1UGswKBgQD28G+haXxneMhRZozoHPjcfdgtDoZJaVa8XTXw8nvQala5ioU9yesbIAdtD/VR/eWwuMtO4rK1IFxtNZQ/MtSXwqlnKLf1xDJQPuj3kY5mC7H7sn4HGeFDP50VFnPgIaUnB5VwgyYFm8l19AW06OBjlnoBv0dnl1s5u+DgpzQcywKBgQCfeWSVzBtPR/1CTAYzcdqPoVAfg/S0jxK5yFHJAp0wXMMQKVszLq99CgoKcqyyyiV7LkBIXWJ50RipsgRjZZP2DP5vl7Q5LdyjFUR/tiG/PmRZNtkrj2ot3Ez/0rwTnPVgMUsgjB1n5Va0FYljvadTi/nGCIl2kCJ/m1QJAaIlOQKBgGV8TwRxS9ViiEEb+lDyhzxm488wpvPIvQLQ8/hAT65J5bZ/PV81etA9C5BA/Ltjs2A7siKLfJJ/6DxhxrlqdICiWeixjVkN9vePw0LrqTA7IjylELJuamuu2yntflXgvfUaYspIu/mWGufFEAtXodCL6TyKlhf21mEV28e4L+ydAoGAItgCUGbot95QNT1z+9QFN+18AvMnWCNvqanrC4qsk0phjYX9FFwfSCqWVeVm0Q0+2tUrRNcUEcbmlbQToBZq/hSu0nPcZIPvnNxLfW/NY7eVCXIcI5eNPjUIgbRCVMc6w5ukYMxPidOBuRXIt1iq2+iV20/FMbA58sY7AgOiaMw= ## 进件公钥v2 - pubKeyV2: + pubKeyV2: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7SPkmIUf2auwkgbVchMyfeCDgICuA1GKrSwRbDI24UMVhzDgcIxCUmFG5/DfcPJz0d3oV9Ggkd4/7NmteRvmNnOOGNOnmR6AGEKafDpL1mAdpndmpkAZ0f6OVo3Py5JDg2wt8d+u3dF0AFWwd2rrrqscWvxJVB55DnuZfXl2CyQIDAQAB ## 加密密钥 - encryptPwd: + encryptPwd: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQD2J82Gg79Tk8HZ9Zl7EOeLwvUn41c4ktUg6jveIhYLhT oldPayV2: ## 交易发起方编号 收银呗(武汉)科技有限公司 srcMerchantNo: diff --git a/pluss-dao-bundle/src/main/resources/mapper/DeviceMerchantBuyDetail-sqlmap.xml b/pluss-dao-bundle/src/main/resources/mapper/DeviceMerchantBuyDetail-sqlmap.xml index 41485fe..bc8cea7 100644 --- a/pluss-dao-bundle/src/main/resources/mapper/DeviceMerchantBuyDetail-sqlmap.xml +++ b/pluss-dao-bundle/src/main/resources/mapper/DeviceMerchantBuyDetail-sqlmap.xml @@ -9,7 +9,7 @@ - insert into tb_pluss_device_merchant_buy_detail(orderNo,soleCode) VALUES + insert into tb_pluss_device_merchant_buy_detail(orderNo,soleCode) VALUES (#{orderNo},#{soleCode} ) diff --git a/pluss-manage-page/src/main/resources/static/resources/images/logo.png b/pluss-manage-page/src/main/resources/static/resources/images/logo.png index 61c8215..e86687c 100644 Binary files a/pluss-manage-page/src/main/resources/static/resources/images/logo.png and b/pluss-manage-page/src/main/resources/static/resources/images/logo.png differ diff --git a/pluss-manage-page/src/main/webapp/WEB-INF/jsp/index/index.jsp b/pluss-manage-page/src/main/webapp/WEB-INF/jsp/index/index.jsp index 2debcb0..e94cc9c 100644 --- a/pluss-manage-page/src/main/webapp/WEB-INF/jsp/index/index.jsp +++ b/pluss-manage-page/src/main/webapp/WEB-INF/jsp/index/index.jsp @@ -11,7 +11,7 @@ - 武汉融商创银科技有限公司 + 陕西超掌柜科技有限公司