无关风月
3 天以前 df4733091b30b0434a04dacd0e844663114d4cfe
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
@@ -25,8 +25,10 @@
import com.dsh.communityWorldCup.model.*;
import com.dsh.communityWorldCup.service.*;
import com.dsh.communityWorldCup.util.*;
import com.dsh.communityWorldCup.util.wx.WxV3PayConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -190,10 +192,10 @@
        map.put("space_id", tGame.getSiteId() + "");
        map.put("red_sutu_id", tGame.getRed());
        map.put("blue_sutu_id", tGame.getBlue());
        map.put("api_url", "http://221.182.45.100:56666/communityWorldCup/base/worldCup/endWorldCupCallback");
        map.put("api_url", "https://online.daowepark.com:443/communityWorldCup/base/worldCup/endWorldCupCallback");
        map.put("custom", jsonObject.toJSONString());
        String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/quickStart", map);
        String s = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/quickStart", map);
        JSONObject jsonObject1 = JSONObject.parseObject(s);
        Integer code1 = jsonObject1.getInteger("code");
        String message = jsonObject1.getString("message");
@@ -511,6 +513,8 @@
        return payment;
    }
    private String smid = "2088330203191220";//平台支付宝商户号
    /**
     * 支付逻辑
@@ -539,17 +543,57 @@
                worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
                worldCupPayment.setUnitPrice(worldCupPayment.getAmount().divide(new BigDecimal(num)));
                worldCupPaymentService.save(worldCupPayment);
                return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
                List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list();
                if (list.isEmpty()){
                                    return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
                        worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", "");
                }else{
                    Integer storeId = list.get(0).getStoreId();
                    Store store = storeClient.queryStoreById(storeId);
                    if (store.getOperatorId()==null||store.getOperatorId()==0){
                        // 平台
                        return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
                                worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", "");
                    }else{
                        String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId());
                        System.err.println("微信商户号"+s2);
                        if(!StringUtils.hasLength(s2)){
                            return ResultUtil.error("运营商未配置微信商户号,获取支付失败!");
                        }
                        return payMoneyUtil.weixinpayV3(s2,"社区世界杯报名",worldCupPayment.getCode()
                                ,"/base/worldCup/wxPayWorldCupCallback1",worldCupPayment.getAmount().toString());
                    }
                }
            }
            //支付宝
            if(payType == 2){
                String smidRes = smid;// 结算资金到商户号
                worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
                worldCupPayment.setUnitPrice(worldCupPayment.getAmount().divide(new BigDecimal(num)));
                worldCupPaymentService.save(worldCupPayment);
                return payMoneyUtil.alipay("2088330203191220", "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
                List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list();
                if (list.isEmpty()){
            }else{
                    Integer storeId = list.get(0).getStoreId();
                    Store store = storeClient.queryStoreById(storeId);
                    if (store.getOperatorId()==null||store.getOperatorId()==0){
                    }else{
                        String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId());
                        System.err.println("支付宝商户号"+s2);
                        if(!StringUtils.hasLength(s2)){
                            return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!");
                        }
                        smidRes=s2;
                    }
                }
                return payMoneyUtil.alipay(smidRes, "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
                        worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback");
            }
                }
            //玩湃币
            if(payType == 3){
                AppUser appUser = appUserClient.getAppUser(paymentWorldCup.getUid());
@@ -712,7 +756,7 @@
     * @return
     */
    @Override
    public ResultUtil paymentWorldCupCallback(String code, String outTradeNo) {
    public ResultUtil paymentWorldCupCallback(String code, String outTradeNo) throws AlipayApiException {
        WorldCupPayment worldCupPayment = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("code", code));
        Integer worldCupId = worldCupPayment.getWorldCupId();
        worldCupPayment.setPayStatus(2);
@@ -740,6 +784,35 @@
            worldCupPaymentParticipant.setCreateTime(new Date());
            worldCupPaymentParticipantService.save(worldCupPaymentParticipant);
        }
        if (worldCupPayment.getPayType()==2){
            List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCupPayment.getWorldCupId()).list();
            String resSmid = smid;
            if (!list.isEmpty()){
                Integer storeId = list.get(0).getStoreId();
                Store store = storeClient.queryStoreById(storeId);
                if (store.getOperatorId()==null||store.getOperatorId()==0){
                }else{
                    String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId());
                    System.err.println("支付宝商户号"+s2);
                    if(!StringUtils.hasLength(s2)){
                        return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!");
                    }
                    resSmid=s2;
                }
            }
            String finalResSmid = resSmid;
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(30000);
                        payMoneyUtil.confirm(finalResSmid, code, outTradeNo, worldCupPayment.getAmount().toString());
                    }catch (Exception e){
                    }
                }
            }).start();
        }
        return ResultUtil.success();
    }