Merge remote-tracking branch 'origin/master'
# Conflicts:
# cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
| | |
| | | @FeignClient(value = "mb-cloud-other") |
| | | public interface StoreClient { |
| | | |
| | | /** |
| | | * 根据运营商id获取对应运营商商户号 |
| | | * @return |
| | | */ |
| | | @PostMapping("/base/getSMIDByOperatorId") |
| | | String getSMIDByOperatorId(Integer id); |
| | | |
| | | @PostMapping("/store/queryByStoreId") |
| | | OperatorUser queryByStoreId(Integer storeId); |
| | | |
| | | |
| | | /** |
| | | * 获取门店列表 |
| | |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | private Integer state; |
| | | /** |
| | | * 运营商id |
| | | */ |
| | | private Integer operatorId; |
| | | |
| | | } |
| | |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | private ResultUtil AlipayPayment(String code, BigDecimal amount) { |
| | | ResultUtil alipay = payMoneyUtil.alipay("玩湃币充值", "玩湃币充值", "", code, amount.toString(), |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid,"玩湃币充值", "玩湃币充值", "", code, amount.toString(), |
| | | "/base/recharge/alipayRechargeCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | |
| | | if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10) { |
| | | records.setState(3); |
| | | rereMapper.deleteById(records.getId()); |
| | | if ("TRADE_FINISHED".equals(tradeStatus)) { |
| | | // todo 资金结算 |
| | | payMoneyUtil.confirm(smid,code,tradeNo,amount.toString()); |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | |
| | | if ("TRADE_SUCCESS".equals(tradeStatus)) { |
| | | records.setAppUserId(null); |
| | | records.setPayStatus(2); |
| | |
| | | return ResultUtil.success(returnId); |
| | | } |
| | | //积分+现金 |
| | | if(coupon.getRedemptionMethod() == 1){ |
| | | if(coupon.getRedemptionMethod() == 2){ |
| | | userCouponPaymentClient.addUserCouponPayment(userCouponPayment); |
| | | try { |
| | | if(exchangeType.getPayType() == 1){ |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | public ResultUtil aliPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception { |
| | | String code = userCouponPayment.getCode(); |
| | | Double cash = userCouponPayment.getCash(); |
| | | |
| | | ResultUtil alipay = payMoneyUtil.alipay(body, body, "", code, cash.toString(), "/base/coupon/aliPaymentCouponCallback"); |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid, body, "",String.valueOf(userCouponPayment.getId()), code, cash.toString(), "/base/coupon/aliPaymentCouponCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | | @Override |
| | |
| | | //有待支付的订单,这里不处理 |
| | | userCouponPayment1.setStatus(-1); |
| | | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); |
| | | if ("TRADE_FINISHED".equals(s)) { |
| | | // todo 资金结算 |
| | | |
| | | } |
| | | break; |
| | | } |
| | | if ("TRADE_SUCCESS".equals(s)) { |
| | |
| | | userCouponPayment1.setPaymentTime(new Date()); |
| | | userCouponPayment1.setOrderNumber(tradeNo); |
| | | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); |
| | | |
| | | UserCoupon userCoupon = new UserCoupon(); |
| | | userCoupon.setCouponId(userCouponPayment1.getCouponId()); |
| | | userCoupon.setUserId(userCouponPayment1.getUserId()); |
| | | userCoupon.setStatus(1); |
| | | userCoupon.setInsertTime(new Date()); |
| | | userConponClient.insertToAppuserCoupon(userCoupon); |
| | | |
| | | if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ |
| | | //扣积分 |
| | | TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); |
| | | user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); |
| | | appUserService.updateById(user); |
| | | } |
| | | payMoneyUtil.confirm(smid,code,tradeNo,cash.toString()); |
| | | break; |
| | | |
| | | } |
| | | |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | | num++; |
| | | } |
| | |
| | | } |
| | | |
| | | private ResultUtil AlipayPayment(BigDecimal cash, String code, Long returnId) { |
| | | ResultUtil alipay = payMoneyUtil.alipay("优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(), |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid,"优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(), |
| | | "/base/pointMer/exchangeGoodPaymentAliCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | |
| | | moneyOut(tradeNo, tradeNo); |
| | | break; |
| | | } |
| | | if ("TRADE_FINISHED".equals(tradeStatus)) { |
| | | // todo 资金结算 |
| | | payMoneyUtil.confirm(smid,code,tradeNo,cash.toString()); |
| | | break; |
| | | } |
| | | // if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){ |
| | | // mcClient.deletePaymentRecord(code); |
| | | // break; |
| | |
| | | @Resource |
| | | private ParticipantClient participantClient; |
| | | |
| | | @Autowired |
| | | private CoursePackageClient coursePackageClient; |
| | | |
| | | @Autowired |
| | | private PayMoneyUtil payMoneyUtil; |
| | |
| | | } |
| | | return weixinpay; |
| | | } |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | public ResultUtil AlipayPayment(String code, BigDecimal amount, Integer hour) { |
| | | ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, amount.toString(), |
| | | TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code); |
| | | Integer coursePackageId = coursePackagePayment.getCoursePackageId(); |
| | | // 判断这个课包是属于哪个运营商的 |
| | | CoursePackage coursePackage = coursePackageClient.queryCoursePackageById(coursePackageId); |
| | | Integer storeId = coursePackage.getStoreId(); |
| | | Store store = storeClient.queryStoreById(storeId); |
| | | String smid1= ""; |
| | | if (store.getOperatorId()==null){ |
| | | // 平台 |
| | | smid1 = smid; |
| | | }else{ |
| | | String smidByOperatorId = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | smid1 = smidByOperatorId; |
| | | } |
| | | |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包续费", "课包续费", "", code, amount.toString(), |
| | | "/base/coursePackage/alipayPaymentCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | |
| | | break; |
| | | } |
| | | AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); |
| | | |
| | | if (resultUtil.getCode().equals("10000") && coursePackagePayment.getPayStatus() == 1) { |
| | | /** |
| | | * WAIT_BUYER_PAY(交易创建,等待买家付款)、 |
| | |
| | | coursePackagePayment.setLaveClassHours(hour); |
| | | coursePackagePayment.setOrderNumber(tradeNo); |
| | | couPayClient.updatePaymentCoursePackage(coursePackagePayment); |
| | | |
| | | |
| | | Integer coursePackageId = coursePackagePayment.getCoursePackageId(); |
| | | // 判断这个课包是属于哪个运营商的 |
| | | CoursePackage coursePackage = coursePackageClient.queryCoursePackageById(coursePackageId); |
| | | Integer storeId = coursePackage.getStoreId(); |
| | | Store store = storeClient.queryStoreById(storeId); |
| | | String smid1= ""; |
| | | if (store.getOperatorId()==null){ |
| | | // 平台 |
| | | smid1 = smid; |
| | | }else{ |
| | | String smidByOperatorId = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | smid1 = smidByOperatorId; |
| | | } |
| | | payMoneyUtil.confirm(smid1,code,tradeNo,amount.toString()); |
| | | break; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(tradeStatus)) { |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | public ResultUtil alipay(VipPayment vipPayment) throws Exception { |
| | | String code = vipPayment.getCode(); |
| | | ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId() + "", code, vipPayment.getAmount().toString(), |
| | | String amount = vipPayment.getAmount().toString(); |
| | | ResultUtil alipay = payMoneyUtil.alipay |
| | | (smid,"购买年度会员", "购买年度会员", |
| | | vipPayment.getAppUserId() + "", |
| | | code, vipPayment.getAmount().toString(), |
| | | "/base/appUser/addVipPaymentAliCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | |
| | | if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) { |
| | | vipPayment1.setState(3); |
| | | VipPaymentServiceImpl.this.updateById(vipPayment1); |
| | | |
| | | return; |
| | | } |
| | | if ("TRADE_SUCCESS".equals(tradeStatus)) { |
| | |
| | | // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限 |
| | | List<Long> longs = userConponClient.queryCouponByUser(appUser.getId()); |
| | | redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600); |
| | | // 如果交易结束 将当前订单金额分配到商户 |
| | | payMoneyUtil.confirm(smid,vipPayment.getCode(),tradeNo,amount); |
| | | return; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(tradeStatus)) { |
| | |
| | | private String appid = "";//微信appid |
| | | |
| | | private String appletsAppid = "";//微信小程序appid |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | |
| | | private String mchId = "";//微信商户号 |
| | | |
| | |
| | | /** |
| | | * 支付宝支付 |
| | | */ |
| | | public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | // //构造client |
| | | // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); |
| | | // //设置网关地址 |
| | |
| | | // e.printStackTrace(); |
| | | // } |
| | | |
| | | |
| | | //实例化客户端 |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); |
| | | //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay |
| | |
| | | model.setTotalAmount(amount);//付款金额 |
| | | model.setProductCode("QUICK_MSECURITY_PAY"); |
| | | model.setPassbackParams(passbackParams);//自定义参数 |
| | | |
| | | |
| | | SettleInfo settleInfo = new SettleInfo(); |
| | | settleInfo.setSettlePeriodTime("3d"); |
| | | SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); |
| | | settleDetailInfo.setTransInType("defaultSettle"); |
| | | settleDetailInfo.setAmount(amount); |
| | | List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); |
| | | settleDetailInfos.add(settleDetailInfo); |
| | | settleInfo.setSettleDetailInfos(settleDetailInfos); |
| | | model.setSettleInfo(settleInfo); |
| | | SubMerchant subMerchant = new SubMerchant(); |
| | | subMerchant.setMerchantId(smid); |
| | | model.setSubMerchant(subMerchant); |
| | | ExtendParams extendParams = new ExtendParams(); |
| | | extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 |
| | | model.setExtendParams(extendParams); |
| | | //分账 |
| | | // Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo); |
| | | // Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo); |
| | |
| | | System.err.print(alipay_trade_precreate_response.getString("qr_code")); |
| | | return ResultUtil.success(alipay_trade_precreate_response.getString("qr_code")); |
| | | } |
| | | |
| | | // 直付通模式 alipay.trade.settle.confirm(统一收单确认结算接口) |
| | | public ResultUtil confirm(String smid1,String code, String outTradeNo, String amount) { |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", |
| | | aliAppid, |
| | | appPrivateKey, |
| | | "json", |
| | | "GBK", |
| | | alipay_public_key, |
| | | "RSA2"); |
| | | AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest(); |
| | | request.setBizContent("{" + |
| | | " \"out_request_no\":\""+code+"\"," + |
| | | " \"trade_no\":\""+outTradeNo+"\"," + |
| | | " \"settle_info\":{" + |
| | | " \"settle_detail_infos\":[" + |
| | | " {" + |
| | | " \"trans_in_type\":\"defaultSettle\"," + |
| | | " \"settle_entity_id\":\""+smid1+"\"," + |
| | | " \"settle_entity_type\":\"SecondMerchant\"," + |
| | | " \"amount\":"+amount+"," + |
| | | " }" + |
| | | " ]" + |
| | | " }," + |
| | | " \"extend_params\":{" + |
| | | " \"royalty_freeze\":\"false\"" + |
| | | " }" + |
| | | "}"); |
| | | AlipayTradeSettleConfirmResponse response = null; |
| | | try { |
| | | response = alipayClient.execute(request); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(response.isSuccess()){ |
| | | System.out.println("调用成功"); |
| | | return ResultUtil.success(); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | return ResultUtil.error("出现问题啦"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 支付成功后的回调处理逻辑 |
| | |
| | | datasource.names=master0 |
| | | datasource.master0.type=com.alibaba.druid.pool.DruidDataSource |
| | | datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver |
| | | datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.username=root |
| | | datasource.master0.password=playpai2023! |
| | | datasource.master0.password=123456 |
| | | datasource.master0.maxActive=20 |
| | | datasource.master0.maxWait=60000 |
| | | datasource.master0.minIdle=5 |
| | |
| | | String endDate = dateFormat.format(end); |
| | | detailsResponse.setStartTime(startDate); |
| | | detailsResponse.setEndTime(startDate); |
| | | |
| | | Date now = new Date(); |
| | | Calendar cal1 = Calendar.getInstance(); |
| | | cal1.setTime(pointsMerchandise.getInsertTime()); |
| | | |
| | | Calendar cal2 = Calendar.getInstance(); |
| | | cal2.setTime(now); |
| | | |
| | | // Compare the year, month, and day of the two Calendar instances |
| | | boolean isSameDate = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && |
| | | cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) && |
| | |
| | | datasource.names=master0 |
| | | datasource.master0.type=com.alibaba.druid.pool.DruidDataSource |
| | | datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver |
| | | datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.username=root |
| | | datasource.master0.password=playpai2023! |
| | | datasource.master0.password=123456 |
| | | datasource.master0.maxActive=20 |
| | | datasource.master0.maxWait=60000 |
| | | datasource.master0.minIdle=5 |
| | |
| | | <artifactId>dom4j</artifactId> |
| | | <version>1.6.1</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.alipay.sdk</groupId> |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.8.10.ALL</version> |
| | | <version>4.38.10.ALL</version> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | |
| | | String refund_id = map.get("refund_id"); |
| | | paymentCompetition.setRefundOrderNo(refund_id); |
| | | paymentCompetitionService.updateById(paymentCompetition); |
| | | |
| | | storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId()); |
| | | |
| | | |
| | | } |
| | | if (paymentCompetition.getPayType() == 2) {//支付宝支付 |
| | |
| | | */ |
| | | @FeignClient("mb-cloud-other") |
| | | public interface StoreClient { |
| | | |
| | | /** |
| | | * 根据运营商id获取对应运营商商户号 |
| | | * @return |
| | | */ |
| | | @PostMapping("/base/getSMIDByOperatorId") |
| | | String getSMIDByOperatorId(Integer id); |
| | | |
| | | /** |
| | | * 根据名称模糊搜索门店 |
| | |
| | | private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥 |
| | | |
| | | private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | |
| | | /** |
| | | * 获取赛事列表 |
| | |
| | | } |
| | | |
| | | if (paymentCompetitionVo.getPayType() == 2) {//支付宝 |
| | | return aliPaymentCompetition(code, money); |
| | | // 判断当前赛事属于哪个运营商 |
| | | Competition byId = competitionService.getById(paymentCompetitionVo.getId()); |
| | | Integer operatorId = byId.getOperatorId(); |
| | | if (operatorId == null ){ |
| | | // 说明是平台 |
| | | return aliPaymentCompetition(smid,code, money); |
| | | } |
| | | // 获取该运营商的商户号 |
| | | String smid = storeClient.getSMIDByOperatorId(operatorId); |
| | | return aliPaymentCompetition(smid,code, money); |
| | | } |
| | | if (paymentCompetitionVo.getPayType() == 3) {//玩湃币 |
| | | appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - money.intValue()); |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public ResultUtil aliPaymentCompetition(String code, BigDecimal money) throws Exception { |
| | | ResultUtil alipay = payMoneyUtil.alipay("报名赛事", "", "", code, money.toString(), "/base/competition/aliPaymentCompetitionCallback"); |
| | | public ResultUtil aliPaymentCompetition(String smid,String code, BigDecimal money) throws Exception { |
| | | ResultUtil alipay = payMoneyUtil.alipay |
| | | (smid,"报名赛事", "", "", code, money.toString(), "/base/competition/aliPaymentCompetitionCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | | @Override |
| | |
| | | paymentCompetition.setAppUserId(null); |
| | | paymentCompetition.setState(3); |
| | | userCompetitionService.remove(new QueryWrapper<UserCompetition>().eq("paymentCompetitionId", paymentCompetition.getId())); |
| | | |
| | | break; |
| | | } |
| | | if ("TRADE_SUCCESS".equals(s)) { |
| | |
| | | paymentCompetition.setPayTime(new Date()); |
| | | paymentCompetition.setPayOrderNo(tradeNo); |
| | | paymentCompetitionService.updateById(paymentCompetition); |
| | | |
| | | // 结算资金到商户账号 |
| | | payMoneyUtil.confirm(smid,code,tradeNo,money.toString()); |
| | | //分账 |
| | | |
| | | |
| | | // moneyOut(tradeNo, tradeNo,code); |
| | | |
| | | break; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.CertAlipayRequest; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.AlipayTradeAppPayModel; |
| | | import com.alipay.api.domain.*; |
| | | import com.alipay.api.request.*; |
| | | import com.alipay.api.response.*; |
| | | import com.dsh.competition.util.httpClinet.HttpClientUtil; |
| | |
| | | /** |
| | | * 支付宝支付 |
| | | */ |
| | | public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | // //构造client |
| | | // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); |
| | | // //设置网关地址 |
| | |
| | | model.setTotalAmount(amount);//付款金额 |
| | | model.setProductCode("QUICK_MSECURITY_PAY"); |
| | | model.setPassbackParams(passbackParams);//自定义参数 |
| | | SettleInfo settleInfo = new SettleInfo(); |
| | | settleInfo.setSettlePeriodTime("3d"); |
| | | SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); |
| | | settleDetailInfo.setTransInType("defaultSettle"); |
| | | settleDetailInfo.setAmount(amount); |
| | | List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); |
| | | settleDetailInfos.add(settleDetailInfo); |
| | | settleInfo.setSettleDetailInfos(settleDetailInfos); |
| | | model.setSettleInfo(settleInfo); |
| | | SubMerchant subMerchant = new SubMerchant(); |
| | | subMerchant.setMerchantId(smid); |
| | | model.setSubMerchant(subMerchant); |
| | | ExtendParams extendParams = new ExtendParams(); |
| | | extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 |
| | | model.setExtendParams(extendParams); |
| | | request.setBizModel(model); |
| | | request.setNotifyUrl(callbackPath + notifyUrl); |
| | | |
| | | try { |
| | | //这里和普通的接口调用不同,使用的是sdkExecute |
| | | AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 统一确认结算接口 |
| | | * @param smid |
| | | * @param code |
| | | * @param outTradeNo |
| | | * @param amount |
| | | * @return |
| | | */ |
| | | public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) { |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", |
| | | aliAppid, |
| | | appPrivateKey, |
| | | "json", |
| | | "GBK", |
| | | alipay_public_key, |
| | | "RSA2"); |
| | | AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest(); |
| | | request.setBizContent("{" + |
| | | " \"out_request_no\":\""+code+"\"," + |
| | | " \"trade_no\":\""+outTradeNo+"\"," + |
| | | " \"settle_info\":{" + |
| | | " \"settle_detail_infos\":[" + |
| | | " {" + |
| | | " \"trans_in_type\":\"defaultSettle\"," + |
| | | " \"settle_entity_id\":\""+smid+"\"," + |
| | | " \"settle_entity_type\":\"SecondMerchant\"," + |
| | | " \"amount\":"+amount+"," + |
| | | " }" + |
| | | " ]" + |
| | | " }," + |
| | | " \"extend_params\":{" + |
| | | " \"royalty_freeze\":\"false\"" + |
| | | " }" + |
| | | "}"); |
| | | AlipayTradeSettleConfirmResponse response = null; |
| | | try { |
| | | response = alipayClient.execute(request); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(response.isSuccess()){ |
| | | System.out.println("调用成功"); |
| | | return ResultUtil.success(); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | return ResultUtil.error("出现问题啦"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 微信统一下单 |
| | |
| | | datasource.names=master0 |
| | | datasource.master0.type=com.alibaba.druid.pool.DruidDataSource |
| | | datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver |
| | | datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.url=jdbc:mysql://192.168.110.110/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.username=root |
| | | datasource.master0.password=playpai2023! |
| | | datasource.master0.password=123456 |
| | | datasource.master0.maxActive=20 |
| | | datasource.master0.maxWait=60000 |
| | | datasource.master0.minIdle=5 |
| | |
| | | <dependency> |
| | | <groupId>com.alipay.sdk</groupId> |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.8.10.ALL</version> |
| | | <version>4.38.10.ALL</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.huaweicloud</groupId> |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据id获取课程数据 |
| | | * |
| | |
| | | |
| | | @PostMapping("/course/auditDiscount") |
| | | public Boolean auditDiscount(@RequestBody AuditDiscount auditDiscount) { |
| | | |
| | | List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>() |
| | | .eq(TCoursePackageDiscount::getCoursePackageId, auditDiscount.getId())); |
| | | for (TCoursePackageDiscount tCoursePackageDiscount : list) { |
| | | tCoursePackageDiscount.setAuditStatus(auditDiscount.getType()); |
| | | tCoursePackageDiscount.setAuditRemark(auditDiscount.getText()); |
| | | } |
| | | |
| | | return discountService.updateBatchById(list); |
| | | } |
| | | |
| | |
| | | selectDto.setValue(String.valueOf(coursePackagePaymentConfig.getClassHours())); |
| | | integerList.add(selectDto); |
| | | } |
| | | |
| | | |
| | | return integerList; |
| | | } |
| | | |
| | |
| | | StoreOfCourseVo courseVo = new StoreOfCourseVo(); |
| | | courseVo.setCourseId(coursePackage.getId()); |
| | | courseVo.setName(coursePackage.getName() + "(" + store.getName() + ")"); |
| | | |
| | | |
| | | String classStartTime = coursePackage.getClassStartTime(); |
| | | String classEndTime = coursePackage.getClassEndTime(); |
| | | ArrayList<String> classTime = new ArrayList<>(); |
| | |
| | | classTime.add(s); |
| | | } |
| | | } |
| | | |
| | | // coursePackageInfo.setTimes(classTime); |
| | | String classTimeAsString = String.join("|", classTime); |
| | | |
| | | |
| | | courseVo.setClassStartTime(classTimeAsString); |
| | | courseVo.setCoverDrawing(coursePackage.getCoverDrawing()); |
| | | courseVo.setApplicantsNumber(count); |
| | |
| | | return lisco; |
| | | } |
| | | |
| | | |
| | | @PostMapping("/base/coursePack/continuingCourse") |
| | | public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) { |
| | | StudentOfCourseVo courseVo = new StudentOfCourseVo(); |
| | |
| | | .eq("coursePackageId", getStudentCourse.getCourseId()) |
| | | .eq("studentId", getStudentCourse.getStuId())); |
| | | if (tCoursePackagePayments.size() > 0) { |
| | | |
| | | List<CourseHoursType> typeList = new ArrayList<>(); |
| | | tCoursePackagePayments.forEach(cou -> { |
| | | CourseHoursType hoursType = new CourseHoursType(); |
| | |
| | | TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0); |
| | | courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); |
| | | courseVo.setTypeList(typeList); |
| | | |
| | | TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); |
| | | courseVo.setPackageImg(coursePackage.getCoverDrawing()); |
| | | courseVo.setCourseName(coursePackage.getName()); |
| | |
| | | // 其他星期减一即可得到1-6的数字表示 |
| | | dayOfWeek -= 1; |
| | | } |
| | | // todo |
| | | if (weeks.contains(String.valueOf(dayOfWeek))){ |
| | | // 限时折扣判断是否在有效期 |
| | | try { |
| | |
| | | coursePackagePayment.setAppUserId(null); |
| | | packagePaymentService.updateById(coursePackagePayment); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改数据 |
| | |
| | | weekData.add(count2); |
| | | weekData.add(count1); |
| | | weekData.add(count); |
| | | |
| | | map.put("weekData", weekData); |
| | | |
| | | |
| | | LocalDateTime currentDateTime = LocalDateTime.now(); |
| | | List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0)); |
| | | for (CoursePackageStudent coursePackageStudent : list) { |
| | |
| | | return coursePackageSchedulingService.getById(id); |
| | | } |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/coursePackageScheduling/queryCoursePackageSchedulingsById") |
| | | public List<CoursePackageScheduling> queryCoursePackageSchedulingsById(@RequestBody Long id) { |
| | |
| | | .eq("studentId", course.getStuId()) |
| | | .eq("appUserId", course.getAppUserId()) |
| | | .eq("signInOrNot", 1)); |
| | | |
| | | if (coursePackageStudents.size() > 0) { |
| | | List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>() |
| | | .eq("coursePackageId", course.getCourseId())); |
| | |
| | | } |
| | | return sult; |
| | | } |
| | | |
| | | @Autowired |
| | | private CourseCounsumService courseCounsumService; |
| | | |
| | |
| | | courseCounsumService.save(courseCounsum); |
| | | } |
| | | |
| | | |
| | | @PostMapping("/base/courseRecord/cancelCourseData") |
| | | public Integer cancelCourseRecordClass(@RequestBody Integer courseRecordId) { |
| | | int sult = 0; |
| | |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); |
| | | String tis = simpleDateFormat.format(new Date()); |
| | | |
| | | if (ToolUtil.isNotEmpty(packageStudent)) { |
| | | TCoursePackage coursePackage = tcpService.getById(packageStudent.getCoursePackageId()); |
| | | String startTime = tis + " " + coursePackage.getClassStartTime(); |
| | |
| | | private TCoursePackageService coursePackageService; |
| | | @Resource |
| | | private CoursePackageStudentMapper cpsMapper; |
| | | |
| | | //获取退费记录 |
| | | @RequestMapping("/getRefund") |
| | | @ResponseBody |
| | |
| | | // 查询已通过申请的退费记录 |
| | | return counsumService.getRefund(); |
| | | } |
| | | |
| | | |
| | | @Resource |
| | | private CoursePackageSchedulingMapper coursePackageSchedulingService; |
| | | |
| | | |
| | | @RequestMapping("/getStudentTotal") |
| | | @ResponseBody |
| | | public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) { |
| | | List<Map<String, Object>> pays = paymentService.getStudentTotal(studentQeryDto); |
| | | return pays; |
| | | |
| | | } |
| | | |
| | | |
| | | @RequestMapping("/bypac") |
| | | @ResponseBody |
| | |
| | | @FeignClient("mb-cloud-other") |
| | | public interface StoreClient { |
| | | |
| | | |
| | | /** |
| | | * 根据管理员id获取 |
| | | * 根据运营商id获取对应运营商商户号 |
| | | * @return |
| | | */ |
| | | @PostMapping("/base/getSMIDByOperatorId") |
| | | String getSMIDByOperatorId(Integer id); |
| | | /** |
| | | * 根据名称模糊搜索门店 |
| | | * |
| | |
| | | */ |
| | | private Integer cityManagerId; |
| | | /** |
| | | * 运营商id |
| | | */ |
| | | private Integer operatorId; |
| | | /** |
| | | * 省 |
| | | */ |
| | | private String province; |
| | |
| | | } |
| | | return weixinpay; |
| | | } |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | |
| | | public ResultUtil AlipayPayment(String code, BigDecimal request) { |
| | | TCoursePackagePaymentMapper baseMapper1 = this.baseMapper; |
| | | ResultUtil alipay = payMoneyUtil.alipay("课包购买", "课包购买", "", code, request.toString(), |
| | | TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); |
| | | // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | Integer coursePackageId = coursePackagePayment.getCoursePackageId(); |
| | | TCoursePackage byId = coursePackageService.getById(coursePackageId); |
| | | Store store = storeClient.queryStoreById(byId.getStoreId()); |
| | | String smid1=""; |
| | | if (store.getOperatorId() == null ){ |
| | | smid1 = smid; |
| | | }else{ |
| | | smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | } |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包购买", "课包购买", "", code, request.toString(), |
| | | "/base/coursePackage/alipayRegisteredCoursesCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | |
| | | if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { |
| | | coursePackagePayment.setState(3); |
| | | baseMapper1.deleteById(coursePackagePayment.getId()); |
| | | |
| | | break; |
| | | } |
| | | if ("TRADE_SUCCESS".equals(s)) { |
| | | coursePackagePayment.setPayStatus(2); |
| | | coursePackagePayment.setOrderNumber(tradeNo); |
| | | baseMapper1.updateById(coursePackagePayment); |
| | | // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | Integer coursePackageId = coursePackagePayment.getCoursePackageId(); |
| | | TCoursePackage byId = coursePackageService.getById(coursePackageId); |
| | | Store store = storeClient.queryStoreById(byId.getStoreId()); |
| | | if (store.getOperatorId()== null ){ |
| | | // 说明是平台的门店 |
| | | payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); |
| | | }else{ |
| | | String smid = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); |
| | | } |
| | | break; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | |
| | | TCoursePackagePayment packagePayment = this.baseMapper.selectOne(new QueryWrapper<TCoursePackagePayment>() |
| | | .eq("code", code)); |
| | | if (appUser.getPlayPaiCoins() < wpGold) { |
| | | return ResultUtil.error("玩牌币不足!"); |
| | | return ResultUtil.error("玩湃币不足!"); |
| | | } |
| | | packagePayment.setPayStatus(2); |
| | | packagePayment.setPayUserId(appUser.getId()); |
| | |
| | | return weixinpay; |
| | | } |
| | | |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | /** |
| | | * 课程支付宝支付 |
| | | * |
| | |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); |
| | | String smid1=""; |
| | | //生成支付订单 |
| | | if (paymentCourseVo.getOrderId()==null){ |
| | | CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); |
| | |
| | | coursePackageOrder.setPayUserId(uid); |
| | | coursePackageOrderService.updateById(coursePackageOrder); |
| | | } |
| | | |
| | | ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); |
| | | // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | Integer coursePackageId = paymentCourseVo.getId(); |
| | | TCoursePackage byId = coursePackageService.getById(coursePackageId); |
| | | Store store = storeClient.queryStoreById(byId.getStoreId()); |
| | | if (store.getOperatorId() == null ){ |
| | | smid1 = smid; |
| | | }else{ |
| | | smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | } |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid1,"购买课程", "购买课程", |
| | | coursePackagePaymentConfig.getId().toString(), |
| | | code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | String finalCode = code; |
| | | new Thread(new Runnable() { |
| | |
| | | public void run() { |
| | | try { |
| | | Thread.sleep(1000); |
| | | |
| | | int num = 1; |
| | | int wait = 0; |
| | | while (num <= 10) { |
| | |
| | | coursePackageOrderService.updateById(coursePackageOrder1); |
| | | addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); |
| | | moneyOut(tradeNo,tradeNo,finalCode); |
| | | break; |
| | | // 根据课程id 查询这个课程属于哪个门店 属于哪个运营商 |
| | | Integer id = paymentCourseVo.getId(); |
| | | TCoursePackage byId = coursePackageService.getById(id); |
| | | Integer storeId = byId.getStoreId(); |
| | | Store store = storeClient.queryStoreById(storeId); |
| | | Integer operatorId = store.getOperatorId(); |
| | | if (operatorId==null){ |
| | | String smid ="2088330203191220"; |
| | | // 说明是平台的 |
| | | payMoneyUtil.confirm(smid,finalCode,tradeNo,paymentPrice.toString()); |
| | | break; |
| | | }else{ |
| | | // 当前课程不属于门店 查询这个课程属于哪个门店 属于哪个运营商 |
| | | String smidByOperatorId = storeClient.getSMIDByOperatorId(operatorId); |
| | | payMoneyUtil.confirm(smidByOperatorId,finalCode,tradeNo,paymentPrice.toString()); |
| | | break; |
| | | } |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | | num++; |
| | |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.CertAlipayRequest; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.AlipayTradeAppPayModel; |
| | | import com.alipay.api.domain.*; |
| | | import com.alipay.api.request.*; |
| | | import com.alipay.api.response.*; |
| | | import com.dsh.course.util.httpClinet.HttpClientUtil; |
| | |
| | | private String appid = "wx82f853a410b0c7c0";//微信appid |
| | | |
| | | private String appletsAppid = "";//微信小程序appid |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | |
| | | private String mchId = "1501481761";//微信商户号 |
| | | |
| | |
| | | |
| | | private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书 |
| | | |
| | | |
| | | public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) { |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", |
| | | aliAppid, |
| | | appPrivateKey, |
| | | "json", |
| | | "GBK", |
| | | alipay_public_key, |
| | | "RSA2"); |
| | | AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest(); |
| | | request.setBizContent("{" + |
| | | " \"out_request_no\":\""+code+"\"," + |
| | | " \"trade_no\":\""+outTradeNo+"\"," + |
| | | " \"settle_info\":{" + |
| | | " \"settle_detail_infos\":[" + |
| | | " {" + |
| | | " \"trans_in_type\":\"defaultSettle\"," + |
| | | " \"settle_entity_id\":\""+smid+"\"," + |
| | | " \"settle_entity_type\":\"SecondMerchant\"," + |
| | | " \"amount\":"+amount+"," + |
| | | " }" + |
| | | " ]" + |
| | | " }," + |
| | | " \"extend_params\":{" + |
| | | " \"royalty_freeze\":\"true\"" + |
| | | " }" + |
| | | "}"); |
| | | AlipayTradeSettleConfirmResponse response = null; |
| | | try { |
| | | response = alipayClient.execute(request); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(response.isSuccess()){ |
| | | System.out.println("调用成功"); |
| | | return ResultUtil.success(); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | return ResultUtil.error("出现问题啦"); |
| | | } |
| | | } |
| | | /** |
| | | * 支付宝支付 |
| | | */ |
| | | public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | // //构造client |
| | | // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); |
| | | // //设置网关地址 |
| | |
| | | // } catch (AlipayApiException e ) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | |
| | | |
| | | //实例化客户端 |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); |
| | | //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay |
| | |
| | | model.setTotalAmount(amount);//付款金额 |
| | | model.setProductCode("QUICK_MSECURITY_PAY"); |
| | | model.setPassbackParams(passbackParams);//自定义参数 |
| | | SettleInfo settleInfo = new SettleInfo(); |
| | | settleInfo.setSettlePeriodTime("3d"); |
| | | SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); |
| | | settleDetailInfo.setTransInType("defaultSettle"); |
| | | settleDetailInfo.setAmount(amount); |
| | | List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); |
| | | settleDetailInfos.add(settleDetailInfo); |
| | | settleInfo.setSettleDetailInfos(settleDetailInfos); |
| | | model.setSettleInfo(settleInfo); |
| | | SubMerchant subMerchant = new SubMerchant(); |
| | | subMerchant.setMerchantId(smid); |
| | | model.setSubMerchant(subMerchant); |
| | | ExtendParams extendParams = new ExtendParams(); |
| | | extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 |
| | | model.setExtendParams(extendParams); |
| | | request.setBizModel(model); |
| | | request.setNotifyUrl(callbackPath + notifyUrl); |
| | | |
| | | try { |
| | | //这里和普通的接口调用不同,使用的是sdkExecute |
| | | AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); |
| | |
| | | datasource.names=master0 |
| | | datasource.master0.type=com.alibaba.druid.pool.DruidDataSource |
| | | datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver |
| | | datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.url=jdbc:mysql://192.168.110.110:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai |
| | | datasource.master0.username=root |
| | | datasource.master0.password=playpai2023! |
| | | datasource.master0.password=123456 |
| | | datasource.master0.maxActive=20 |
| | | datasource.master0.maxWait=60000 |
| | | datasource.master0.minIdle=5 |
New file |
| | |
| | | package com.dsh.course.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.guns.modular.system.model.Bank; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | @Mapper |
| | | public interface BankMapper extends BaseMapper<Bank> { |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.guns.modular.system.model.OperatorAuth; |
| | | import com.dsh.guns.modular.system.model.OperatorAuthAlipay; |
| | | import com.dsh.guns.modular.system.model.TTurn; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | * @since 2023-09-19 |
| | | */ |
| | | @Mapper |
| | | public interface TOperatorAuthMapper extends BaseMapper<OperatorAuth> { |
| | | public interface TOperatorAuthMapper extends BaseMapper<OperatorAuthAlipay> { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.api; |
| | | |
| | | import cn.hutool.core.io.FileUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alipay.api.msg.AlipayMsgClient; |
| | | import com.alipay.api.msg.MsgHandler; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.guns.modular.system.model.OperatorAuthAlipay; |
| | | import com.dsh.guns.modular.system.model.OperatorUser; |
| | | import com.dsh.guns.modular.system.service.IOperatorAuthService; |
| | | import com.dsh.guns.modular.system.service.IOperatorUserService; |
| | | import com.dsh.guns.modular.system.service.IUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.context.properties.EnableConfigurationProperties; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | @Component |
| | | @Configuration |
| | | @EnableConfigurationProperties({AliPayProperties.class}) |
| | | public class AliPayMsgConfig { |
| | | @Autowired |
| | | private IOperatorAuthService operatorAuthService; |
| | | @Autowired |
| | | private IOperatorUserService operatorUserService; |
| | | @Autowired |
| | | private IUserService userService; |
| | | private AliPayProperties aliPay; |
| | | public AliPayMsgConfig(AliPayProperties aliPay) { |
| | | this.aliPay = aliPay; |
| | | } |
| | | @Bean |
| | | public AlipayMsgClient alipayMsgClient() throws Exception { |
| | | AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliPay.getAppId()); |
| | | alipayMsgClient.setConnector("openchannel.alipay.com"); |
| | | alipayMsgClient.setSecurityConfig(aliPay.getSignType(), aliPay.getAppPrivateKey(), aliPay.getAlipay_public_key()); |
| | | alipayMsgClient.setCharset(aliPay.getChartSet()); |
| | | alipayMsgClient.setMessageHandler(new MsgHandler() { |
| | | /** |
| | | * 客户端接收到消息后回调此方法 |
| | | * @param msgApi 接收到的消息的消息api名 |
| | | * @param msgId 接收到的消息的消息id |
| | | * @param bizContent 接收到的消息的内容,json格式 |
| | | */ |
| | | @Override |
| | | public void onMessage (String msgApi, String msgId, String bizContent) { |
| | | System.err.println("消息对象"+msgApi); |
| | | System.err.println("id"+msgId); |
| | | System.err.println("内容"+bizContent); |
| | | if (msgApi.equals("ant.merchant.expand.indirect.zft.passed")){ |
| | | // 审核通过 |
| | | JSONObject json = JSONObject.parseObject(bizContent); |
| | | String smid = json.getString("smid"); |
| | | String order_id = json.getString("order_id"); |
| | | OperatorAuthAlipay orderNo = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() |
| | | .eq("orderNo", order_id)); |
| | | if (orderNo!=null){ |
| | | Integer operatorId = orderNo.getOperatorId(); |
| | | OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | .eq("operatorId", operatorId)); |
| | | if (operatorId1!=null){ |
| | | operatorId1.setAlipayNum(smid); |
| | | operatorId1.setAlipayAudit(2); |
| | | } |
| | | } |
| | | }else if (msgApi.equals("ant.merchant.expand.indirect.zft.rejected")){ |
| | | // 审核拒绝 |
| | | JSONObject json = JSONObject.parseObject(bizContent); |
| | | String reason = json.getString("reason"); |
| | | String order_id = json.getString("order_id"); |
| | | OperatorAuthAlipay orderNo = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() |
| | | .eq("orderNo", order_id)); |
| | | if (orderNo!=null){ |
| | | orderNo.setRefuseReason(reason); |
| | | Integer operatorId = orderNo.getOperatorId(); |
| | | OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | .eq("operatorId", operatorId)); |
| | | if (operatorId1!=null){ |
| | | operatorId1.setAlipayAudit(3); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | }); |
| | | alipayMsgClient.connect(); |
| | | return alipayMsgClient; |
| | | } |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.api; |
| | | |
| | | import lombok.Data; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | |
| | | @Data |
| | | @ConfigurationProperties(prefix = "alipay") |
| | | public class AliPayProperties { |
| | | /** |
| | | * 加签类型 |
| | | */ |
| | | private String signType = "RSA2"; |
| | | /** |
| | | * 应用id |
| | | */ |
| | | private String appId = "2021004105665036"; |
| | | /** |
| | | * 请求使用的编码格式,如utf-8,gbk,gb2312等 |
| | | */ |
| | | private String chartSet = "utf-8"; |
| | | |
| | | private String appPrivateKey="MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA=="; |
| | | private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 |
| | | /** |
| | | * 应用公钥证书路径 |
| | | */ |
| | | private String appCertPublicKeyPath; |
| | | |
| | | /** |
| | | * 支付宝公钥证书路径 |
| | | */ |
| | | private String aliPayCertPublicKeyPath; |
| | | |
| | | /** |
| | | * 支付宝根证书路径 |
| | | */ |
| | | private String aliPayRootCertPath; |
| | | } |
| | |
| | | import com.alipay.api.domain.PrivilegeBenefit; |
| | | import com.alipay.api.request.AlipayMerchantIndirectAuthorderCloseRequest; |
| | | import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest; |
| | | import com.alipay.api.request.AntMerchantExpandIndirectZftorderQueryRequest; |
| | | import com.alipay.api.response.AlipayMerchantIndirectAuthorderCloseResponse; |
| | | import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse; |
| | | import com.alipay.api.response.AntMerchantExpandIndirectZftorderQueryResponse; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.guns.modular.system.model.OperatorAuth; |
| | | import com.dsh.guns.modular.system.model.OperatorAuthAlipay; |
| | | import com.dsh.guns.modular.system.model.OperatorUser; |
| | | import com.dsh.guns.modular.system.model.User; |
| | | import com.dsh.guns.modular.system.service.IOperatorAuthService; |
| | | import com.dsh.guns.modular.system.service.IOperatorUserService; |
| | | import com.dsh.guns.modular.system.service.IUserService; |
| | | import com.dsh.guns.modular.system.util.PayMoneyUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.scheduling.annotation.EnableScheduling; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import sun.applet.Main; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | |
| | | private IOperatorUserService operatorUserService; |
| | | @Autowired |
| | | private IUserService userService; |
| | | @Autowired |
| | | private PayMoneyUtil payMoneyUtil; |
| | | private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥 |
| | | private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 |
| | | private String aliAppid = "2021004105665036";//支付宝appid |
| | | // 一个小时执行一次 |
| | | @Scheduled(fixedRate=6000) |
| | | @Scheduled(fixedRate=60000) |
| | | private void configureTasks() { |
| | | System.err.println("执行定时任务时间: " + LocalDateTime.now()); |
| | | // 回查商户认证单审核状态 查询除了审核通过以外的认证单 |
| | | List<OperatorAuth> list = operatorAuthService.list(new QueryWrapper<OperatorAuth>().ne("orderStatus", "AUDIT_PASS")); |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333", |
| | | "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK", |
| | | "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2"); |
| | | for (OperatorAuth operatorAuth : list) { |
| | | // 第三步:查询申请单审核结果 |
| | | AlipayMerchantIndirectAuthorderQuerystatusRequest request1 = new AlipayMerchantIndirectAuthorderQuerystatusRequest(); |
| | | request1.setBizContent("{" + |
| | | " \"order_no\":\""+operatorAuth.getOrderNo()+"\"," + |
| | | " \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"," + |
| | | "}"); |
| | | AlipayMerchantIndirectAuthorderQuerystatusResponse response1 = null; |
| | | try { |
| | | response1 = alipayClient.execute(request1); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(response1.isSuccess()){ |
| | | System.out.println("调用成功"); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | } |
| | | JSONObject json = JSONObject.parseObject(response1.getBody()); |
| | | JSONObject sign = json.getJSONObject("alipay_merchant_indirect_authorder_querystatus_response"); |
| | | String orderNo = sign.getString("order_no"); |
| | | String order_status = sign.getString("order_status"); |
| | | operatorAuth.setOrderStatus(order_status); |
| | | operatorAuth.setOrderNo(orderNo); |
| | | // 失败原因 |
| | | JSONArray verify_list = sign.getJSONArray("verify_list"); |
| | | StringBuilder reason = new StringBuilder(""); |
| | | // 失败原因 |
| | | if (verify_list!=null){ |
| | | for (int i = 0; i < verify_list.size(); i++) { |
| | | JSONObject jsonObject = verify_list.getJSONObject(i); |
| | | String fail_reason = jsonObject.getString("fail_reason"); |
| | | reason.append(fail_reason+","); |
| | | } |
| | | String res = reason.toString(); |
| | | String substring = res.substring(0, res.length() - 1); |
| | | operatorAuth.setRefuseReason(substring); |
| | | operatorAuthService.updateById(operatorAuth); |
| | | // 获取运营商的管理员id |
| | | |
| | | /** |
| | | * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM), |
| | | * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、 |
| | | * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、 |
| | | * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING) |
| | | */ |
| | | } |
| | | Integer operatorId = operatorAuth.getOperatorId(); |
| | | User one = userService.getOne(new QueryWrapper<User>().eq("objectId", operatorId) |
| | | .eq("objectType", 2)); |
| | | OperatorUser userId = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | .eq("userId", one.getId())); |
| | | if (userId!=null){ |
| | | switch (order_status){ |
| | | case "AUDITING": |
| | | userId.setAlipayAudit(1); |
| | | break; |
| | | case "CONTACT_CONFIRM": |
| | | userId.setAlipayAudit(2); |
| | | break; |
| | | case "LEGAL_CONFIRM": |
| | | userId.setAlipayAudit(3); |
| | | break; |
| | | case "AUDIT_PASS": |
| | | userId.setAlipayAudit(4); |
| | | break; |
| | | case "AUDIT_REJECT": |
| | | userId.setAlipayAudit(5); |
| | | break; |
| | | case "AUDIT_FREEZE": |
| | | userId.setAlipayAudit(6); |
| | | break; |
| | | case "CANCELED": |
| | | userId.setAlipayAudit(7); |
| | | break; |
| | | case "CONTACT_PROCESSING": |
| | | userId.setAlipayAudit(8); |
| | | break; |
| | | } |
| | | operatorUserService.updateById(userId); |
| | | } |
| | | // 审核通过 |
| | | String qr_code = sign.getString("qr_code"); |
| | | if (qr_code!=null&& (!qr_code.equals(""))){ |
| | | // 将二维码链接保存起来 |
| | | operatorAuth.setQrCode(qr_code); |
| | | operatorAuthService.updateById(operatorAuth); |
| | | } |
| | | // if (operatorAuth.getOrderStatus().equals("AUDIT_REJECT") |
| | | // || operatorAuth.getOrderStatus().equals("AUDIT_FREEZE") |
| | | // || operatorAuth.getOrderStatus().equals("CANCELED")){ |
| | | // // 未通过审核 撤销申请单 |
| | | // AlipayClient alipayClient1 = new DefaultAlipayClient |
| | | // ("https://openapi.alipay.com/gateway.do", |
| | | // "2021004123692417","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==", |
| | | // "json","GBK", |
| | | // "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2"); |
| | | // AlipayMerchantIndirectAuthorderCloseRequest request = new AlipayMerchantIndirectAuthorderCloseRequest(); |
| | | // request.setBizContent("{" + |
| | | // " \"order_no\":\""+operatorAuth.getOrderNo()+"\"," + |
| | | // " \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"" + |
| | | // "}"); |
| | | // AlipayMerchantIndirectAuthorderCloseResponse response = null; |
| | | // try { |
| | | // response = alipayClient1.execute(request); |
| | | // } catch (AlipayApiException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // if(response.isSuccess()){ |
| | | // System.out.println("撤销申请单调用成功"); |
| | | // } else { |
| | | // System.out.println("撤销申请单调用失败"); |
| | | // } |
| | | // payMoneyUtil.getMessage(); |
| | | // List<OperatorAuthAlipay> list = operatorAuthService.list(new QueryWrapper<OperatorAuthAlipay>()); |
| | | // for (OperatorAuthAlipay operatorAuthAlipay : list) { |
| | | // System.err.println("执行定时任务时间: " + LocalDateTime.now()); |
| | | // AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", |
| | | // aliAppid, |
| | | // appPrivateKey, "json", "GBK", |
| | | // alipay_public_key, |
| | | // "RSA2"); |
| | | // AntMerchantExpandIndirectZftorderQueryRequest request = new AntMerchantExpandIndirectZftorderQueryRequest(); |
| | | // request.setBizContent("{" + |
| | | // " \"order_id\":\"" + operatorAuthAlipay.getOrderNo() + "\"," + |
| | | // " \"external_id\":\"" + operatorAuthAlipay.getOutBizNo() + "\"" + |
| | | // "}"); |
| | | // AntMerchantExpandIndirectZftorderQueryResponse response = null; |
| | | // try { |
| | | // response = alipayClient.execute(request); |
| | | // } catch (AlipayApiException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // if (response.isSuccess()) { |
| | | // System.out.println("调用成功"); |
| | | // JSONObject json = JSONObject.parseObject(response.getBody()); |
| | | // System.err.println(json); |
| | | // JSONObject sign = json.getJSONObject("ant_merchant_expand_indirect_zftorder_query_response"); |
| | | // JSONArray orders = sign.getJSONArray("orders"); |
| | | // JSONObject order = orders.getJSONObject(0); |
| | | // // 提取订单信息 |
| | | // String reason = order.getString("reason"); |
| | | // String smid = order.getString("smid"); |
| | | // String merchantName = order.getString("merchant_name"); |
| | | // String applyTime = order.getString("apply_time"); |
| | | // String externalId = order.getString("external_id"); |
| | | // String orderId = order.getString("order_id"); |
| | | // String applyType = order.getString("apply_type"); |
| | | // String status = order.getString("status"); |
| | | // // 打印订单信息 |
| | | // System.out.println("Reason: " + reason); |
| | | // System.out.println("Merchant Name: " + merchantName); |
| | | // System.out.println("Apply Time: " + applyTime); |
| | | // System.out.println("External ID: " + externalId); |
| | | // System.out.println("Order ID: " + orderId); |
| | | // System.out.println("Apply Type: " + applyType); |
| | | // System.out.println("Status: " + status); |
| | | // } else { |
| | | // System.out.println("调用失败"); |
| | | // } |
| | | // } |
| | | |
| | | } |
| | | |
| | | |
| | | // // 回查商户认证单审核状态 查询除了审核通过以外的认证单 |
| | | // List<OperatorAuthAlipay> list = operatorAuthService.list(new QueryWrapper<OperatorAuthAlipay>().ne("orderStatus", "AUDIT_PASS")); |
| | | // AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333", |
| | | // "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK", |
| | | // "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2"); |
| | | // for (OperatorAuthAlipay operatorAuth : list) { |
| | | // // 第三步:查询申请单审核结果 |
| | | // AlipayMerchantIndirectAuthorderQuerystatusRequest request1 = new AlipayMerchantIndirectAuthorderQuerystatusRequest(); |
| | | // request1.setBizContent("{" + |
| | | // " \"order_no\":\""+"202312011045284847"+"\"," + |
| | | // " \"out_biz_no\":\""+"83972149e3f84216ad2654a1571963f4"+"\"," + |
| | | // "}"); |
| | | // AlipayMerchantIndirectAuthorderQuerystatusResponse response1 = null; |
| | | // try { |
| | | // response1 = alipayClient.execute(request1); |
| | | // } catch (AlipayApiException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // if(response1.isSuccess()){ |
| | | // System.out.println("调用成功"); |
| | | // } else { |
| | | // System.out.println("调用失败"); |
| | | // } |
| | | // JSONObject json = JSONObject.parseObject(response1.getBody()); |
| | | // JSONObject sign = json.getJSONObject("alipay_merchant_indirect_authorder_querystatus_response"); |
| | | // String orderNo = sign.getString("order_no"); |
| | | // String order_status = sign.getString("order_status"); |
| | | //// operatorAuth.setOrderStatus(order_status); |
| | | // operatorAuth.setOrderNo(orderNo); |
| | | // System.err.println("审核状态:"+order_status); |
| | | // |
| | | // // 失败原因 |
| | | // JSONArray verify_list = sign.getJSONArray("verify_list"); |
| | | // StringBuilder reason = new StringBuilder(""); |
| | | // // 失败原因 |
| | | // if (verify_list!=null){ |
| | | // for (int i = 0; i < verify_list.size(); i++) { |
| | | // JSONObject jsonObject = verify_list.getJSONObject(i); |
| | | // String fail_reason = jsonObject.getString("fail_reason"); |
| | | // reason.append(fail_reason+","); |
| | | // } |
| | | // String res = reason.toString(); |
| | | // String substring = res.substring(0, res.length() - 1); |
| | | // operatorAuth.setRefuseReason(substring); |
| | | // operatorAuthService.updateById(operatorAuth); |
| | | ///** |
| | | // * 状态 1=审核中(AUDITING)、2=待联系人确认(CONTACT_CONFIRM), |
| | | // * 3=待法人确认(LEGAL_CONFIRM)、4=审核通过(AUDIT_PASS)、 |
| | | // * 5=审核失败(AUDIT_REJECT)、6=已冻结(AUDIT_FREEZE)、 |
| | | // * 7=已撤回(CANCELED)、8=联系人处理中(CONTACT_PROCESSING) |
| | | // */ |
| | | // }else{ |
| | | // operatorAuth.setRefuseReason(null); |
| | | // } |
| | | // Integer operatorId = operatorAuth.getOperatorId(); |
| | | // User one = userService.getOne(new QueryWrapper<User>().eq("objectId", operatorId) |
| | | // .eq("objectType", 2)); |
| | | // OperatorUser userId = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | // .eq("userId", one.getId())); |
| | | //// if (userId!=null){ |
| | | //// switch (order_status){ |
| | | //// case "AUDITING": |
| | | ////// operatorAuth.setOrderStatus("AUDITING"); |
| | | //// userId.setAlipayAudit(1); |
| | | //// break; |
| | | //// case "CONTACT_CONFIRM": |
| | | //// operatorAuth.setOrderStatus("CONTACT_CONFIRM"); |
| | | //// userId.setAlipayAudit(2); |
| | | //// break; |
| | | //// case "LEGAL_CONFIRM": |
| | | //// operatorAuth.setOrderStatus("LEGAL_CONFIRM"); |
| | | //// userId.setAlipayAudit(3); |
| | | //// break; |
| | | //// case "AUDIT_PASS": |
| | | //// operatorAuth.setOrderStatus("AUDIT_PASS"); |
| | | //// userId.setAlipayAudit(4); |
| | | //// break; |
| | | //// case "AUDIT_REJECT": |
| | | //// operatorAuth.setOrderStatus("AUDIT_REJECT"); |
| | | //// userId.setAlipayAudit(5); |
| | | //// break; |
| | | //// case "AUDIT_FREEZE": |
| | | //// operatorAuth.setOrderStatus("AUDIT_FREEZE"); |
| | | //// userId.setAlipayAudit(6); |
| | | //// break; |
| | | //// case "CANCELED": |
| | | //// operatorAuth.setOrderStatus("CANCELED"); |
| | | //// userId.setAlipayAudit(7); |
| | | //// break; |
| | | //// case "CONTACT_PROCESSING": |
| | | //// operatorAuth.setOrderStatus("CONTACT_PROCESSING"); |
| | | //// userId.setAlipayAudit(8); |
| | | //// break; |
| | | //// } |
| | | //// operatorUserService.updateById(userId); |
| | | //// } |
| | | // // 审核通过 |
| | | // String qr_code = sign.getString("qr_code"); |
| | | //// operatorAuth.setQrCode(qr_code); |
| | | // operatorAuthService.updateById(operatorAuth); |
| | | // System.err.println("二维码"+qr_code); |
| | | //// if (operatorAuth.getOrderStatus().equals("AUDIT_REJECT") |
| | | //// || operatorAuth.getOrderStatus().equals("AUDIT_FREEZE") |
| | | //// || operatorAuth.getOrderStatus().equals("CANCELED")){ |
| | | //// // 未通过审核 撤销申请单 |
| | | //// AlipayClient alipayClient1 = new DefaultAlipayClient |
| | | //// ("https://openapi.alipay.com/gateway.do", |
| | | //// "2021004123692417","MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCq1V7akWZ/V9mr8NGW2CihIbY93M7M33LpVM5y63qEuN7yqyJV197WT6c7uHBcttY6cJLawXLihgC8KF6ZzdXWbm4n4RiigxIaz9LbSVBjYplkNgG2rg7W7dB8wrrqcwBQU0n+pFX3KWJkHRXDugqE21VCGgzySKQBkhiztmTI/z039PdWp2RTGLiL/OuwVrPjQv3He2orYIZgADWid0mtZXCEFosDkaQDTEqCfuDEuMouEiaIk/lw0ZWxiR1Fvfr82nO0r94lM/CC1wNRif2+2ESR+YystsWQPm16eRgS3wAQz2cOTP4L5VNKNzcUAgxTQK3Bj8GvqrYUUlcC7VCTAgMBAAECggEAPKmYDTUkmIOxoATb6BzKEK3P8Re/t7CBNaoPxW8pCog7YyCyCJmnX6LZV7Oe8s1aNVZUT6nyCc5b5HTRYvxcutBr/W1JOiwg+bRiw8u86A3TOmqTITOdwWShbCwaA7binaN12x6wCByB+9r4J5Cgu5zHIbnubvqsgoJGk0ppb5XbyYkikOAXPHli4PUe4GOorSuhRdq3XlGWiMwh4yt48kF4vP+2ByuDOYQU6LjGs0wn/5LpN+ReLdXTab65Cz7WYTDrTndyIrhFg7cyT5m2gtiJuEgIJ45uaaeGNIecV6JSnRsEv4YD4m+I58yhyyvw9zd0Z5qP04QNjy7OK2UeQQKBgQD/EJpaVv0RR83Z6Hp2YVrPoiMz279U5bgkBbcxgr9GR2YYE3rrHqBdqch1Uitu+g6LIC+SDtib7yG9C7EqPHB3fsfEw8NtL54gy3OFbCcH3lqFxgtrCpQ2SIXQjd8932TpzcMdD6jzyUoSraT+lgkf2MgjqFiMbNVg50lGDyWujQKBgQCrdbXTttuazdwU0pdRFCuTz42iIJSZtHFUPvmbrBy7LFQ8NTN76dqLM1RUH7gJukPc4+Ax+DfpDgHZ4nQ2KSk9FweLqKSf10kojibKpc3nkgDRtUtSTar8fZn9VKTuXK1Ho0LUkjDlHjlEwUuf/Ef+IdjzXDJ2UPWHp2YzxvNDnwKBgBWGtjAnpUX/FF1upF83Si251lS7GAO3O3o2zUYtba0lu3UOt9H+DLS67oMQQ0AjdHTDa6BdBmTqoqNMyE/zN96t4Xg2uViOqz7DTOWWwhiE6IjftPj8tJN8PWbjglK7ds3QosXiG3UvqMO4yfL+gJiieAmiXI7FZKDABEwYXSrFAoGASXVe91vKbmJwPgOTjMsleGhd9+4ZfFjQjRWF/2oXzSFK3Zi1fAtO9ICDSp9kS9afqI2AyifcXF8B8AWTYHj2EBRDyVPxZAHqeBOfDwdGVkY5T59qq9JWxWJSjTSsjOrr2ltaEJSpmh/+zTQ7YEnH1ltOBcWkYQiCiSHxKZG9O2UCgYBfBTkjktzv81SnW47d0qRwmiXrcyObmXTe5fIW9e6KaB0SnzcVvoCmm7TTk+Bm4WqNmfb5k8U6J22vdxB1TPlRksnY+VZDM0Grv/xUII9G8oVQ4+NiE5XvQ7+nc5EBJ12of6GxE7/yXZiDld62q2sFZgrFzhvvHV+IADsu/VdIEw==", |
| | | //// "json","GBK", |
| | | //// "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCzq4BIE4gMdEXxIAAUbiMpSytkzp+LVLVsBtji87rFGfWUcnrr3NKftaw0WtRu+36d1nDVOWW4CmgsOPyj1GOFoTcJOR/BqyIriwyLxpuMS8qgOqGJZXi+W4Nw2AJL6iMVwY2eI8F1G10gACK2I9TNJRzHh3tMTA6ItysbGoekRDtn6Xrkh5V6cyHQjLw0Q6MJK/68XT6/LWzarDEEYrSnIevOydMY32ptAgm5fp/h08M2khCmI6CuMWKmc87dPpd2krGVTALqprAQvB74AIqO+5DE0fN4LoitOYXAtWDCEF4kHN0hQUygIEGCwtMgEVzkf92VLlCX35YtDhWd1yQIDAQAB","RSA2"); |
| | | //// AlipayMerchantIndirectAuthorderCloseRequest request = new AlipayMerchantIndirectAuthorderCloseRequest(); |
| | | //// request.setBizContent("{" + |
| | | //// " \"order_no\":\""+operatorAuth.getOrderNo()+"\"," + |
| | | //// " \"out_biz_no\":\""+operatorAuth.getOutBizNo()+"\"" + |
| | | //// "}"); |
| | | //// AlipayMerchantIndirectAuthorderCloseResponse response = null; |
| | | //// try { |
| | | //// response = alipayClient1.execute(request); |
| | | //// } catch (AlipayApiException e) { |
| | | //// e.printStackTrace(); |
| | | //// } |
| | | //// if(response.isSuccess()){ |
| | | //// System.out.println("撤销申请单调用成功"); |
| | | //// } else { |
| | | //// System.out.println("撤销申请单调用失败"); |
| | | //// } |
| | | //// } |
| | | |
| | | // } |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | String s = "{\"sign\":\"Q8wa/EiKqeRiatW3mDhPA3Ia1jYXK6c8CxlhTQb0o9XHui16UURb7oiqnoS+P22q3a3POjmuhl/Rwm6MBGzp8RNcXwoWTExNq29OR/jZ6SU9HWiOUewv0/kGgNj4WHpbGbVqaoaW3/Q6w0IhCSRT3GAsULHPBeWQ2HyrScl549y/mwsI6bX132S9dHJ5O7we4Oho0pDWrQfE+daP4p+y1HVGeD6WGBq5HjXIuqNmE/ZrRFc/R+8baMwRQgECeohKhpPs9Ov1xuzeq/wuk/NuDG9YbE/+cKs/Kkg3fYIPM1CsIwvam3wP2iYhTaUlEYidt++EwJ2QVIB3OD5So5aKdg==\",\"ant_merchant_expand_indirect_zftorder_query_response\":{\"msg\":\"Success\",\"code\":\"10000\",\"orders\":[{\"reason\":\"公安网校验失败\",\"merchant_name\":\"成都玩湃生活体育发展有限公司\",\"apply_time\":\"2023-12-20 18:36:26\",\"external_id\":\"273c5a8ad59f4e5397253045af1de8fe\",\"order_id\":\"2023122000502000000005299341\",\"apply_type\":\"ZHIFUTONG_CREATE\",\"status\":\"-1\"}]}}"; |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | import com.alipay.api.request.AlipayMerchantIndirectAuthorderCreateRequest; |
| | | import com.alipay.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest; |
| | | import com.alipay.api.request.AntMerchantExpandIndirectImageUploadRequest; |
| | | import com.alipay.api.request.AntMerchantExpandIndirectZftCreateRequest; |
| | | import com.alipay.api.response.AlipayMerchantIndirectAuthorderCreateResponse; |
| | | import com.alipay.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse; |
| | | import com.alipay.api.response.AntMerchantExpandIndirectImageUploadResponse; |
| | | import com.alipay.api.response.AntMerchantExpandIndirectZftCreateResponse; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | import com.dsh.guns.modular.system.model.*; |
| | | import com.dsh.guns.modular.system.service.*; |
| | | |
| | | import com.dsh.guns.modular.system.util.PayMoneyUtil; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | |
| | | import com.github.binarywang.wxpay.service.BankService; |
| | | import com.mysql.cj.x.protobuf.MysqlxExpr; |
| | | import org.apache.poi.ss.formula.functions.T; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | |
| | | import java.util.*; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | |
| | | @Autowired |
| | | private TOperatorCityService operatorCityService; |
| | | @Autowired |
| | | private IOperatorAuthService operatorAuthService; |
| | | @Autowired |
| | | private IOperatorUserService operatorUserService; |
| | | @Autowired |
| | | private IUserService userService; |
| | | @Autowired |
| | | private ICityService cityService; |
| | | @Autowired |
| | | private IOperatorAuthService operatorAuthService; |
| | | private PayMoneyUtil payMoneyUtil; |
| | | |
| | | @Autowired |
| | | private IStoreService storeService; |
| | | |
| | | |
| | | private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥 |
| | | private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 |
| | | private String aliAppid = "2021004105665036";//支付宝appid |
| | | /** |
| | | * 根据运营商id查询所有门店 |
| | | */ |
| | |
| | | @ResponseBody |
| | | public List<TStore> getStores(Integer id) |
| | | { |
| | | payMoneyUtil.getMessage(); |
| | | return storeService.list(new QueryWrapper<TStore>() |
| | | .eq("operatorId",id) |
| | | .ne("state",3)); |
| | |
| | | page.setRecords(list); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | /** |
| | | * 跳转运营商商户去认证页面 |
| | | */ |
| | |
| | | User byId = userService.getById(data.getUserId()); |
| | | model.addAttribute("user",byId); |
| | | List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | model.addAttribute("provinceList",list); |
| | | model.addAttribute("list",list); |
| | | model.addAttribute("data",data); |
| | | OperatorAuth info = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", id)); |
| | | OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", id)); |
| | | model.addAttribute("item",info); |
| | | |
| | | if (info==null){ |
| | | OperatorAuth operatorAuth = new OperatorAuth(); |
| | | OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay(); |
| | | model.addAttribute("item",operatorAuth); |
| | | model.addAttribute("bodyType",0); |
| | | model.addAttribute("code",null); |
| | | model.addAttribute("reasons",null); |
| | | // 0不显示二维码 |
| | | model.addAttribute("type",0); |
| | | |
| | | }else{ |
| | | if (info.getOrderStatus().equals("AUDIT_PASS")){ |
| | | // 通过才展示二维码 |
| | | model.addAttribute("type",1); |
| | | }else{ |
| | | model.addAttribute("type",0); |
| | | } |
| | | model.addAttribute("code",info.getQrCode()); |
| | | model.addAttribute("item",info); |
| | | model.addAttribute("bodyType",info.getBodyType()); |
| | | if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){ |
| | | model.addAttribute("reasons",info.getRefuseReason()); |
| | | }else{ |
| | | model.addAttribute("reasons",null); |
| | | } |
| | | model.addAttribute("accountType",info.getAccountType()); |
| | | model.addAttribute("useType",info.getUseType()); |
| | | model.addAttribute("cardType",info.getCardType()); |
| | | model.addAttribute("reasons",info.getRefuseReason()); |
| | | // TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode())); |
| | | // List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId())); |
| | | // model.addAttribute("district",district); |
| | | // if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){ |
| | | // // 通过才展示二维码 |
| | | // model.addAttribute("type",1); |
| | | // }else{ |
| | | // model.addAttribute("type",0); |
| | | // } |
| | | // model.addAttribute("code",info.getQrCode()); |
| | | // model.addAttribute("item",info); |
| | | // model.addAttribute("bodyType",info.getBodyType()); |
| | | // if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){ |
| | | // model.addAttribute("reasons",info.getRefuseReason()); |
| | | // }else{ |
| | | // model.addAttribute("reasons",null); |
| | | // } |
| | | |
| | | |
| | | } |
| | | return PREFIX + "OperatorUser_proportionAuth.html"; |
| | | } |
| | | /** |
| | | * 跳转运营商商户去认证页面 详情页面 |
| | | */ |
| | | @RequestMapping("/proportionAuth1/{id}") |
| | | public String proportionAuth1(Model model,@PathVariable("id") Integer id) { |
| | | model.addAttribute("id",id); |
| | | TOperator data = operatorService.getById(id); |
| | | User byId = userService.getById(data.getUserId()); |
| | | model.addAttribute("user",byId); |
| | | |
| | | model.addAttribute("data",data); |
| | | OperatorAuthAlipay info = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() |
| | | .eq("operatorId", id)); |
| | | model.addAttribute("item",info); |
| | | List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | model.addAttribute("list1",list1); |
| | | if (StringUtils.hasLength(info.getProvince())){ |
| | | // 获取银行开户省 |
| | | List<TCity> list4 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | // 获取银行开户市 |
| | | TCity city = cityService.getOne(new QueryWrapper<TCity>().eq("code", info.getProvinceCode())); |
| | | List<TCity> list5 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, city.getId())); |
| | | model.addAttribute("list4",list4); |
| | | model.addAttribute("list5",list5); |
| | | }else{ |
| | | List<TCity> list6 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); |
| | | model.addAttribute("list4",list6); |
| | | } |
| | | |
| | | |
| | | |
| | | model.addAttribute("bodyType",info.getBodyType()); |
| | | model.addAttribute("accountType",info.getAccountType()); |
| | | model.addAttribute("useType",info.getUseType()); |
| | | model.addAttribute("cardType",info.getCardType()); |
| | | model.addAttribute("reasons",info.getRefuseReason()); |
| | | |
| | | |
| | | |
| | | // TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, info.getCityCode())); |
| | | // List<TCity> district = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId())); |
| | | // model.addAttribute("district",district); |
| | | // if (info.getOrderStatus().equals("AUDIT_PASS")||info.getOrderStatus().equals("LEGAL_CONFIRM")||info.getOrderStatus().equals("CONTACT_CONFIRM")){ |
| | | // // 通过才展示二维码 |
| | | // model.addAttribute("type",1); |
| | | // }else{ |
| | | // model.addAttribute("type",0); |
| | | // } |
| | | // model.addAttribute("code",info.getQrCode()); |
| | | // model.addAttribute("item",info); |
| | | // model.addAttribute("bodyType",info.getBodyType()); |
| | | // if (info.getRefuseReason()!=null && (!info.getRefuseReason().equals(""))){ |
| | | // model.addAttribute("reasons",info.getRefuseReason()); |
| | | // }else{ |
| | | // model.addAttribute("reasons",null); |
| | | // } |
| | | |
| | | return PREFIX + "OperatorUser_proportionAuth_info.html"; |
| | | } |
| | | /** |
| | | * 根据所选市 获取区 |
| | | */ |
| | | @RequestMapping(value = "/getDistrict") |
| | | @ResponseBody |
| | | public Object onChange(String cityCode) { |
| | | try { |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode)); |
| | | List<TCity> parent_id = cityService.list(new QueryWrapper<TCity>().eq("parent_id", one.getId())); |
| | | return parent_id; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ERROR; |
| | | } |
| | | } |
| | | public static void main(String[] args) { |
| | | String bankName = "中国工商银行"; // 要转换为简写的银行名称 |
| | | |
| | | Pattern pattern = Pattern.compile("([\\u4e00-\\u9fa5]+)(?=\\s+[A-Za-z]+$)"); |
| | | Matcher matcher = pattern.matcher(bankName); |
| | | if (matcher.find()) { |
| | | System.out.println(matcher.group()); // 输出结果:"工商银行" -> "ICBC" |
| | | } else { |
| | | System.out.println("无法识别该银行名称!"); |
| | | } |
| | | } |
| | | /** |
| | | * 支付宝商户认证提交 |
| | | */ |
| | | @RequestMapping(value = "/auth") |
| | | @ResponseBody |
| | | public Object auth(String beneficiaryEnd,String businessEnd,String legalEnd, String name,String phone,String number |
| | | ,Integer operatorId,String bodyType,Integer type,String businessName,String businessNumber, |
| | | String legalRepresentative,String registerAddress,String businessTerm,String businessPicture, |
| | | String legalPerson,String legalNumber,String legalPhone,String legalEmail,String legalTerm, |
| | | String legalAddress,String legalFront,String legalBack,Integer accountType,String bank, |
| | | String accountName,String province,String provinceCode,String city,String cityCode, |
| | | String bankName,String bankNumber,String isBeneficiary,String beneficiary,String beneficiaryPhone, |
| | | String beneficiaryNumber,String beneficiaryAddress,String beneficiaryTerm,String beneficiaryFront,String beneficiaryBack, |
| | | String remark) { |
| | | public Object auth(Integer operatorId,String bodyType,String businessName,String aliasName,String businessNumber, |
| | | String license,String name,String phone,String shopProvinceCode,String shopProvince,String shopCityCode, |
| | | String shopCity, String shopDistrictCode,String shopDistrict,String registerAddress,String legalPerson, |
| | | String leagleNumber,String legalFront,String legalBack,String accountType,String alipayAccount, |
| | | String bankCard,String useType,String cardType,String bankName,String bankNameTwo, |
| | | String accountName,String provinceCode,String province,String cityCode,String city,String zfbAccount, |
| | | String iqImage) { |
| | | UUID uuid = UUID.randomUUID(); |
| | | OperatorAuth data = operatorAuthService.getOne(new QueryWrapper<OperatorAuth>().eq("operatorId", operatorId)); |
| | | OperatorAuth operatorAuth = new OperatorAuth(); |
| | | // 通过运营商id查询 |
| | | TOperator byId = operatorService.getById(operatorId); |
| | | Integer userId1 = byId.getUserId(); |
| | | OperatorUser userId2 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | .eq("userId", userId1)); |
| | | // 0未认证 1待审核 2通过 3驳回 |
| | | userId2.setAlipayAudit(1); |
| | | operatorUserService.updateById(userId2); |
| | | OperatorAuthAlipay data = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>().eq("operatorId", operatorId)); |
| | | String group="ABC"; |
| | | // if(StringUtils.hasLength(bankName)){ |
| | | // Pattern pattern = Pattern.compile(".*[\\u4e00-\\u9fa5]+"); // 只保留汉字部分 |
| | | // Matcher matcher = pattern.matcher(bankName); |
| | | // group = matcher.group(); |
| | | // if (matcher.find()) { |
| | | // System.out.println("银行名称简写为:" + matcher.group()); |
| | | // } else { |
| | | // System.out.println("无法获取到银行名称简写!"); |
| | | // return 5007; |
| | | // } |
| | | // } |
| | | |
| | | OperatorAuthAlipay operatorAuth = new OperatorAuthAlipay(); |
| | | if (data!=null){ |
| | | operatorAuth.setId(data.getId()); |
| | | if(businessPicture==null || businessPicture.equals("")){ |
| | | operatorAuth.setBusinessPicture(data.getBusinessPicture()); |
| | | businessPicture = data.getBusinessPicture(); |
| | | } |
| | | if(legalFront==null || legalFront.equals("")){ |
| | | legalFront = data.getLegalFront(); |
| | | operatorAuth.setLegalFront(data.getLegalFront()); |
| | |
| | | legalBack = data.getLegalBack(); |
| | | operatorAuth.setLegalBack(data.getLegalBack()); |
| | | } |
| | | if(beneficiaryFront==null || beneficiaryFront.equals("")){ |
| | | beneficiaryFront = data.getBeneficiaryFront(); |
| | | operatorAuth.setBeneficiaryFront(data.getBeneficiaryFront()); |
| | | if(iqImage==null || iqImage.equals("")){ |
| | | iqImage = data.getIqImage(); |
| | | operatorAuth.setIqImage(data.getIqImage()); |
| | | } |
| | | if(beneficiaryBack==null || beneficiaryBack.equals("")){ |
| | | beneficiaryBack = data.getBeneficiaryBack(); |
| | | operatorAuth.setBeneficiaryBack(data.getBeneficiaryBack()); |
| | | |
| | | if(license==null || license.equals("")){ |
| | | license = data.getCertImage(); |
| | | operatorAuth.setCertImage(data.getCertImage()); |
| | | } |
| | | }else{ |
| | | if(businessPicture==null || businessPicture.equals("")){ |
| | | operatorAuth.setLegalFront(legalFront); |
| | | operatorAuth.setLegalBack(legalBack); |
| | | operatorAuth.setIqImage(iqImage); |
| | | operatorAuth.setCertImage(license); |
| | | if(license==null || license.equals("")){ |
| | | // 未上传营业执照 |
| | | return 5001; |
| | | } |
| | |
| | | // 未上传法人身份证背面照 |
| | | return 5003; |
| | | } |
| | | if (businessPicture!=null && businessPicture.equals("ENTERPRISE")){ |
| | | if(beneficiaryFront==null || beneficiaryFront.equals("")){ |
| | | // 未上传受益人身份证正面照 |
| | | return 5004; |
| | | } |
| | | if(beneficiaryBack==null || beneficiaryBack.equals("")){ |
| | | // 未上传受益人身份证背面照 |
| | | return 5005; |
| | | } |
| | | } |
| | | } |
| | | String numericUUID = uuid.toString().replaceAll("-", ""); |
| | | operatorAuth.setOutBizNo(numericUUID); |
| | | operatorAuth.setOperatorId(operatorId); |
| | | operatorAuth.setRegisterAddress(registerAddress); |
| | | operatorAuth.setAliasName(aliasName); |
| | | operatorAuth.setBodyType(bodyType); |
| | | operatorAuth.setName(name); |
| | | operatorAuth.setPhone(phone); |
| | | operatorAuth.setNumber(number); |
| | | operatorAuth.setBusinessEnd(businessEnd); |
| | | operatorAuth.setLegalEnd(legalEnd); |
| | | operatorAuth.setBeneficiaryEnd(beneficiaryEnd); |
| | | operatorAuth.setOperatorId(operatorId); |
| | | operatorAuth.setBodyType(bodyType); |
| | | operatorAuth.setType(type); |
| | | operatorAuth.setBusinessName(businessName); |
| | | operatorAuth.setBusinessNumber(businessNumber); |
| | | operatorAuth.setLegalRepresentative(legalRepresentative); |
| | | operatorAuth.setRegisterAddress(registerAddress); |
| | | operatorAuth.setBusinessTerm(businessTerm); |
| | | operatorAuth.setOutBizNo(numericUUID); |
| | | operatorAuth.setBusinessPicture(businessPicture); |
| | | operatorAuth.setCertImage(license); |
| | | operatorAuth.setLegalPerson(legalPerson); |
| | | operatorAuth.setLeagleNumber(legalNumber); |
| | | operatorAuth.setLegalPhone(legalPhone); |
| | | operatorAuth.setLegalEmail(legalEmail); |
| | | operatorAuth.setLegalTerm(legalTerm); |
| | | operatorAuth.setLegalAddress(legalAddress); |
| | | operatorAuth.setLegalFront(legalFront); |
| | | operatorAuth.setLegalBack(legalBack); |
| | | operatorAuth.setLeagleNumber(leagleNumber); |
| | | operatorAuth.setAccountType(accountType); |
| | | operatorAuth.setBank(bank); |
| | | operatorAuth.setBankName(bankName); |
| | | operatorAuth.setAccountName(accountName); |
| | | operatorAuth.setBankCard(bankCard); |
| | | operatorAuth.setProvince(province); |
| | | operatorAuth.setProvinceCode(provinceCode); |
| | | operatorAuth.setCity(city); |
| | | operatorAuth.setCityCode(cityCode); |
| | | operatorAuth.setBankName(bankName); |
| | | operatorAuth.setBankNumber(bankNumber); |
| | | operatorAuth.setShopCity(shopCity); |
| | | operatorAuth.setShopProvince(shopProvince); |
| | | operatorAuth.setShopProvinceCode(shopProvinceCode); |
| | | operatorAuth.setShopCityCode(shopCityCode); |
| | | operatorAuth.setProvince(province); |
| | | operatorAuth.setProvinceCode(provinceCode); |
| | | operatorAuth.setShopDistrict(shopDistrict); |
| | | operatorAuth.setShopDistrictCode(shopDistrictCode); |
| | | operatorAuth.setAlipayAccount(alipayAccount); |
| | | operatorAuth.setUseType(useType); |
| | | operatorAuth.setCardType(cardType); |
| | | operatorAuth.setBankNameTwo(bankNameTwo); |
| | | operatorAuth.setAuditState(0); |
| | | operatorAuth.setIsBeneficiary(isBeneficiary); |
| | | operatorAuth.setBeneficiary(beneficiary); |
| | | operatorAuth.setBeneficiaryNumber(beneficiaryNumber); |
| | | operatorAuth.setBeneficiaryAddress(beneficiaryAddress); |
| | | operatorAuth.setBeneficiaryTerm(beneficiaryTerm); |
| | | operatorAuth.setBeneficiaryFront(beneficiaryFront); |
| | | operatorAuth.setBeneficiaryBack(beneficiaryBack); |
| | | operatorAuth.setRefuseReason(""); |
| | | operatorAuth.setRemark(remark); |
| | | |
| | | |
| | | operatorAuth.setZfbAccount(zfbAccount); |
| | | // 将图片上传至阿里存储 |
| | | // 营业执照 |
| | | String string = uploadImg(businessPicture).toString(); |
| | | String string = uploadImg(license).toString(); |
| | | // 法人身份证正面照 |
| | | legalFront = uploadImg(legalFront).toString(); |
| | | // 法人身份证背面照 |
| | | legalBack = uploadImg(legalBack).toString(); |
| | | |
| | | if (bodyType.equals("ENTERPRISE")){ |
| | | // 受益人身份证正面照 |
| | | beneficiaryFront=uploadImg(beneficiaryFront).toString(); |
| | | // 受益人身份证背面照 |
| | | beneficiaryBack=uploadImg(beneficiaryBack).toString(); |
| | | } |
| | | |
| | | |
| | | //第二步:提交申请单 |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","2021003199648333", |
| | | "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g==","json","GBK", |
| | | "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB","RSA2"); |
| | | AlipayMerchantIndirectAuthorderCreateRequest request = new AlipayMerchantIndirectAuthorderCreateRequest(); |
| | | operatorAuthService.saveOrUpdate(operatorAuth); |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", |
| | | aliAppid, |
| | | appPrivateKey, |
| | | "json","GBK", |
| | | alipay_public_key, |
| | | "RSA2"); |
| | | AntMerchantExpandIndirectZftCreateRequest request = new AntMerchantExpandIndirectZftCreateRequest(); |
| | | String param = "{" + |
| | | " \"out_biz_no\":\""+uuid+"\"," + |
| | | " \"contact_person_info\":{" + |
| | | " \"contact_name\":\""+name+"\"," + |
| | | " \"contact_phone_no\":\""+phone+"\"," + |
| | | " \"contact_card_no\":\""+number+"\"," + |
| | | " \"contact_cert_type\":\"RESIDENT\"" + |
| | | " }," + |
| | | " \"auth_identity_info\":{" + |
| | | " \"identity_type\":\""+bodyType+"\"," + |
| | | " \"is_financial_org\":false," + |
| | | " \"certificate_type\":\"BUSINESS_CERT\"," + |
| | | " \"certificate_info\":{" + |
| | | " \"cert_no\":\""+businessNumber+"\"," + |
| | | " \"cert_image\":\""+string+"\"," + |
| | | " \"merchant_name\":\""+businessName+"\"," + |
| | | " \"legal_person_name\":\""+legalRepresentative+"\"," + |
| | | " \"register_address\":\""+registerAddress+"\"," + |
| | | " \"effect_time\":\""+businessTerm+"\"," + |
| | | " \"expire_time\":\""+businessEnd+"\"" + |
| | | " }," + |
| | | " }," + |
| | | " \"legal_person_info\":{" + |
| | | " \"card_type\":\"RESIDENT\"," + |
| | | " \"person_name\":\""+legalRepresentative+"\"," + |
| | | " \"card_no\":\""+legalNumber+"\"," + |
| | | " \"effect_time\":\""+legalTerm+"\"," + |
| | | " \"expire_time\":\""+legalEnd+"\"," + |
| | | " \"card_front_img\":\""+legalFront+"\"," + |
| | | " \"card_back_img\":\""+legalBack+"\"," + |
| | | " \"is_benefit_person\":"+isBeneficiary+"" + |
| | | " },"; |
| | | String bene = " \"benefit_person_info\":{" + |
| | | " \"person_name\":\""+beneficiary+"\"," + |
| | | " \"card_no\":\""+beneficiaryNumber+"\"," + |
| | | " \"card_type\":\"RESIDENT\"," + |
| | | " \"effect_time\":\""+beneficiaryTerm+"\"," + |
| | | " \"expire_time\":\""+beneficiaryEnd+"\"," + |
| | | " \"card_front_img\":\""+beneficiaryFront+"\"," + |
| | | " \"card_back_img\":\""+beneficiaryBack+"\"" + |
| | | " },"; |
| | | if (bodyType.equals("ENTERPRISE")){ |
| | | request.setBizContent(param |
| | | + bene+ |
| | | "}"); |
| | | }else{ |
| | | request.setBizContent(param |
| | | + |
| | | "}"); |
| | | } |
| | | " \"external_id\":\""+numericUUID+"\"," + |
| | | " \"merchant_type\":\""+bodyType+"\"," + |
| | | " \"name\":\""+businessName+"\"," + |
| | | " \"alias_name\":\""+aliasName+"\"," + |
| | | " \"mcc\":\"B0068\"," + |
| | | " \"cert_no\":\""+businessNumber+"\"," + |
| | | " \"cert_type\":\"201\"," + |
| | | " \"cert_image\":\""+string+"\"," + |
| | | " \"legal_name\":\""+legalPerson+"\"," + |
| | | " \"legal_cert_no\":\""+leagleNumber+"\"," + |
| | | " \"legal_cert_front_image\":\""+legalFront+"\"," + |
| | | " \"legal_cert_back_image\":\""+legalBack+"\"," + |
| | | " \"contact_infos\":[" + |
| | | " {" + |
| | | " \"name\":\""+name+"\"," + |
| | | " \"mobile\":\""+phone+"\"," + |
| | | " }" + |
| | | " ],"; |
| | | |
| | | AlipayMerchantIndirectAuthorderCreateResponse response = null; |
| | | // todo 拼接 |
| | | String biz_cards=" \"biz_cards\":[" + |
| | | " {" + |
| | | " \"account_holder_name\":\""+accountName+"\"," + |
| | | " \"account_no\":\""+bankCard+"\"," + |
| | | " \"account_inst_province\":\""+province+"\"," + |
| | | " \"account_inst_city\":\""+city+"\"," + |
| | | " \"account_branch_name\":\""+bankNameTwo+"\"," + |
| | | " \"usage_type\":\""+useType+"\"," + |
| | | " \"account_type\":\""+cardType+"\"," + |
| | | " \"account_inst_name\":\""+bankName+"\"," + |
| | | " \"account_inst_id\":\""+group+"\"," + |
| | | " }" + |
| | | " ]," ; |
| | | // 结算类型 支付宝账户 / 银行卡 |
| | | String type ; |
| | | // 结算类型为支付宝 填写支付宝账号 结算类型为银行卡填写银行卡号 |
| | | String account; |
| | | if (StringUtils.hasLength(alipayAccount)){ |
| | | type = accountType; |
| | | account = alipayAccount; |
| | | }else{ |
| | | type = accountType; |
| | | account = bankCard; |
| | | } |
| | | String res= |
| | | " \"service\":[" + |
| | | " \"app支付\"" + |
| | | " ]," + |
| | | " \"alipay_logon_id\":" + |
| | | " \""+zfbAccount+"\"" + |
| | | " ," + |
| | | " \"sites\":[" + |
| | | " {" + |
| | | " \"site_type\":\"02\"," + |
| | | " \"site_name\":\"玩湃生活\"," + |
| | | " \"tiny_app_id\":\"wx82f853a410b0c7c0\"" + |
| | | " }" + |
| | | " ]," + |
| | | " \"cert_name\":\""+businessName+"\","+ |
| | | " \"binding_alipay_logon_id\":\""+zfbAccount+"\","+ |
| | | " \"default_settle_rule\":{" + |
| | | " \"default_settle_type\":\""+type+"\"," + |
| | | " \"default_settle_target\":\""+account+"\"" + |
| | | " }" + |
| | | "}"; |
| | | if (accountType.equals("bankCard")){ |
| | | request.setBizContent(param |
| | | + biz_cards+res); |
| | | } |
| | | AntMerchantExpandIndirectZftCreateResponse response = null; |
| | | try { |
| | | response = alipayClient.execute(request); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(response.isSuccess()){ |
| | | System.out.println("上传认证单"); |
| | | System.out.println("调用成功"); |
| | | JSONObject json = JSONObject.parseObject(response.getBody()); |
| | | JSONObject json1 = json.getJSONObject("alipay_merchant_indirect_authorder_create_response"); |
| | | String order_no = json1.getString("order_no"); |
| | | String order_status = json1.getString("order_status"); |
| | | // // 申请单号 |
| | | // String orderNo = r.getString("order_no"); |
| | | /** |
| | | * 状态 审核中(AUDITING)、待联系人确认(CONTACT_CONFIRM), |
| | | * 待法人确认(LEGAL_CONFIRM)、审核通过(AUDIT_PASS)、 |
| | | * 审核失败(AUDIT_REJECT)、已冻结(AUDIT_FREEZE)、 |
| | | * 已撤回(CANCELED)、联系人处理中(CONTACT_PROCESSING) |
| | | */ |
| | | // String orderStatus = r.getString("order_status"); |
| | | JSONObject json1 = json.getJSONObject("ant_merchant_expand_indirect_zft_create_response"); |
| | | String order_no = json1.getString("order_id"); |
| | | System.err.println("订单号"+order_no); |
| | | operatorAuth.setOrderNo(order_no); |
| | | operatorAuth.setOrderStatus(order_status); |
| | | |
| | | |
| | | operatorAuth.setRefuseReason(""); |
| | | operatorAuthService.saveOrUpdate(operatorAuth); |
| | | // 通过运营商id找到用户id |
| | | TOperator byId = operatorService.getById(operatorId); |
| | | if (byId!=null){ |
| | | Integer userId = byId.getUserId(); |
| | | OperatorUser userId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId)); |
| | | if (userId1!=null){ |
| | | // 设置为审核中状态 |
| | | userId1.setAlipayAudit(1); |
| | | if (bodyType.equals("ENTERPRISE")){ |
| | | userId1.setAlipayType(2); |
| | | }else{ |
| | | userId1.setAlipayType(1); |
| | | } |
| | | // userId1.setWechatAudit(1); |
| | | operatorUserService.updateById(userId1); |
| | | operatorAuth.setQrCode(null); |
| | | operatorAuthService.saveOrUpdate(operatorAuth); |
| | | // 根据选择类型修改认证类型 |
| | | |
| | | } |
| | | Integer userId = operatorService.getById(operatorId).getUserId(); |
| | | OperatorUser user = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", userId)); |
| | | user.setAlipayAudit(1); |
| | | // 01是企业 |
| | | if (bodyType.equals("01")){ |
| | | user.setAlipayType(2); |
| | | }else{ |
| | | user.setAlipayType(1); |
| | | } |
| | | operatorUserService.saveOrUpdate(user); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | if (response.getCode().equals("40004")){ |
| | | String subMsg = response.getSubMsg(); |
| | | return ResultUtil.error(subMsg); |
| | | } |
| | | } |
| | | return SUCCESS_TIP; |
| | | return ResultUtil.success(); |
| | | } |
| | | public static Object uploadImg(String img){ |
| | | String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXnbOiY2VkKb5ubpcwKqzmqbKotpKGA79yn2aQeZiTWhqmLdCKjVp64naGpnOQEC7hDZluOO1crWHVhIEp7XGIEVawA7mb/dBbzo4wQQYVtLX6iEZViYk/mA7G59S/lvsLVi+jkVGlx2Co8JhvkTRtCEFgUnVA9o2jKy5BIEwrusNuDjrn5X+3ZvfZJN/iV0yzhzXynzioZt/DIcdODOVPUrem8T/5ifJ6ydSKIumgquBKyQnFOj+LRt5qMioBVzLnod0S/6kKMoNVN3/qx/PHRaeHbrF7I67IpGNROg0D9C4d9xXbGhSqQciXitLVnNzWuCov4Ie5nT5VCg9RjXyVAgMBAAECggEAf5rU81lgnnqbseoWCQ4B02kD2wc+Lti8qsYJ1pLgnTP6td5dZB8wBbjQNOem35sfOX7uoVv8OkIa00/gPd9/7BtbsGySLP3j/UDNX0N60Y30k1VajOdiwklCNpor7swtog75rVrDMxmo+sb0JQI684E9NMpxsSlRcAEJvvpl4W7LkhfJZyCUNXPAAh9SOkFOeaXATueEQ57V5vpeKM2JRJy//1P1LS2c/quLRIPqaTYgVAvxfdAYQvvP0vPijxHtxJlDxPa8xBCv7D46d+HeIA6X5ZkoTKLYbe2D36utP8rqGsXw1EyrYyuq6HdEAi/I4YXvWyLsXuQTSACSp+piAQKBgQD6am94xyQ4CRiMA/T1kvPPkXD+y/1Sbr3+T1S6X4naAGdkZS+TbPaWEddd2Huml6q+C2UcGhQpupBkbk88Nbs94jOulsfF6b24nOo1xH5z/BtS0kYuYaNLhebJtzrR9gupT1Uv0q+QybWZ3hQswOK0vwpkDk9DOysFynfMyXXlwQKBgQCa/z3oZ4iYZpTLNdRhMS0u593Jq8MDemimBJGEXPvDBByyE5Ohf22UqP5MjS1euosAQSva+/HmKeEigLgjoQTo29mA1nzPe0AKN3huWbqPIOdeIOA694Nj6ooOPS8iDMjKu61wPz/rZ57bv41LsPXr0y4UsU30JWg2rzgRnGgT1QKBgH30c0VIxUr6KEKk6t1qoP/SpAdFC5Ie6am0tWVZELl6Yob47kk1EYLCTpWBghB1UQhuKtlLtMCYenBJm8kpLZke4ef7J1jBDRCCvLt2rjQgpo2t/mbt7XjbTQ5A/3EEVTFAGhUH4A7vpkxSi8tG6cEIJm3VVMD4TdeH02JKIucBAoGAA0v+kxzwqN01uQTSGackIOVJsGp44XAPHcjnF3uq10EVIyyLbVn6iLj3f8VY+7TYFA9O0X+ea5jkcwlt4UQhiJp0i+sECJ3EhPMdGqvJ7hVzFmt4mYh+QPfSK+9dO0ouUzGexM5zm5w+osn2RW/kKzn4tvP2hoTtLIyZkrZS+GkCgYAQGKe84pXggSIPwztg0aBJUC9b4fXe3PR4DFTM85lBUKYJnQGRzf6NDCD83hwJoNdnyZkztyK72LDOn2NOzPfYcfUl6MQFPovXeMWaVidRfo4ZgyFA/C1egduebaIkXE+DpGhiy7alQ4k+LxUfy6oJBT9Sq8oq7EVBEkeff3p66g=="; |
| | | String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB"; |
| | | String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥 |
| | | String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 |
| | | String aliAppid = "2021004105665036";//支付宝appid |
| | | AlipayConfig alipayConfig = new AlipayConfig(); |
| | | alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); |
| | | alipayConfig.setAppId("2021003199648333"); |
| | | alipayConfig.setPrivateKey(privateKey); |
| | | alipayConfig.setAppId(aliAppid); |
| | | alipayConfig.setPrivateKey(appPrivateKey); |
| | | alipayConfig.setFormat("json"); |
| | | alipayConfig.setAlipayPublicKey(alipayPublicKey); |
| | | alipayConfig.setAlipayPublicKey(alipay_public_key); |
| | | alipayConfig.setCharset("UTF8"); |
| | | alipayConfig.setSignType("RSA2"); |
| | | AlipayClient alipayClient = null; |
| | |
| | | */ |
| | | @RequestMapping(value = "/proportion") |
| | | @ResponseBody |
| | | public Object auth(Integer operatorIdOne ,String alipayProportion,String alipayNum,String wechatProportion, |
| | | String wechatNum) { |
| | | Integer id1 = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", operatorIdOne)) |
| | | .getUserId(); |
| | | OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("userId", id1)); |
| | | public Object auth(Integer operatorIdOne ,String alipayProportion,String wechatProportion) { |
| | | OperatorUser id = operatorUserService.getOne(new QueryWrapper<OperatorUser>().eq("operatorId", operatorIdOne)); |
| | | id.setAlipayProportion(alipayProportion); |
| | | id.setWechatProportion(wechatProportion); |
| | | id.setAlipayNum(alipayNum); |
| | | id.setWechatNum(wechatNum); |
| | | operatorUserService.updateById(id); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | @ResponseBody |
| | | public Object onChange(Integer oneId) { |
| | | System.out.println("======"+oneId); |
| | | List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>().eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2)); |
| | | List<TOperatorCity> list = operatorCityService.list(new LambdaQueryWrapper<TOperatorCity>() |
| | | .eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2)); |
| | | if (list.size()!=0){ |
| | | return list; |
| | | } |
| | | |
| | | try { |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId)); |
| | | return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); |
| | |
| | | return ERROR; |
| | | } |
| | | } |
| | | |
| | | @RequestMapping(value = "/onChange3") |
| | | @ResponseBody |
| | | public Object onChange3(String oneId) { |
| | | TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId)); |
| | | return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); |
| | | } |
| | | @RequestMapping(value = "/oneChangeNext") |
| | | @ResponseBody |
| | | public Object oneChangeNext(Integer oneId) { |
| | |
| | | @Controller |
| | | @RequestMapping("/storeValueConfig") |
| | | public class TStoredValueConfigController { |
| | | |
| | | private String PREFIX = "/system/storeValueConfig/"; |
| | | @Autowired |
| | | private StoreValueConfigClient storeValueConfigClient; |
New file |
| | |
| | | package com.dsh.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | /** |
| | | * 支付宝认证 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @TableName("t_operator_auth_alipay") |
| | | public class OperatorAuthAlipay { |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | @TableField(value = "operatorId") |
| | | private Integer operatorId; |
| | | @TableField(value = "bodyType") |
| | | private String bodyType; |
| | | @TableField(value = "registerAddress") |
| | | private String registerAddress; |
| | | @TableField(value = "inDoorImages") |
| | | private String inDoorImages; |
| | | @TableField(value = "outDoorImages") |
| | | private String outDoorImages; |
| | | @TableField(value = "aliasName") |
| | | private String aliasName; |
| | | @TableField(value = "businessName") |
| | | private String businessName; |
| | | @TableField(value = "businessNumber") |
| | | private String businessNumber; |
| | | @TableField(value = "certImage") |
| | | private String certImage; |
| | | @TableField(value = "legalPerson") |
| | | private String legalPerson; |
| | | @TableField(value = "leagleNumber") |
| | | private String leagleNumber; |
| | | @TableField(value = "legalFront") |
| | | private String legalFront; |
| | | @TableField(value = "legalBack") |
| | | private String legalBack; |
| | | @TableField(value = "accountType") |
| | | private String accountType; |
| | | @TableField(value = "province") |
| | | private String province; |
| | | @TableField(value = "provinceCode") |
| | | private String provinceCode; |
| | | @TableField(value = "city") |
| | | private String city; |
| | | @TableField(value = "cityCode") |
| | | private String cityCode; |
| | | @TableField(value = "bankName") |
| | | private String bankName; |
| | | @TableField(value = "accountName") |
| | | private String accountName; |
| | | @TableField(value = "bankCard") |
| | | private String bankCard; |
| | | @TableField(value = "refuseReason") |
| | | private String refuseReason; |
| | | @TableField(value = "smid") |
| | | private String smid; |
| | | @TableField(value = "auditState") |
| | | private Integer auditState; |
| | | @TableField(value = "outBizNo") |
| | | private String outBizNo; |
| | | @TableField(value = "name") |
| | | private String name; |
| | | @TableField(value = "phone") |
| | | private String phone; |
| | | @TableField(value = "orderNo") |
| | | private String orderNo; |
| | | @TableField(value = "shopProvince") |
| | | private String shopProvince; |
| | | @TableField(value = "shopProvinceCode") |
| | | private String shopProvinceCode; |
| | | @TableField(value = "shopCity") |
| | | private String shopCity; |
| | | @TableField(value = "shopCityCode") |
| | | private String shopCityCode; |
| | | @TableField(value = "shopDistrictCode") |
| | | private String shopDistrictCode; |
| | | @TableField(value = "shopDistrict") |
| | | private String shopDistrict; |
| | | @TableField(value = "certName") |
| | | private String certName; |
| | | @TableField(value = "alipayAccount") |
| | | private String alipayAccount; |
| | | @TableField(value = "iqImage") |
| | | private String iqImage; |
| | | @TableField(value = "useType") |
| | | private String useType; |
| | | @TableField(value = "cardType") |
| | | private String cardType; |
| | | @TableField(value = "bankNameTwo") |
| | | private String bankNameTwo; |
| | | @TableField(value = "zfbAccount") |
| | | private String zfbAccount; |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.guns.modular.system.model.OperatorAuth; |
| | | import com.dsh.guns.modular.system.model.OperatorAuthAlipay; |
| | | import com.dsh.guns.modular.system.model.TSite; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2023/8/1 17:49 |
| | | */ |
| | | public interface IOperatorAuthService extends IService<OperatorAuth> { |
| | | public interface IOperatorAuthService extends IService<OperatorAuthAlipay> { |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.service; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.guns.modular.system.model.Bank; |
| | | |
| | | /** |
| | | * <p> |
| | | * 银行 服务类 |
| | | * </p> |
| | | * |
| | | * @author administrator |
| | | * @since 2023-10-09 |
| | | */ |
| | | public interface TBankService extends IService<Bank> { |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.guns.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.course.mapper.BankMapper; |
| | | import com.dsh.guns.modular.system.model.Bank; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | @Service |
| | | public class BankServiceImpl extends ServiceImpl<BankMapper, Bank> implements IService<Bank> { |
| | | |
| | | } |
| | |
| | | import com.dsh.course.mapper.TOperatorAuthMapper; |
| | | import com.dsh.course.mapper.TTurnMapper; |
| | | import com.dsh.guns.modular.system.model.OperatorAuth; |
| | | import com.dsh.guns.modular.system.model.OperatorAuthAlipay; |
| | | import com.dsh.guns.modular.system.model.TTurn; |
| | | import com.dsh.guns.modular.system.service.IOperatorAuthService; |
| | | import com.dsh.guns.modular.system.service.TTurnService; |
| | |
| | | * @since 2023-09-19 |
| | | */ |
| | | @Service |
| | | public class TOperatorAuthServiceImpl extends ServiceImpl<TOperatorAuthMapper, OperatorAuth> implements IOperatorAuthService { |
| | | public class TOperatorAuthServiceImpl extends ServiceImpl<TOperatorAuthMapper, OperatorAuthAlipay> implements IOperatorAuthService { |
| | | |
| | | } |
| | |
| | | @Autowired |
| | | private WeChatUtil weChatUtil; |
| | | |
| | | // @Override |
| | | // public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) { |
| | | // |
| | | // OperatorAuthAlipay shopAuthentication = new OperatorAuth(); |
| | | // |
| | | // if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){ |
| | | // mgtShopAuthDto.setBlBusinessDeanline("长期"); |
| | | // } |
| | | // if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){ |
| | | // mgtShopAuthDto.setLpIcEndDate("长期"); |
| | | // } |
| | | // BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication); |
| | | // TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId()); |
| | | // String applyNumber = UUIDUtil.getNativeUUID().replace("-",""); |
| | | // shopAuthentication.setOutBizNo(applyNumber); |
| | | // ApplymentsResult applymentsResult; |
| | | // try { |
| | | // applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator); |
| | | // } catch (Exception e) { |
| | | // throw new ServiceException(e.getMessage()); |
| | | // } |
| | | // shopAuthentication.setOrderStatus("AUDITING"); |
| | | // shopAuthentication.setOrderNo(applymentsResult.getApplymentId()); |
| | | // operatorAuthService.saveOrUpdate(shopAuthentication); |
| | | // } |
| | | |
| | | @Override |
| | | public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) { |
| | | |
| | | OperatorAuth shopAuthentication = new OperatorAuth(); |
| | | |
| | | if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){ |
| | | mgtShopAuthDto.setBlBusinessDeanline("长期"); |
| | | } |
| | | if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){ |
| | | mgtShopAuthDto.setLpIcEndDate("长期"); |
| | | } |
| | | BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication); |
| | | TOperator operator = operatorMapper.selectById(shopAuthentication.getOperatorId()); |
| | | String applyNumber = UUIDUtil.getNativeUUID().replace("-",""); |
| | | shopAuthentication.setOutBizNo(applyNumber); |
| | | ApplymentsResult applymentsResult; |
| | | try { |
| | | applymentsResult = weChatUtil.ecommerceApply(shopAuthentication,applyNumber,operator); |
| | | } catch (Exception e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | shopAuthentication.setOrderStatus("AUDITING"); |
| | | shopAuthentication.setOrderNo(applymentsResult.getApplymentId()); |
| | | operatorAuthService.saveOrUpdate(shopAuthentication); |
| | | } |
| | | |
| | | @Override |
New file |
| | |
| | | package com.dsh.guns.modular.system.util; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alipay.api.AlipayApiException; |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.CertAlipayRequest; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.AlipayTradeAppPayModel; |
| | | import com.alipay.api.msg.AlipayMsgClient; |
| | | import com.alipay.api.msg.MsgHandler; |
| | | import com.alipay.api.request.*; |
| | | import com.alipay.api.response.*; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.guns.modular.system.model.OperatorAuthAlipay; |
| | | import com.dsh.guns.modular.system.model.OperatorUser; |
| | | import com.dsh.guns.modular.system.service.IOperatorAuthService; |
| | | import com.dsh.guns.modular.system.service.IOperatorUserService; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.dom4j.Document; |
| | | import org.dom4j.DocumentException; |
| | | import org.dom4j.Element; |
| | | import org.dom4j.io.SAXReader; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.*; |
| | | import java.util.*; |
| | | /** |
| | | * 第三方支付工具类 |
| | | */ |
| | | @Component |
| | | public class PayMoneyUtil { |
| | | private String aliAppid = "2021004105665036";//支付宝appid |
| | | |
| | | private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥 |
| | | |
| | | private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥 |
| | | |
| | | private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 |
| | | |
| | | private String appid = "";//微信appid |
| | | |
| | | private String appletsAppid = "";//微信小程序appid |
| | | |
| | | private String mchId = "";//微信商户号 |
| | | |
| | | private String key = "";//微信商户号 |
| | | |
| | | private String callbackPath = "http://221.182.45.100:56666/account";//支付回调网关地址 |
| | | |
| | | private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径 |
| | | |
| | | private String alipay_cert_path = "C:/cert/alipay/user/alipay_cert_path.crt";//支付宝公钥证书文件路径 |
| | | |
| | | private String alipay_root_cert_path = "C:/cert/alipay/user/alipay_root_cert_path.crt";//支付宝CA根证书文件路径 |
| | | |
| | | private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书 |
| | | String signType = "RSA2" ; |
| | | String serverHost = "openchannel.alipay.com" ; |
| | | |
| | | @Autowired |
| | | private IOperatorAuthService operatorAuthService; |
| | | @Autowired |
| | | private IOperatorUserService operatorUserService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 处理直付通审核通过和拒绝消息 |
| | | */ |
| | | public void getMessage() { |
| | | System.err.println("进入"); |
| | | final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid); |
| | | try { |
| | | alipayMsgClient.setConnector(serverHost); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key); |
| | | try { |
| | | alipayMsgClient.connect(); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | alipayMsgClient.setMessageHandler( new MsgHandler() { |
| | | /** |
| | | * 客户端接收到消息后回调此方法 |
| | | * @param msgApi 接收到的消息的消息api名 |
| | | * @param msgId 接收到的消息的消息id |
| | | * @param bizContent 接收到的消息的内容,json格式 |
| | | */ |
| | | public void onMessage (String msgApi, String msgId, String bizContent) { |
| | | // 直付通进件审核通过 |
| | | if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){ |
| | | // 修改运营商状态 将返回的商户号填入运营商 |
| | | System.out.println( "receive message. msgApi:" + msgApi + " msgId:" + msgId + " bizContent:" + bizContent); |
| | | JSONObject json = JSONObject.parseObject(bizContent); |
| | | // 商户号 |
| | | String smid = json.getString("smid"); |
| | | // 审核备注信息 |
| | | String memo = json.getString("memo"); |
| | | // 订单id |
| | | String orderId = json.getString("order_id"); |
| | | // 通过订单id查询 |
| | | OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() |
| | | .eq("orderNo",orderId)); |
| | | auth.setSmid(smid); |
| | | auth.setAuditState(2); |
| | | auth.setRefuseReason(memo); |
| | | operatorAuthService.updateById(auth); |
| | | Integer operatorId = auth.getOperatorId(); |
| | | OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | .eq("operatorId", operatorId)); |
| | | operatorId1.setAlipayNum(smid); |
| | | operatorId1.setAlipayAudit(2); |
| | | operatorUserService.updateById(operatorId1); |
| | | } |
| | | // 直付通进件审核失败 |
| | | if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){ |
| | | JSONObject json = JSONObject.parseObject(bizContent); |
| | | // 商户号 |
| | | String orderId = json.getString("order_id"); |
| | | // 官方拒绝理由 |
| | | String reason = json.getString("reason"); |
| | | // 通过订单id查询 |
| | | OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() |
| | | .eq("orderNo",orderId)); |
| | | auth.setAuditState(3); |
| | | auth.setRefuseReason(reason); |
| | | operatorAuthService.updateById(auth); |
| | | Integer operatorId = auth.getOperatorId(); |
| | | OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() |
| | | .eq("operatorId", operatorId)); |
| | | operatorId1.setAlipayAudit(3); |
| | | operatorUserService.updateById(operatorId1); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | | * 支付宝支付 |
| | | */ |
| | | public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | // //构造client |
| | | // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); |
| | | // //设置网关地址 |
| | | // certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); |
| | | // //设置应用Id |
| | | // certAlipayRequest.setAppId(aliAppid); |
| | | // //设置应用私钥 |
| | | // certAlipayRequest.setPrivateKey(appPrivateKey); |
| | | // //设置请求格式,固定值json |
| | | // certAlipayRequest.setFormat("json"); |
| | | // //设置字符集 |
| | | // certAlipayRequest.setCharset("UTF-8"); |
| | | // //设置签名类型 |
| | | // certAlipayRequest.setSignType("RSA2"); |
| | | // //设置应用公钥证书路径 |
| | | // certAlipayRequest.setCertPath(app_cert_path); |
| | | // //设置支付宝公钥证书路径 |
| | | // certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path); |
| | | // //设置支付宝根证书路径 |
| | | // certAlipayRequest.setRootCertPath(alipay_root_cert_path); |
| | | // //构造client |
| | | // AlipayClient alipayClient = null; |
| | | // try { |
| | | // alipayClient = new DefaultAlipayClient(certAlipayRequest); |
| | | // } catch (AlipayApiException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay |
| | | // AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest (); |
| | | // //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 |
| | | // AlipayTradeAppPayModel model = new AlipayTradeAppPayModel (); |
| | | // model.setBody(body); |
| | | // model.setSubject (subject); |
| | | // model.setOutTradeNo (outTradeNo); |
| | | // model.setTimeoutExpress ("30m" ); |
| | | // model.setTotalAmount (amount); |
| | | // model.setProductCode ( "QUICK_MSECURITY_PAY" ); |
| | | // model.setPassbackParams(passbackParams);//自定义参数 |
| | | // request.setBizModel ( model ); |
| | | // request.setNotifyUrl (callbackPath + notifyUrl); |
| | | // try { |
| | | // //这里和普通的接口调用不同,使用的是sdkExecute |
| | | // AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); |
| | | // Map<String, String> map = new HashMap<>(); |
| | | // map.put("orderString", response.getBody()); |
| | | // System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 |
| | | // return ResultUtil.success(map); |
| | | // } catch (AlipayApiException e ) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | |
| | | |
| | | //实例化客户端 |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); |
| | | //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay |
| | | AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); |
| | | //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 |
| | | AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); |
| | | model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 |
| | | model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。 |
| | | model.setOutTradeNo(outTradeNo);//商户网站唯一订单号 |
| | | model.setTimeoutExpress("30m"); |
| | | model.setTotalAmount(amount);//付款金额 |
| | | model.setProductCode("QUICK_MSECURITY_PAY"); |
| | | model.setPassbackParams(passbackParams);//自定义参数 |
| | | |
| | | |
| | | //分账 |
| | | // Integer coursePackagePayments = coursePackageClient.queryByCode(outTradeNo); |
| | | // Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo); |
| | | // Integer siteBookings = siteClient.queryByCode(outTradeNo); |
| | | // List<Integer> stores = new ArrayList<>(); |
| | | // stores.add(coursePackagePayments); |
| | | // stores.add(paymentCompetitions); |
| | | // stores.add(siteBookings); |
| | | // |
| | | // OperatorUser operatorUser = siteClient.queryOperator(stores); |
| | | // |
| | | // String alipayProportion = operatorUser.getAlipayProportion(); |
| | | // String alipayNum = operatorUser.getAlipayNum(); |
| | | // |
| | | // ExtendParams extendParams = new ExtendParams(); |
| | | //// extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID"); |
| | | // model.setExtendParams(extendParams); |
| | | // |
| | | // RoyaltyInfo royaltyInfo = new RoyaltyInfo(); |
| | | //// royaltyInfo.setRoyaltyType("transfer"); |
| | | // |
| | | // |
| | | // RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos(); |
| | | // royaltyDetailInfo1.setTransOutType("userId"); |
| | | // royaltyDetailInfo1.setTransOut(aliAppid); |
| | | // royaltyDetailInfo1.setTransInType("loginName"); |
| | | // royaltyDetailInfo1.setTransIn("18398968484"); |
| | | // |
| | | // royaltyDetailInfo1.setDesc("分账描述1"); |
| | | // royaltyDetailInfo1.setAmountPercentage(alipayProportion); |
| | | // List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>(); |
| | | // |
| | | // |
| | | // |
| | | // royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos); |
| | | // model.setRoyaltyInfo(royaltyInfo); |
| | | // System.err.println("=================="+royaltyInfo); |
| | | // |
| | | request.setBizModel(model); |
| | | request.setNotifyUrl(callbackPath + notifyUrl); |
| | | try { |
| | | //这里和普通的接口调用不同,使用的是sdkExecute |
| | | AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("orderString", response.getBody()); |
| | | map.put("returnId", passbackParams); |
| | | System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 |
| | | return ResultUtil.success(map); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 支付宝查询订单支付状态 |
| | | * |
| | | * @param out_trade_no |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception { |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); |
| | | AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); |
| | | request.setBizContent("{" + |
| | | " \"out_trade_no\":\"" + out_trade_no + "\"" + |
| | | "}"); |
| | | AlipayTradeQueryResponse response = alipayClient.execute(request); |
| | | return response; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取请求内容 |
| | | * |
| | | * @param request |
| | | * @return |
| | | * @throws IOException |
| | | */ |
| | | private String getParam(HttpServletRequest request) throws IOException { |
| | | // 读取参数 |
| | | InputStream inputStream; |
| | | StringBuilder sb = new StringBuilder(); |
| | | inputStream = request.getInputStream(); |
| | | String s; |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); |
| | | while ((s = in.readLine()) != null) { |
| | | sb.append(s); |
| | | } |
| | | in.close(); |
| | | inputStream.close(); |
| | | return sb.toString(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // public static void main(String[] ages){ |
| | | // PayMoneyUtil payMoneyUtil = new PayMoneyUtil(); |
| | | // ResultUtil ce = payMoneyUtil.alipay("测试", "测试", "", "121456457", "10", "http://123.com"); |
| | | // System.err.println(ce); |
| | | // ResultUtil resultUtil = null; |
| | | // try { |
| | | // resultUtil = payMoneyUtil.queryALIOrder("121456457"); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // System.err.println(resultUtil); |
| | | // } |
| | | |
| | | |
| | | /** |
| | | * xml转map |
| | | * |
| | | * @param xml |
| | | * @param charset |
| | | * @return |
| | | * @throws UnsupportedEncodingException |
| | | * @throws DocumentException |
| | | */ |
| | | public static Map<String, String> xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException { |
| | | |
| | | Map<String, String> respMap = new HashMap<String, String>(); |
| | | |
| | | SAXReader reader = new SAXReader(); |
| | | Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset))); |
| | | Element root = doc.getRootElement(); |
| | | xmlToMap(root, respMap); |
| | | return respMap; |
| | | } |
| | | |
| | | public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap) { |
| | | if (tmpElement.isTextOnly()) { |
| | | respMap.put(tmpElement.getName(), tmpElement.getText()); |
| | | return respMap; |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | Iterator<Element> eItor = tmpElement.elementIterator(); |
| | | while (eItor.hasNext()) { |
| | | Element element = eItor.next(); |
| | | xmlToMap(element, respMap); |
| | | } |
| | | return respMap; |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.dsh.course.mapper.BankMapper"> |
| | | |
| | | </mapper> |
| | |
| | | </update> |
| | | |
| | | <select id="listAll" resultType="java.util.Map"> |
| | | select t1.id as id, t1.name as name,t1.type as `type`,t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone from t_operator t1 |
| | | select t1.id as id, t1.name as name,t1.type as `type`,t1.state as state,t1.status as status,t2.name as userName,t2.phone as phone |
| | | from t_operator t1 |
| | | left join sys_user t2 on t1.userId = t2.id |
| | | where 1=1 |
| | | <if test="userName != null and userName != ''"> |
| | |
| | | <input hidden id="id" value="${id}"> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*支付宝商户号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="alipayNum" value="${alipayNum}" placeholder="请输入" type="text"> |
| | | </div> |
| | | |
| | | <label class="col-sm-3 control-label">*支付宝分账比例(%):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="alipayProportion" value="${alipayProportion}" placeholder="请输入" type="number"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*微信商户号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="wechatNum" value="${wechatNum}" placeholder="请输入" type="text"> |
| | | </div> |
| | | |
| | | <label class="col-sm-3 control-label">*微信分账比例(%):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="wechatProportion" value="${wechatProportion}" placeholder="请输入" type="number"> |
| | |
| | | <span>管理员姓名:</span><span>${user.name}</span> |
| | | <span>管理员电话:</span><span>${user.phone}</span> |
| | | </div> |
| | | |
| | | <h2>商户号信息</h2> |
| | | </br> |
| | | </br> |
| | |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 主体类型:<input checked type="radio" name="bodyType" value="ENTERPRISE" onclick="updateHalf(2)">企业 |
| | | <input type="radio" name="bodyType" value="IND_BIZ" onclick="updateHalf(1)">个人 |
| | | |
| | | 商户类型:<input checked type="radio" name="bodyType" value="01" onclick="updateHalf(2)">企业 |
| | | <input type="radio" name="bodyType" value="07" onclick="updateHalf(1)">个人 |
| | | </label> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*商户名称(一般与证件名称相同):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="" id="businessName" placeholder="请输入商户名称" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*商户别名(支付宝账单显示的商户名称):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="" id="aliasName" placeholder="请输入商户别名" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*联系人姓名:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.name}" id="name" placeholder="请输入" type="text"> |
| | | <input style="width: 300px" class="form-control" value="" id="name" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*联系人电话:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.phone}" id="phone" placeholder="请输入" type="text"> |
| | | <input style="width: 300px" class="form-control" value="" id="phone" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*联系人身份证号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.number}" id="number" placeholder="请输入" type="text"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法人姓名:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="legalPerson" value="" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法定代表人姓名:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="lrName" value="${item.legalPerson}" placeholder="请输入" type="text"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*法人身份证号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="" id="leagleNumber" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*营业执照商户名称:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.businessName}" id="merchantName" placeholder="请输入" type="text"> |
| | | <div class="form-group"> |
| | | <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*营业证照生效时间:</label> |
| | | <div class="col-sm-9" style="display: flex"> |
| | | <input style="width: 300px" class="form-control" id="tradeTime" value="${item.businessTerm}" name="tradeTime" type="date"> |
| | | <div class="form-group"> |
| | | <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="" /> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*营业证照过期时间:</label> |
| | | <div class="col-sm-9" style="display: flex"> |
| | | <input style="width: 300px" class="form-control" id="endTime" value="${item.businessEnd}" name="endTime" type="date"> |
| | | <input type="checkbox" style="margin-left: 10px" id="tradeE" value="0" onchange="TSite.tradeYse(this)">长期</input> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*营业执照注册号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="licenseRegistration" value="${item.businessNumber}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*注册地址:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="registerAddress" value="${item.registerAddress}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="license" name="*营业执照" avatarImg="${item.businessPicture}" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法人姓名:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="legalPerson" value="${item.legalPerson}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法人手机号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="legalPhone" value="${item.legalPhone}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*法人身份证开始时间:</label> |
| | | <div class="col-sm-9" style="display: flex"> |
| | | <input style="width: 300px" class="form-control" id="IDCardTime" value="${item.legalTerm}" name="IDCardTime" type="date"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*法人身份证结束时间:</label> |
| | | <div class="col-sm-9" style="display: flex"> |
| | | <input style="width: 300px" class="form-control" value="${item.legalEnd}" id="IDCardEnd" name="IDCardTime" type="date"> |
| | | <input type="checkbox" style="margin-left: 10px" id="IDCardE" value="0" onchange="TSite.tradeYse(this)">长期</input> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="${item.legalFront}" /> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*法人身份证号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.leagleNumber}" id="lIDNumber" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法人邮箱:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.legalEmail}" id="lEmail" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法人身份证地址:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.legalAddress}" id="lIDAddress" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="${item.legalBack}" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row" id="benefit"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*签约支付宝账号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="zfbAccount" value="${item.zfbAccount}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*营业执照编号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="businessNumber" value="" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="license" name="*营业执照" avatarImg="${item.certImage}" /> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 法人是否为受益人:<input type="radio" checked name="type" value="true">是 |
| | | <input checked type="radio" name="type" value="false">否 |
| | | 结算账户类型:<input checked type="radio" name="accountType" value="bankCard" onclick="updateHalf(3)">银行卡 |
| | | <input type="radio" name="accountType" value="alipayAccount" onclick="updateHalf(4)">支付宝账号 |
| | | </label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*受益人姓名:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.beneficiary}" id="bName" name="bName" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*受益人身份证地址:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="bAddress" value="${item.beneficiaryAddress}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*受益人身份证有效期:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.beneficiaryTerm}" id="bTime" name="bTime" type="date"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*受益人身份证结束时间:</label> |
| | | <div class="col-sm-9" style="display: flex"> |
| | | <input style="width: 300px" class="form-control" id="bEnd" value="${item.beneficiaryEnd}" name="IDCardTime" type="date"> |
| | | <input type="checkbox" style="margin-left: 10px" id="bIDCardT" value="0" onchange="TSite.tradeYse(this)">长期</input> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="bImg1" avatarImg="${item.beneficiaryFront}" name="*受益人身份证正面照" /> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-6" > |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*受益人身份证号:</label> |
| | | <div class="form-group" hidden id="aliNumber"> |
| | | <label class="col-sm-3 control-label">*支付宝账号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bIDNumber" value="${item.beneficiaryNumber}" placeholder="请输入" type="text"> |
| | | <input style="width: 300px" class="form-control" id="alipayAccount" value="" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="bImg2" avatarImg="${item.beneficiaryBack}" name="*受益人身份证背面照" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | @if(reasons != null){ |
| | | <div class="row" id="reasons"> |
| | | <div class="col-lg-6" > |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*拒绝理由:</label> |
| | | <div class="col-sm-9"> |
| | | <h3 style="color: red">${item.refuseReason}</h3> |
| | | <div id="banks"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*银行卡号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bankCard" value="" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 账号使用类型:<input checked type="radio" name="useType" value="01" >对公 |
| | | <input type="radio" name="useType" value="02" >对私 |
| | | </label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 银行卡类型:<input checked type="radio" name="cardType" value="DC" onclick="updateHalf(2)">借记卡 |
| | | <input type="radio" name="cardType" value="CC" onclick="updateHalf(1)">信用卡 |
| | | </label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*开户银行:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="bankName" value="" placeholder="请输入(例:中国农业银行)" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*开户支行名称:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bankName1" value="" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*开户名称:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bankUserName" value="" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="provinceCode"> |
| | | <label class="col-sm-3 control-label">*开户行所在省:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange2(this)"> |
| | | <option value="">请选择省</option> |
| | | @for(obj in list){ |
| | | <option style="width: 300px" value="${obj.code}">${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="cityCode"> |
| | | <label class="col-sm-3 control-label">*开户行所在市:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="cCode" name="cCode" > |
| | | <option value="">请选择市</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | @} |
| | | @if(code != null){ |
| | | @if(type==1){ |
| | | <label class="col-sm-3 control-label">请使用手机支付宝扫描下方二维码完成进一步认证</label> |
| | | <img src="${code}"> |
| | | @} |
| | | @} |
| | | <div class="form-group"> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5" > |
| | |
| | | <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> |
| | | <script> |
| | | function updateHalf(e) { |
| | | if(e==1){ |
| | | console.log("隐藏") |
| | | $("#benefit").hide() |
| | | }else { |
| | | if(e==3){ |
| | | console.log("展示") |
| | | $("#benefit").show() |
| | | $("#banks").show() |
| | | $("#aliNumber").hide() |
| | | }else if (e==4){ |
| | | // 结算到支付宝账号 |
| | | console.log("隐藏") |
| | | $("#banks").hide() |
| | | $("#aliNumber").show() |
| | | } |
| | | } |
| | | window.onload = function(){ |
| | | if ("${item.orderStatus}"=="AUDIT_PASS"){ |
| | | $("#reasons").hide() |
| | | }else{ |
| | | $("#reasons").show() |
| | | } |
| | | if ("${item.orderStatus}"==null){ |
| | | $("#reasons").hide() |
| | | } |
| | | console.log("${bodyType}") |
| | | var OBJradio=document.getElementsByName("bodyType") |
| | | var type=document.getElementsByName("type") |
| | | console.log("回显") |
| | | if ("${bodyType}" != 0){ |
| | | console.log("进入") |
| | | if("${bodyType}"=="ENTERPRISE"){ |
| | | OBJradio[0].checked=true |
| | | $("#benefit").show() |
| | | // 受益人身份证有效期 |
| | | var IDCardE = document.getElementById("IDCardE"); |
| | | var IDCardEnd = document.getElementById('IDCardEnd'); |
| | | if ("${item.legalEnd}" == "forever"){ |
| | | IDCardE.checked=true; |
| | | IDCardEnd.disabled = true; |
| | | IDCardEnd.value=""; |
| | | } |
| | | if ("${item.isBeneficiary}" == "true"){ |
| | | type[0].checked=true |
| | | }else{ |
| | | type[1].checked=true |
| | | } |
| | | }else { |
| | | OBJradio[1].checked=true |
| | | $("#benefit").hide() |
| | | } |
| | | } |
| | | |
| | | // 营业执照有效结束期 |
| | | var bunessTime = document.getElementById("tradeE"); |
| | | var endTime = document.getElementById('endTime'); |
| | | if ("${item.businessEnd}" == "forever"){ |
| | | bunessTime.checked=true; |
| | | endTime.disabled = true; |
| | | endTime.value=""; |
| | | } |
| | | // 法人身份证有效期 |
| | | var IDCardE = document.getElementById("IDCardE"); |
| | | var IDCardEnd = document.getElementById('IDCardEnd'); |
| | | if ("${item.legalEnd}" == "forever"){ |
| | | IDCardE.checked=true; |
| | | IDCardEnd.disabled = true; |
| | | IDCardEnd.value=""; |
| | | } |
| | | // 受益人身份证有效期 |
| | | var bEnd = document.getElementById("bEnd"); |
| | | var bIDCardT = document.getElementById('bIDCardT'); |
| | | if ("${item.beneficiaryEnd}" == "forever"){ |
| | | bIDCardT.checked=true; |
| | | bEnd.disabled = true; |
| | | bEnd.value=""; |
| | | } |
| | | |
| | | |
| | | } |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <style> |
| | | .avatar-uploader .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | height: 100px; |
| | | width: 100px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409EFF; |
| | | } |
| | | .avatar-uploader-icon { |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: 100px; |
| | | height: 100px; |
| | | line-height: 100px; |
| | | margin-top: 32px; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: 100px; |
| | | height: 100px; |
| | | display: block; |
| | | } |
| | | |
| | | .col-sm-12 { |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .col-sm-12 select { |
| | | height: 33px; |
| | | } |
| | | #app1{ |
| | | margin-left: 255px; |
| | | } |
| | | |
| | | |
| | | </style> |
| | | <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <h2>商户信息</h2> |
| | | <div style="display: flex"> |
| | | <span>运营商名称:</span><span>${data.name}</span> |
| | | <span>管理员姓名:</span><span>${user.name}</span> |
| | | <span>管理员电话:</span><span>${user.phone}</span> |
| | | </div> |
| | | <h2>商户号信息</h2> |
| | | </br> |
| | | </br> |
| | | <input hidden id="id" value="${id}"> |
| | | <div class="row"> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 商户类型:<input checked type="radio" name="bodyType" value="01" onclick="updateHalf(2)">企业 |
| | | <input type="radio" name="bodyType" value="07" onclick="updateHalf(1)">个人 |
| | | </label> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*商户名称(一般与证件名称相同):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.businessName}" id="businessName" placeholder="请输入商户名称" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*商户别名(支付宝账单显示的商户名称):</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.aliasName}" id="aliasName" placeholder="请输入商户别名" type="text"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*联系人姓名:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.name}" id="name" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*联系人电话:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.phone}" id="phone" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*法人姓名:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="legalPerson" value="${item.legalPerson}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*法人身份证号:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" value="${item.leagleNumber}" id="leagleNumber" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="IDCardImg" name="*法人身份证正面照" avatarImg="${item.legalFront}" /> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="IDCardImg1" name="*法人身份证背面照" avatarImg="${item.legalBack}" /> |
| | | </div> |
| | | |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*签约支付宝账号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="zfbAccount" value="${item.zfbAccount}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="col-lg-6" style=""> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*营业执照编号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="businessNumber" value="${item.businessNumber}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <#avatar id="license" name="*营业执照" avatarImg="${item.certImage}" /> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 结算账户类型:<input checked type="radio" name="accountType" value="bankCard" onclick="updateHalf(3)">银行卡 |
| | | <input type="radio" name="accountType" value="alipayAccount" onclick="updateHalf(4)">支付宝账号 |
| | | </label> |
| | | </div> |
| | | <div class="form-group" hidden id="aliNumber"> |
| | | <label class="col-sm-3 control-label">*支付宝账号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="alipayAccount" value="${item.alipayAccount}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div id="banks"> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*银行卡号:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bankCard" value="${item.bankCard}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 账号使用类型:<input checked type="radio" name="useType" value="01" >对公 |
| | | <input type="radio" name="useType" value="02" >对私 |
| | | </label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-4 control-label" > |
| | | 银行卡类型:<input checked type="radio" name="cardType" value="DC" onclick="updateHalf(2)">借记卡 |
| | | <input type="radio" name="cardType" value="CC" onclick="updateHalf(1)">信用卡 |
| | | </label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*开户银行:</label> |
| | | <div class="col-sm-9"> |
| | | <input style="width: 300px" class="form-control" id="bankName" value="${item.bankName}" placeholder="请输入(例:中国农业银行)" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*开户支行名称:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bankName1" value="${item.bankNameTwo}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" > |
| | | <label class="col-sm-3 control-label">*开户名称:</label> |
| | | <div class="col-sm-9" > |
| | | <input style="width: 300px" class="form-control" id="bankUserName" value="${item.accountName}" placeholder="请输入" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="provinceCode"> |
| | | <label class="col-sm-3 control-label">*开户行所在省:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TSite.oneChange2(this)"> |
| | | @for(obj in list4){ |
| | | <option style="width: 300px" value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="form-group" id="cityCode"> |
| | | <label class="col-sm-3 control-label">*开户行所在市:</label> |
| | | <div class="col-sm-9"> |
| | | <select style="width: 300px" class="form-control" id="cCode" name="cCode" > |
| | | @for(obj in list5){ |
| | | <option style="width: 300px" value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | @if(reasons != null && reasons!=""){ |
| | | <div class="row" id="reasons"> |
| | | <div class="col-lg-6" > |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*拒绝理由:</label> |
| | | <div class="col-sm-9"> |
| | | <h3 style="color: red">${item.refuseReason}</h3> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | @} |
| | | <div class="form-group"> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5" > |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <script src="${ctxPath}/modular/system/operatorUser/operatorUser.js"></script> |
| | | <script src="${ctxPath}/js/vue/vue.js"></script> |
| | | <script src="${ctxPath}/js/elementui/index.js"></script> |
| | | <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> |
| | | <script> |
| | | function updateHalf(e) { |
| | | if(e==3){ |
| | | console.log("展示") |
| | | $("#banks").show() |
| | | $("#aliNumber").hide() |
| | | }else if (e==4){ |
| | | // 结算到支付宝账号 |
| | | console.log("隐藏") |
| | | $("#banks").hide() |
| | | $("#aliNumber").show() |
| | | } |
| | | } |
| | | window.onload = function(){ |
| | | console.log("${accountType}") |
| | | console.log("${useType}") |
| | | console.log("${cardType}") |
| | | var accountType = "${accountType}"; |
| | | var useType = "${useType}"; |
| | | var cardType = "${cardType}"; |
| | | var OBJradio=document.getElementsByName("bodyType") |
| | | var type=document.getElementsByName("type") |
| | | if("${bodyType}"=="01"){ |
| | | OBJradio[0].checked=true |
| | | }else { |
| | | OBJradio[1].checked=true |
| | | } |
| | | // 如果结算账户选择银行卡 |
| | | var OBJradio1=document.getElementsByName("accountType") |
| | | if (accountType!="alipayAccount"){ |
| | | $("#aliNumber").hide(); |
| | | OBJradio1[0].checked=true |
| | | $("#banks").show(); |
| | | }else{ |
| | | OBJradio1[1].checked=true |
| | | $("#aliNumber").show(); |
| | | $("#banks").hide(); |
| | | } |
| | | // 账户使用类型 |
| | | var OBJradio2=document.getElementsByName("useType") |
| | | if (useType=="01"){ |
| | | OBJradio2[0].checked=true |
| | | }else{ |
| | | OBJradio2[1].checked=true |
| | | } |
| | | // 银行卡类型 |
| | | var OBJradio3=document.getElementsByName("cardType") |
| | | if (cardType=="DC"){ |
| | | OBJradio3[0].checked=true |
| | | }else{ |
| | | OBJradio3[1].checked=true |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | @} |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="name" name="管理员姓名:" /> |
| | | </div> |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-sm-3"> |
| | | <div class="input-group"> |
| | | <div class="input-group-btn open"> |
| | |
| | | <option value="">全部</option> |
| | | <option value="0">未认证</option> |
| | | <option value="1">审核中</option> |
| | | <option value="2">待联系人确认</option> |
| | | <option value="3">待法人确认</option> |
| | | <option value="4">审核通过</option> |
| | | <option value="5">审核失败</option> |
| | | <option value="6">已冻结</option> |
| | | <option value="7">已撤回</option> |
| | | <option value="8">联系人处理中</option> |
| | | <option value="2">审核通过</option> |
| | | <option value="3">审核失败</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | } |
| | | }; |
| | | /** |
| | | * 商户号认证页面回显 |
| | | */ |
| | | TSite.auth1 = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: "商户认证详情", |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/operator/proportionAuth1/' + TSite.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | /** |
| | | * 分账比例 |
| | | */ |
| | | TSite.proportion = function () { |
| | |
| | | {title: '分账比例', field: 'proportion', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '审核状态', field: 'audit', visible: true, align: 'center', valign: 'middle', |
| | | formatter:function (data) { |
| | | return {0:"未认证",1:"审核中",2:"待联系人确认",3:"待法人确认",4:"审核通过",5:"审核失败",6:"已冻结",7:"已撤回",8:"联系人处理中"}[data] |
| | | return {0:"未认证",1:"待审核",2:"审核通过",3:"审核失败"}[data] |
| | | } |
| | | }, |
| | | {title: '操作', field: 'audit', visible: true, align: 'center', valign: 'middle', |
| | |
| | | var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth('+row.operatorId+')" >去认证</button>' |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>'] |
| | | }else { |
| | | var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth(' + row.operatorId + ')" >详情</button>' |
| | | var str = '<button class="btn btn-outline btn-primary" onclick="TSite.auth1(' + row.operatorId + ')" >详情</button>' |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="" onfocus="TUser.tooltip()">' + str + '</p>'] |
| | | } |
| | | return btn; |
| | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | /** |
| | | * 商户号认证页面回显 |
| | | */ |
| | | TSite.auth1 = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: "商户认证详情", |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/operator/proportionAuth1/' + TSite.seItem.operatorId |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | TSite.proportion = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length >1 ){ |
| | | Feng.info("只能选择一个运营商商户设置分账比例!"); |
| | | }else { |
| | | if (this.check()) { |
| | | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: "认证", |
| | |
| | | TSite.commit = function(){ |
| | | var alipayProportion = $("#alipayProportion").val(); |
| | | var wechatProportion = $("#wechatProportion").val(); |
| | | if($("#alipayNum").val()=='' ){ |
| | | if($("#alipayProportion").val()=='' ){ |
| | | Feng.info("请输入支付宝分账比例") |
| | | return; |
| | | } |
| | | if($("#wechatNum").val()=='' ){ |
| | | if($("#wechatProportion").val()=='' ){ |
| | | Feng.info("请输入微信分账比例") |
| | | return; |
| | | } |
| | | if (Number(alipayProportion)+Number(wechatProportion)!=100){ |
| | | Feng.info("总比例应该是100%,当前比例:"+Number(Number(alipayProportion)+Number(wechatProportion))); |
| | | return; |
| | | } |
| | | |
| | | var ali = $("#alipayProportion").val() |
| | | var wechat = $("#wechatProportion").val() |
| | | if(Number(ali)+Number(wechat)!=100){ |
| | | Feng.success("总比例需为100%!"); |
| | | return; |
| | | } |
| | | //提交信息 |
| | |
| | | ajax.set("wechatNum", $("#wechatNum").val() ); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | // 银行卡使用 |
| | | TSite.oneChange2 = function (e) { |
| | | var oneId=$(e).val(); |
| | | console.log(oneId) |
| | | console.log("!!!!!!!!!!!!!") |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange3", function(data){ |
| | | if(data!=null){ |
| | | var content='<option value="">选择市</option>'; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.code+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#cCode").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | }; |
| | | // 经营地址使用 |
| | | TSite.oneChange6 = function (e) { |
| | | var oneId=$(e).val(); |
| | | console.log(oneId) |
| | | console.log("!!!!!!!!!!!!!") |
| | | var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange3", function(data){ |
| | | if(data!=null){ |
| | | var content='<option value="">选择市</option>'; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.code+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#bcCode").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("oneId",oneId); |
| | | ajax.start(); |
| | | }; |
| | | // 经营地址使用 |
| | | TSite.twoChange = function (e) { |
| | | var oneId=$(e).val(); |
| | | console.log(oneId) |
| | | console.log("!!!!!!!!!!!!!") |
| | | var ajax = new $ax(Feng.ctxPath + "/operator/getDistrict", function(data){ |
| | | if(data!=null){ |
| | | var content='<option value="">选择区(县)</option>'; |
| | | $.each(data, function(k,v) { |
| | | content += "<option value='"+v.code+"'>"+v.name+"</option>"; |
| | | }); |
| | | $("#bdCode").empty().append(content); |
| | | } |
| | | }); |
| | | ajax.set("cityCode",oneId); |
| | | ajax.start(); |
| | | }; |
| | | TSite.addSubmit = function(){ |
| | | |
| | | var bodyType = $("input[name='bodyType']:checked").val(); |
| | | var accountType = $("input[name='accountType']:checked").val(); |
| | | var type = $("input[name='type']:checked").val(); |
| | | if (bodyType=="" || null == bodyType){ |
| | | Feng.error("请选择主体类型"); |
| | | return; |
| | | } |
| | | if ("" == $("#businessName").val() ){ |
| | | Feng.error("请输入商户名称"); |
| | | return; |
| | | } |
| | | if ("" == $("#aliasName").val() ){ |
| | | Feng.error("请输入商户别名"); |
| | | return; |
| | | } |
| | | if ("" == $("#businessNumber").val() ){ |
| | | Feng.error("请输入营业执照编号"); |
| | | return; |
| | | } |
| | | if ("" == $("#businessNumber").val() ){ |
| | | Feng.error("请上传营业执照"); |
| | | return; |
| | | } |
| | | if ("" == $("#name").val() ){ |
| | |
| | | Feng.error("请输入联系人电话"); |
| | | return; |
| | | } |
| | | if ("" == $("#number").val() ){ |
| | | Feng.error("请输入联系人身份证号"); |
| | | return; |
| | | } |
| | | var platform = $("input[name='platform']:checked").val(); |
| | | |
| | | if ("" == $("#merchantName").val() ){ |
| | | Feng.error("请输入营业执照商户名称"); |
| | | return; |
| | | } |
| | | if ("" == $("#lrName").val() ){ |
| | | Feng.error("请输入法定代表人姓名"); |
| | | return; |
| | | } |
| | | var tradeT = document.getElementById("tradeE"); |
| | | if (!tradeT.checked){ |
| | | if ("" == $("#endTime").val() || null == $("#endTime").val()){ |
| | | Feng.error("请输入营业证照过期时间"); |
| | | return; |
| | | } |
| | | } |
| | | if ("" == $("#tradeTime").val() || null == $("#tradeTime").val()){ |
| | | Feng.error("请输入营业执照生效期间"); |
| | | return; |
| | | } |
| | | if ("" == $("#licenseRegistration").val() ){ |
| | | Feng.error("请输入营业执照注册号"); |
| | | return; |
| | | } |
| | | if ("" == $("#registerAddress").val() ){ |
| | | Feng.error("请输入注册地址"); |
| | | return; |
| | | } |
| | | if ("" == $("#legalPerson").val()){ |
| | | Feng.error("请输入法人姓名"); |
| | | return; |
| | | }if ("" == $("#legalPhone").val()){ |
| | | Feng.error("请输入法人手机号"); |
| | | return; |
| | | } |
| | | var IDCardT = document.getElementById("IDCardE"); |
| | | if (!IDCardT.checked){ |
| | | if ("" == $("#IDCardTime").val() || null == $("#IDCardTime").val()){ |
| | | Feng.error("请输入法人身份证结束时间"); |
| | | return; |
| | | } |
| | | } |
| | | if ("" == $("#IDCardTime").val()){ |
| | | Feng.error("请输入法人身份证开始时间"); |
| | | return; |
| | | } |
| | | |
| | | if ("" == $("#lIDNumber").val()){ |
| | | Feng.error("请输入法人身份证号"); |
| | | return; |
| | | }if ("" == $("#lEmail").val()){ |
| | | Feng.error("请输入法人邮箱"); |
| | | return; |
| | | }if ("" == $("#lIDAddress").val()){ |
| | | Feng.error("请输入法人身份证地址"); |
| | | } |
| | | if ("" == $("#zfbAccount").val()){ |
| | | Feng.error("请输入签约支付宝账号"); |
| | | return; |
| | | } |
| | | if(bodyType=="ENTERPRISE"){ |
| | | if ("" == $("#bName").val()){ |
| | | Feng.error("请输入受益人姓名"); |
| | | // 结算账户类型 |
| | | var accountType = $("input[name='accountType']:checked").val(); |
| | | // 结算到银行卡 |
| | | if (accountType == "bankCard"){ |
| | | if ("" == $("#bankCard").val()){ |
| | | Feng.error("请输入银行卡号"); |
| | | return; |
| | | } |
| | | if ("" == $("#bAddress").val()){ |
| | | Feng.error("请输入受益人身份证地址"); |
| | | if ("" == $("#bankName").val()){ |
| | | Feng.error("请选择开户银行"); |
| | | return; |
| | | } |
| | | var bIDCardT = document.getElementById("bIDCardT"); |
| | | if (!bIDCardT.checked){ |
| | | if ("" == $("#bEnd").val()){ |
| | | Feng.error("请输入受益人身份证结束时间"); |
| | | return; |
| | | } |
| | | } |
| | | if ("" == $("#bTime").val()){ |
| | | Feng.error("请输入受益人身份证开始时间"); |
| | | if ("" == $("#bankName1").val()){ |
| | | Feng.error("请输入开户支行名称"); |
| | | return; |
| | | } |
| | | |
| | | if ("" == $("#bIDNumber").val()){ |
| | | Feng.error("请输入受益人身份证号"); |
| | | if ("" == $("#bankUserName").val()){ |
| | | Feng.error("请输入开户名称"); |
| | | return; |
| | | } |
| | | |
| | | if ("" == $("#pCode").val()){ |
| | | Feng.error("请选择开户银行所在省"); |
| | | return; |
| | | } |
| | | if ("" == $("#cCode").val()){ |
| | | Feng.error("请选择开户银行所在市"); |
| | | return; |
| | | } |
| | | }else{ |
| | | // 结算到支付宝 |
| | | if ("" == $("#alipayAccount").val()){ |
| | | Feng.error("请输入支付宝账号"); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/operator/auth", function(data){ |
| | | if (data==5001){ |
| | | Feng.error("未上传营业执照!"); |
| | | return; |
| | | }else if(data==5002){ |
| | | Feng.error("未上传法人身份证正面照!"); |
| | | return; |
| | | }else if(data==5003){ |
| | | Feng.error("未上传法人身份证背面照!"); |
| | | }else if(data==5004){ |
| | | Feng.error("未上传受益人身份证正面照!"); |
| | | }else if(data==5005){ |
| | | Feng.error("未上传受益人身份证背面照!"); |
| | | return; |
| | | }else if(data==5007){ |
| | | Feng.error("输入的开户银行名称有误!"); |
| | | return; |
| | | } else if (data.code==500){ |
| | | console.log(data) |
| | | Feng.error("认证失败:"+data.msg); |
| | | return; |
| | | }else{ |
| | | Feng.success("操作成功!"); |
| | | Feng.success("认证成功!请等待支付宝审核"); |
| | | window.parent.TSite.table.refresh(); |
| | | TSite.close(); |
| | | } |
| | | },function(data){ |
| | | Feng.error("操作失败!"); |
| | | }); |
| | | ajax.set("operatorId", $("#id").val() ); |
| | | ajax.set("bodyType", bodyType ); |
| | | ajax.set("type", platform ); |
| | | ajax.set("businessName", $("#merchantName").val() ); |
| | | ajax.set("businessNumber", $("#licenseRegistration").val() ); |
| | | ajax.set("legalRepresentative", $("#lrName").val() ); |
| | | ajax.set("registerAddress", $("#registerAddress").val() ); |
| | | if ($("#endTime").val()==""){ |
| | | ajax.set("businessEnd","forever"); |
| | | }else{ |
| | | ajax.set("businessEnd",$("#endTime").val()); |
| | | } |
| | | if ($("#IDCardEnd").val()==""){ |
| | | ajax.set("legalEnd","forever"); |
| | | ajax.set("lpIcForeverFlag", 0); |
| | | }else{ |
| | | ajax.set("legalEnd",$("#IDCardEnd").val()); |
| | | ajax.set("lpIcForeverFlag", 1); |
| | | } |
| | | |
| | | if(bodyType=="ENTERPRISE"){ |
| | | if ($("#bEnd").val()==""){ |
| | | console.log("永远") |
| | | ajax.set("beneficiaryEnd","forever"); |
| | | |
| | | }else{ |
| | | console.log("嗯嗯嗯") |
| | | ajax.set("beneficiaryEnd",$("#bEnd").val()); |
| | | } |
| | | } |
| | | |
| | | var tradeT = document.getElementById('tradeE'); |
| | | if (tradeT.checked) { |
| | | endTime.disabled = true; |
| | | endTime.value=""; |
| | | ajax.set("blBusinessFoeverFlag", 1); |
| | | } else { |
| | | ajax.set("blBusinessFoeverFlag", 0); |
| | | endTime.disabled = false; |
| | | } |
| | | ajax.set("businessTerm", $("#tradeTime").val() ); |
| | | ajax.set("operatorId", $("#id").val()); |
| | | ajax.set("bodyType", bodyType ); |
| | | ajax.set("businessName", $("#businessName").val()); |
| | | ajax.set("aliasName", $("#aliasName").val()); |
| | | ajax.set("businessNumber", $("#businessNumber").val() ); |
| | | ajax.set("license", $("#license").val() ); |
| | | ajax.set("name", $("#name").val() ); |
| | | ajax.set("phone", $("#phone").val() ); |
| | | ajax.set("number", $("#number").val() ); |
| | | ajax.set("businessPicture", $("#license").val() ); |
| | | ajax.set("shopProvinceCode", $("#bpCode").val() ); |
| | | ajax.set("shopProvince", $('#bpCode option:selected').text()); |
| | | ajax.set("shopCityCode", $("#bcCode").val() ); |
| | | ajax.set("shopCity", $('#bcCode option:selected').text()); |
| | | ajax.set("shopDistrictCode", $("#bdCode").val() ); |
| | | ajax.set("shopDistrict", $('#bdCode option:selected').text()); |
| | | ajax.set("registerAddress", $("#registerAddress").val() ); |
| | | ajax.set("legalPerson", $("#legalPerson").val() ); |
| | | ajax.set("legalNumber", $("#lIDNumber").val() ); |
| | | ajax.set("legalPhone", $("#legalPhone").val() ); |
| | | ajax.set("legalEmail", $("#lEmail").val() ); |
| | | ajax.set("legalTerm", $("#IDCardTime").val() ); |
| | | ajax.set("legalAddress", $("#lIDAddress").val() ); |
| | | ajax.set("leagleNumber", $("#leagleNumber").val() ); |
| | | ajax.set("legalFront", $("#IDCardImg").val() ); |
| | | ajax.set("legalBack", $("#IDCardImg1").val() ); |
| | | ajax.set("accountType", accountType ); |
| | | ajax.set("bank", $("#bank").val() ); |
| | | ajax.set("accountName", $("#backUserName").val() ); |
| | | ajax.set("province", $('#pCode option:selected').text() ); |
| | | ajax.set("alipayAccount", $("#alipayAccount").val() ); |
| | | ajax.set("bankCard", $("#bankCard").val() ); |
| | | // 结算账户类型 |
| | | var useType = $("input[name='useType']:checked").val(); |
| | | ajax.set("useType", useType ); |
| | | // 银行卡类型 |
| | | var cardType = $("input[name='cardType']:checked").val(); |
| | | ajax.set("cardType", cardType ); |
| | | ajax.set("bankName", $("#bankName").val() ); |
| | | ajax.set("bankNameTwo", $("#bankName1").val() ); |
| | | ajax.set("accountName", $("#bankUserName").val() ); |
| | | ajax.set("provinceCode", $("#pCode").val() ); |
| | | ajax.set("city", $('#cCode option:selected').text() ); |
| | | ajax.set("province", $('#pCode option:selected').text()); |
| | | ajax.set("cityCode", $("#cCode").val() ); |
| | | ajax.set("bankName", $("#backName").val() ); |
| | | ajax.set("bankNumber", $("#backNumber").val() ); |
| | | ajax.set("isBeneficiary", type ); |
| | | ajax.set("beneficiary", $("#bName").val() ); |
| | | ajax.set("beneficiaryPhone", $("#bPhone").val() ); |
| | | ajax.set("beneficiaryNumber", $("#bIDNumber").val() ); |
| | | ajax.set("beneficiaryAddress", $("#bAddress").val() ); |
| | | ajax.set("beneficiaryTerm", $("#bTime").val() ); |
| | | ajax.set("beneficiaryFront", $("#bImg1").val() ); |
| | | ajax.set("beneficiaryBack", $("#bImg2").val() ); |
| | | ajax.set("remark", $("#remark").val() ); |
| | | ajax.set("city", $('#cCode option:selected').text()); |
| | | ajax.set("iqImage", $("#iqImage").val() ); |
| | | ajax.set("zfbAccount", $("#zfbAccount").val() ); |
| | | ajax.start(); |
| | | }; |
| | | /** |
| | |
| | | |
| | | |
| | | $(function () { |
| | | |
| | | var defaultColunms = TSite.initColumn(); |
| | | var table = new BSTable(TSite.id, "/operatorUser/listAll", defaultColunms); |
| | | table.setPaginationType("client"); |
| | |
| | | var c4 = new $WebUpload("bImg1"); |
| | | var c5 = new $WebUpload("bImg2"); |
| | | var c6 = new $WebUpload("Img"); |
| | | var inDoorImages = new $WebUpload("inDoorImages"); |
| | | var outDoorImages = new $WebUpload("outDoorImages"); |
| | | var iqImage = new $WebUpload("iqImage"); |
| | | c1.setUploadBarId("progressBar"); |
| | | c1.init(); |
| | | c2.setUploadBarId("progressBar"); |
| | |
| | | c5.init(); |
| | | c6.setUploadBarId("progressBar"); |
| | | c6.init(); |
| | | inDoorImages.setUploadBarId("progressBar"); |
| | | inDoorImages.init(); |
| | | outDoorImages.setUploadBarId("progressBar"); |
| | | outDoorImages.init(); |
| | | iqImage.setUploadBarId("progressBar"); |
| | | iqImage.init(); |
| | | }); |
| | |
| | | <dependency> |
| | | <groupId>com.alipay.sdk</groupId> |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.8.10.ALL</version> |
| | | <version>4.38.10.ALL</version> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | |
| | | private CityManagerClient cityManagerClient; |
| | | |
| | | /** |
| | | * 通过运营商id查询运营商对应的支付宝商户号 |
| | | */ |
| | | @RequestMapping("/base/getSMIDByOperatorId") |
| | | @ResponseBody |
| | | public String getSMIDByOperatorId(Integer id) { |
| | | // 获取运营商的管理员 |
| | | return siteService.getSMIDByOperatorId(id); |
| | | } |
| | | /** |
| | | * 获取所有场地 |
| | | */ |
| | | @RequestMapping("/base/site/getList") |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 预约场地支付宝回调 |
| | | * |
| | |
| | | if (null != map) { |
| | | String code = map.get("out_trade_no"); |
| | | String trade_no = map.get("trade_no"); |
| | | SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("orderNo", code).eq("state", 1)); |
| | | SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>() |
| | | .eq("orderNo", code).eq("state", 1)); |
| | | if (siteBooking.getStatus() == 0) { |
| | | siteBooking.setPayTime(new Date()); |
| | | siteBooking.setStatus(1); |
| | |
| | | |
| | | List<TSiteDTO> listExipre(@Param("query") ExpireSiteSearchVO vo); |
| | | |
| | | String getSMIDByOperatorId(@Param("id")Integer id); |
| | | |
| | | } |
| | |
| | | |
| | | Object changeState(SiteChangeStateVO vo); |
| | | |
| | | String getSMIDByOperatorId(Integer id); |
| | | |
| | | } |
| | |
| | | return weixinpay; |
| | | } |
| | | |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | /** |
| | | * 课程支付宝支付 |
| | | * |
| | |
| | | public ResultUtil aliPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception { |
| | | String code = siteBooking.getOrderNo(); |
| | | Integer id = siteBooking.getId(); |
| | | ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback"); |
| | | // 判断预约的门店 属于哪个运营商 |
| | | Integer storeId = siteBooking.getStoreId(); |
| | | Store byId = storeService.getById(storeId); |
| | | Integer operatorId = byId.getOperatorId(); |
| | | String smid1 = ""; |
| | | if (operatorId == null ){ |
| | | // 平台的门店 |
| | | smid1 = smid; |
| | | }else{ |
| | | smid1 = siteService.getSMIDByOperatorId(operatorId); |
| | | } |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid1,"预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback"); |
| | | System.out.println("预约场地----" + alipay.getCode()); |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | |
| | | siteBooking.setPayOrderNo(tradeNo); |
| | | siteBookingService.updateById(siteBooking); |
| | | System.err.println("======完成支付"); |
| | | // 判断预约的门店 属于哪个运营商 |
| | | Integer storeId = siteBooking.getStoreId(); |
| | | Store byId = storeService.getById(storeId); |
| | | Integer operatorId = byId.getOperatorId(); |
| | | String smid1 = ""; |
| | | if (operatorId == null ){ |
| | | // 平台的门店 |
| | | smid1 = smid; |
| | | }else{ |
| | | smid1 = siteService.getSMIDByOperatorId(operatorId); |
| | | } |
| | | payMoneyUtil.confirm(smid1,code,tradeNo,paymentPrice.toString()); |
| | | break; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | |
| | | return siteMapper.changeState(siteIds, type); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public String getSMIDByOperatorId(Integer id) { |
| | | return siteMapper.getSMIDByOperatorId(id); |
| | | } |
| | | } |
| | |
| | | import com.alipay.api.AlipayClient; |
| | | import com.alipay.api.CertAlipayRequest; |
| | | import com.alipay.api.DefaultAlipayClient; |
| | | import com.alipay.api.domain.AlipayTradeAppPayModel; |
| | | import com.alipay.api.domain.ExtendParams; |
| | | import com.alipay.api.domain.RoyaltyDetailInfos; |
| | | import com.alipay.api.domain.RoyaltyInfo; |
| | | import com.alipay.api.domain.*; |
| | | import com.alipay.api.msg.AlipayMsgClient; |
| | | import com.alipay.api.msg.MsgHandler; |
| | | import com.alipay.api.request.*; |
| | | import com.alipay.api.response.*; |
| | | import lombok.Synchronized; |
| | |
| | | private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书 |
| | | |
| | | |
| | | |
| | | |
| | | public ResultUtil confirm(String smid,String code, String outTradeNo, String amount) { |
| | | |
| | | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", |
| | | aliAppid, |
| | | appPrivateKey, |
| | | "json", |
| | | "GBK", |
| | | alipay_public_key, |
| | | "RSA2"); |
| | | AlipayTradeSettleConfirmRequest request = new AlipayTradeSettleConfirmRequest(); |
| | | request.setBizContent("{" + |
| | | " \"out_request_no\":\""+code+"\"," + |
| | | " \"trade_no\":\""+outTradeNo+"\"," + |
| | | " \"settle_info\":{" + |
| | | " \"settle_detail_infos\":[" + |
| | | " {" + |
| | | " \"trans_in_type\":\"defaultSettle\"," + |
| | | " \"settle_entity_id\":\""+smid+"\"," + |
| | | " \"settle_entity_type\":\"SecondMerchant\"," + |
| | | " \"amount\":"+amount+"," + |
| | | " }" + |
| | | " ]" + |
| | | " }," + |
| | | " \"extend_params\":{" + |
| | | " \"royalty_freeze\":\"true\"" + |
| | | " }" + |
| | | "}"); |
| | | AlipayTradeSettleConfirmResponse response = null; |
| | | try { |
| | | response = alipayClient.execute(request); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | if(response.isSuccess()){ |
| | | System.out.println("调用成功"); |
| | | return ResultUtil.success(); |
| | | } else { |
| | | System.out.println("调用失败"); |
| | | return ResultUtil.error("出现问题啦"); |
| | | } |
| | | } |
| | | /** |
| | | * 支付宝支付 |
| | | */ |
| | | |
| | | public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | // //构造client |
| | | public ResultUtil alipay(String smid,String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) { |
| | | //// //构造client |
| | | // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); |
| | | // //设置网关地址 |
| | | // certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); |
| | |
| | | model.setTotalAmount(amount);//付款金额 |
| | | model.setProductCode("QUICK_MSECURITY_PAY"); |
| | | model.setPassbackParams(passbackParams);//自定义参数 |
| | | SettleInfo settleInfo = new SettleInfo(); |
| | | settleInfo.setSettlePeriodTime("3d"); |
| | | SettleDetailInfo settleDetailInfo = new SettleDetailInfo(); |
| | | settleDetailInfo.setTransInType("defaultSettle"); |
| | | settleDetailInfo.setAmount(amount); |
| | | List<SettleDetailInfo> settleDetailInfos = new ArrayList<>(); |
| | | settleDetailInfos.add(settleDetailInfo); |
| | | settleInfo.setSettleDetailInfos(settleDetailInfos); |
| | | model.setSettleInfo(settleInfo); |
| | | SubMerchant subMerchant = new SubMerchant(); |
| | | subMerchant.setMerchantId(smid); |
| | | model.setSubMerchant(subMerchant); |
| | | ExtendParams extendParams = new ExtendParams(); |
| | | extendParams.setRoyaltyFreeze("true");// 冻结资金 用于后续分账处理 |
| | | model.setExtendParams(extendParams); |
| | | request.setBizModel(model); |
| | | request.setNotifyUrl(callbackPath + notifyUrl); |
| | | |
| | |
| | | |
| | | ORDER BY insertTime desc |
| | | </select> |
| | | <select id="getSMIDByOperatorId" resultType="java.lang.String"> |
| | | select alipayNum from t_operator_user where operatorId = #{id} |
| | | </select> |
| | | </mapper> |