无关风月
2025-01-16 163d270965cf5678162d79baa12b1b1f2f631854
平台扫码支付
2个文件已修改
88 ■■■■■ 已修改文件
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MenuServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java
@@ -459,7 +459,89 @@
        map.put("p5_ProductName", "充值"); /** 商品名称 */
        map.put("p6_ProductDesc", "加盟商充值"); /** 商品名称 */
//        map.put("p7_Mp", ""); /** 如果商户请求时传递了该参数,则返回给商户时会原值传 回。 */
        map.put("p9_NotifyUrl", "http://101.34.55.62:9100/admin/franchisee/callBack"); /** 服务器异步通知地址 */
        map.put("p9_NotifyUrl", "http://v7ro848ar5jx.ngrok.xiaomiqiu123.top/admin/franchisee/callBack"); /** 服务器异步通知地址 */
        map.put("q1_FrpCode", "WEIXIN_NATIVE"); /** 微信扫码(主扫)【注:此为用户主扫,商户被扫】*/
        map.put("q4_IsShowPic", "1"); /** 是否展示二 维码图片 1表示输出*/
        map.put("q7_AppId", "wx1a4a7760be53a835"); /** 交易类型*/
        map.put("qa_TradeMerchantNo", "777165000859101"); /** 777开头的报备商户号   必填!*/
        map.put("qi_FqSellerPercen", "0"); /** 卖家承担收 费比例 目前仅支持传入 0 ,即用户承 担手续费!*/
        String Strmap = CreateLinkStringByGet1.createLinkStringByGet(map);
        // 签名
        String sign = "";
        sign = Md5_Sign.SignByMD5(Strmap, key);
        map.put("hmac", sign);/** 签名数据 */
        System.out.println("发送:" + JSON.toJSONString(map).toString());
        // post请求参数内容
        HttpRequester hr = new HttpRequester();
        HttpRespons HP = hr.sendPost("https://trade.joinpay.com/tradeRt/uniPay", map);
        System.out.println("接收返回参数:" + HP.getContent());
        JSONObject jsonObject = JSONObject.parseObject(HP.getContent());
        String rcResult = jsonObject.getString("rd_Pic");
        Map<String, Object> map2 = new HashMap<>();
        map2.put("rcResult", rcResult);
//        com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest prepayRequest = new com.wechat.pay.java.service.payments.nativepay.model.PrepayRequest();
//            prepayRequest.setAppid(weChatConfig.appId);
//            prepayRequest.setMchid(weChatConfig.merchantId);
//            prepayRequest.setOutTradeNo(code);
//            prepayRequest.setDescription("购买资料");
//            prepayRequest.setNotifyUrl("http://www.zhipingwang.com.cn:9090/admin/franchisee/callBack");
//            com.wechat.pay.java.service.payments.nativepay.model.Amount amount = new com.wechat.pay.java.service.payments.nativepay.model.Amount();
//            amount.setTotal(i);
//            prepayRequest.setAmount(amount);
//            // 调用下单方法,得到应答
//            com.wechat.pay.java.service.partnerpayments.app.model.PrepayResponse response;
        try {
//                com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse prepay = nativePayService.prepay(prepayRequest);
            //预支付成功,创建预支付订单
            TFranchiseeBalanceChange tFranchiseeBalanceChange = new TFranchiseeBalanceChange();
            tFranchiseeBalanceChange.setAmount(money);
            tFranchiseeBalanceChange.setIs_pay(0);
            tFranchiseeBalanceChange.setFranchiseeName(byId.getName());
            tFranchiseeBalanceChange.setFranchiseeId(String.valueOf(byId.getId()));
            tFranchiseeBalanceChange.setType(2);
            tFranchiseeBalanceChange.setCode(code);
            tFranchiseeBalanceChange.setRemark("加盟商扫码充值");
            balanceChangeService.save(tFranchiseeBalanceChange);
            PayDto payDto = new PayDto();
            payDto.setOrderId(tFranchiseeBalanceChange.getId());
            payDto.setQrCode(rcResult);
            return R.ok(payDto);
        } catch (HttpException e) { // 发送HTTP请求失败
//                log.error("发送HTTP请求失败: {}", e.getHttpRequest());
        } catch (ServiceException e) { // 服务返回状态小于200或大于等于300,例如500
//                log.error("服务返回状态异常: {}", e.getResponseBody());
        } catch (MalformedMessageException e) { // 服务返回成功,返回体类型不合法,或者解析返回体失败
//                log.error("返回体类型不合法: {}", e.getMessage());
        } catch (Exception e) {
//                log.error("预下单异常: {}", e.getMessage());
        }
        return null;
    }
    @ApiOperation(value = "扫码支付",tags = {"后台2.0-总平台"})
    @PostMapping(value = "/code/buyPlatform")
    public R buyPlatform(@RequestParam BigDecimal money,Integer id) throws AlipayApiException, IOException {
        Franchisee byId = franchiseeService.getById(id);
        String code = generateTradeNumber();
        int i = money.multiply(BigDecimal.valueOf(100)).intValue();
        String key = "ad273ceb5e1b49e68d5c565d28d1d305";/** md5密钥商户后台-商户中心-商户设置-密钥管理获取 必填!*/
        Map<String, String> map = new HashMap<String, String>();
        map.put("p0_Version", "2.5");/** 版本号 */
        map.put("p1_MerchantNo", "888122400007793");/** 商户编号 */
        map.put("p2_OrderNo", code); /**商户订单号*/
        map.put("p3_Amount", String.valueOf(money));/**订单金额*/
        map.put("p4_Cur", "1"); /**交易币种 */
        map.put("p5_ProductName", "充值"); /** 商品名称 */
        map.put("p6_ProductDesc", "加盟商充值"); /** 商品名称 */
//        map.put("p7_Mp", ""); /** 如果商户请求时传递了该参数,则返回给商户时会原值传 回。 */
        map.put("p9_NotifyUrl", "http://v7ro848ar5jx.ngrok.xiaomiqiu123.top/admin/franchisee/callBack"); /** 服务器异步通知地址 */
        map.put("q1_FrpCode", "WEIXIN_NATIVE"); /** 微信扫码(主扫)【注:此为用户主扫,商户被扫】*/
        map.put("q4_IsShowPic", "1"); /** 是否展示二 维码图片 1表示输出*/
        map.put("q7_AppId", "wx1a4a7760be53a835"); /** 交易类型*/
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MenuServiceImpl.java
@@ -37,6 +37,7 @@
    public List<Menu> menuTree() {
        // redis缓存
        Map<Object, Object> regionList = redisTemplate.opsForHash().entries(RedisConstants.MENU_TREE);
//        Map<Object, Object> regionList = new HashMap<>();
        // 获取所有地区信息 省市区三级
        List<Menu> regions = getReginList(regionList);
        Map<String, Menu> courseTypeMap = new HashMap<>();
@@ -47,8 +48,7 @@
            courseTypeMap = regions.stream().filter(region -> region.getMenuId() != 88900&&
                            region.getMenuId() != 88901&&
                            region.getMenuId() != 88902&&
                            region.getMenuId() != 88903).
                    collect(Collectors.toMap(region -> region.getMenuId().toString()
                            region.getMenuId() != 88903).collect(Collectors.toMap(region -> region.getMenuId().toString()
                            , region -> region));
        }