/** * 根据商户key获取已生效的支付配置 * * @param payKey * @return */ public RpUserPayConfig getByPayKey(String payKey) { Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("payKey", payKey); paramMap.put("status", PublicStatusEnum.ACTIVE.name()); paramMap.put("auditStatus", PublicEnum.YES.name()); return rpUserPayConfigDao.getBy(paramMap); }
/** 根据支付产品获取已生效数据 */ @Override public List<RpUserPayConfig> listByProductCode(String productCode) { Map<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("productCode", productCode); paramMap.put("status", PublicStatusEnum.ACTIVE.name()); paramMap.put("auditStatus", PublicEnum.YES.name()); return rpUserPayConfigDao.listBy(paramMap); }
/** * 审核 * * @param userNo * @param auditStatus */ @Override public void audit(String userNo, String auditStatus) { RpUserPayConfig rpUserPayConfig = getByUserNo(userNo, null); if (rpUserPayConfig == null) { throw new PayBizException(PayBizException.USER_PAY_CONFIG_IS_NOT_EXIST, "支付配置不存在!"); } if (auditStatus.equals(PublicEnum.YES.name())) { // 检查是否已关联生效的支付产品 RpPayProduct rpPayProduct = rpPayProductService.getByProductCode( rpUserPayConfig.getProductCode(), PublicEnum.YES.name()); if (rpPayProduct == null) { throw new PayBizException(PayBizException.PAY_PRODUCT_IS_NOT_EXIST, "未关联已生效的支付产品,无法操作!"); } // 检查是否已设置第三方支付信息 } rpUserPayConfig.setAuditStatus(auditStatus); rpUserPayConfig.setEditTime(new Date()); updateData(rpUserPayConfig); }
/** * 根据商户编号获取已生效的支付配置 * * @param userNo * @return */ @Override public RpUserPayConfig getByUserNo(String userNo) { return rpUserPayConfigDao.getByUserNo(userNo, PublicEnum.YES.name()); }
/** 创建用户支付配置 */ @Override public void createUserPayConfig( String userNo, String userName, String productCode, String productName, Integer riskDay, String fundIntoType, String isAutoSett, String appId, String merchantId, String partnerKey, String ali_partner, String ali_sellerId, String ali_key, String ali_appid, String ali_rsaPrivateKey, String ali_rsaPublicKey) throws PayBizException { RpUserPayConfig payConfig = rpUserPayConfigDao.getByUserNo(userNo, null); if (payConfig != null) { throw new PayBizException(PayBizException.USER_PAY_CONFIG_IS_EXIST, "用户支付配置已存在"); } RpUserPayConfig rpUserPayConfig = new RpUserPayConfig(); rpUserPayConfig.setUserNo(userNo); rpUserPayConfig.setUserName(userName); rpUserPayConfig.setProductCode(productCode); rpUserPayConfig.setProductName(productName); rpUserPayConfig.setStatus(PublicStatusEnum.ACTIVE.name()); rpUserPayConfig.setAuditStatus(PublicEnum.YES.name()); rpUserPayConfig.setRiskDay(riskDay); rpUserPayConfig.setFundIntoType(fundIntoType); rpUserPayConfig.setIsAutoSett(isAutoSett); rpUserPayConfig.setPayKey(StringUtil.get32UUID()); rpUserPayConfig.setPaySecret(StringUtil.get32UUID()); rpUserPayConfig.setId(StringUtil.get32UUID()); saveData(rpUserPayConfig); // 查询支付产品下有哪些支付方式 List<RpPayWay> payWayList = rpPayWayService.listByProductCode(productCode); Map<String, String> map = new HashMap<String, String>(); // 过滤重复数据 for (RpPayWay payWay : payWayList) { map.put(payWay.getPayWayCode(), payWay.getPayWayName()); } for (String key : map.keySet()) { if (key.equals(PayWayEnum.WEIXIN.name())) { // 创建用户第三方支付信息 RpUserPayInfo rpUserPayInfo = rpUserPayInfoService.getByUserNo(userNo, PayWayEnum.WEIXIN.name()); if (rpUserPayInfo == null) { rpUserPayInfo = new RpUserPayInfo(); rpUserPayInfo.setId(StringUtil.get32UUID()); rpUserPayInfo.setCreateTime(new Date()); rpUserPayInfo.setAppId(appId); rpUserPayInfo.setMerchantId(merchantId); rpUserPayInfo.setPartnerKey(partnerKey); rpUserPayInfo.setPayWayCode(PayWayEnum.WEIXIN.name()); rpUserPayInfo.setPayWayName(PayWayEnum.WEIXIN.getDesc()); rpUserPayInfo.setUserNo(userNo); rpUserPayInfo.setUserName(userName); rpUserPayInfo.setStatus(PublicStatusEnum.ACTIVE.name()); rpUserPayInfoService.saveData(rpUserPayInfo); } else { rpUserPayInfo.setEditTime(new Date()); rpUserPayInfo.setAppId(appId); rpUserPayInfo.setMerchantId(merchantId); rpUserPayInfo.setPartnerKey(partnerKey); rpUserPayInfo.setPayWayCode(PayWayEnum.WEIXIN.name()); rpUserPayInfo.setPayWayName(PayWayEnum.WEIXIN.getDesc()); rpUserPayInfoService.updateData(rpUserPayInfo); } } else if (key.equals(PayWayEnum.ALIPAY.name())) { // 创建用户第三方支付信息 RpUserPayInfo rpUserPayInfo = rpUserPayInfoService.getByUserNo(userNo, PayWayEnum.ALIPAY.name()); if (rpUserPayInfo == null) { rpUserPayInfo = new RpUserPayInfo(); rpUserPayInfo.setId(StringUtil.get32UUID()); rpUserPayInfo.setCreateTime(new Date()); rpUserPayInfo.setAppId(ali_partner); rpUserPayInfo.setMerchantId(ali_sellerId); rpUserPayInfo.setPartnerKey(ali_key); rpUserPayInfo.setPayWayCode(PayWayEnum.ALIPAY.name()); rpUserPayInfo.setPayWayName(PayWayEnum.ALIPAY.getDesc()); rpUserPayInfo.setUserNo(userNo); rpUserPayInfo.setUserName(userName); rpUserPayInfo.setStatus(PublicStatusEnum.ACTIVE.name()); rpUserPayInfo.setOfflineAppId(ali_appid); rpUserPayInfo.setRsaPrivateKey(ali_rsaPrivateKey); rpUserPayInfo.setRsaPublicKey(ali_rsaPublicKey); rpUserPayInfoService.saveData(rpUserPayInfo); } else { rpUserPayInfo.setEditTime(new Date()); rpUserPayInfo.setAppId(ali_partner); rpUserPayInfo.setMerchantId(ali_sellerId); rpUserPayInfo.setPartnerKey(ali_key); rpUserPayInfo.setPayWayCode(PayWayEnum.ALIPAY.name()); rpUserPayInfo.setPayWayName(PayWayEnum.ALIPAY.getDesc()); rpUserPayInfo.setOfflineAppId(ali_appid); rpUserPayInfo.setRsaPrivateKey(ali_rsaPrivateKey); rpUserPayInfo.setRsaPublicKey(ali_rsaPublicKey); rpUserPayInfoService.updateData(rpUserPayInfo); } } } }