pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
@@ -66,15 +66,15 @@
    private final RestTemplateUtil restTemplateUtil;
    private final PayHelper payHelper;
    private final VirtualCardSv virtualCardSv;
    private final String appid = com.dy.pipIrrWechat.wechatpay.PayInfo.appid;
    private final String secret = com.dy.pipIrrWechat.wechatpay.PayInfo.secret;
    private final String mchid = com.dy.pipIrrWechat.wechatpay.PayInfo.mchid;
    private final String schema = com.dy.pipIrrWechat.wechatpay.PayInfo.schema;
    private final String signType = com.dy.pipIrrWechat.wechatpay.PayInfo.signType;
    private final String description = com.dy.pipIrrWechat.wechatpay.PayInfo.description;
    private final String loginUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.loginUrl;
    private final String notifyUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.notifyUrl;
    private final String grantType = com.dy.pipIrrWechat.wechatpay.PayInfo.grantType;
    //private final String appid = com.dy.pipIrrWechat.wechatpay.PayInfo.appid;
    //private final String secret = com.dy.pipIrrWechat.wechatpay.PayInfo.secret;
    //private final String mchid = com.dy.pipIrrWechat.wechatpay.PayInfo.mchid;
    //private final String schema = com.dy.pipIrrWechat.wechatpay.PayInfo.schema;
    //private final String signType = com.dy.pipIrrWechat.wechatpay.PayInfo.signType;
    //private final String description = com.dy.pipIrrWechat.wechatpay.PayInfo.description;
    //private final String loginUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.loginUrl;
    //private final String notifyUrl = com.dy.pipIrrWechat.wechatpay.PayInfo.notifyUrl;
    //private final String grantType = com.dy.pipIrrWechat.wechatpay.PayInfo.grantType;
    // 平台证书公钥
    private final Map CERTIFICATE_MAP = new HashMap();
@@ -106,12 +106,12 @@
        String jsCode = code2Session.getJs_code();
        Map<String, Object> queryParams = new HashMap<>();
        queryParams.put("appid", appid);
        queryParams.put("secret", secret);
        queryParams.put("appid", PayInfo.appid);
        queryParams.put("secret", PayInfo.secret);
        queryParams.put("js_code", jsCode);
        queryParams.put("grant_type", grantType);
        queryParams.put("grant_type", com.dy.pipIrrWechat.wechatpay.PayInfo.grantType);
        Map<String, String> headerParams = new HashMap<>();
        JSONObject job = restTemplateUtil.get(loginUrl, queryParams, headerParams);
        JSONObject job = restTemplateUtil.get(com.dy.pipIrrWechat.wechatpay.PayInfo.loginUrl, queryParams, headerParams);
        if(job.getLong("errcode") != null && job.getLong("errcode") >= -1) {
            return BaseResponseUtils.buildFail("登录凭证校验失败");
@@ -163,7 +163,7 @@
        Long timestamp = System.currentTimeMillis() / 1000;
        byte[] certFileBs = WxCertUtil.getKey_pemBytes(resourceLoader) ;
        String header = schema + " " + payHelper.getToken(method, httpUrl, "", nonceStr, timestamp, certFileBs);
        String header = com.dy.pipIrrWechat.wechatpay.PayInfo.schema + " " + payHelper.getToken(method, httpUrl, "", nonceStr, timestamp, certFileBs);
        Map<String, String> headers = new HashMap<>();
        headers.put("Authorization", header);
@@ -199,10 +199,10 @@
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        // 接收参数:登录态ID、虚拟卡ID、充值金额(分)
        // 接收参数:登录态ID、虚拟卡ID、充值金额(单位元)
        Long sessionId = order.getSessionId();
        Long virtualId = order.getVcId();
        Integer rechargeAmount = order.getRechargeAmount();
        //Integer rechargeAmount = (int)(order.getRechargeAmount()*100);
        String prepayId = "";
@@ -233,7 +233,8 @@
        virtualCard.setVirtualId(virtualId);
        virtualCard.setClientId(clientId);
        virtualCard.setOrderNumber(orderNumber);
        virtualCard.setRechargeAmount(rechargeAmount);
        //virtualCard.setRechargeAmount(rechargeAmount);
        virtualCard.setRechargeAmount(order.getRechargeAmount());
        // -1:虚拟卡不存在,0:添加充值记录失败
        Long rechargeId = virtualCardSv.insertVCRecharge(virtualCard);
@@ -258,16 +259,16 @@
        }
        JSONObject job_body = new JSONObject();
        job_body.put("appid", appid);
        job_body.put("mchid", mchid);
        job_body.put("description", description);
        job_body.put("appid", PayInfo.appid);
        job_body.put("mchid", PayInfo.mchid);
        job_body.put("description", com.dy.pipIrrWechat.wechatpay.PayInfo.description);
        job_body.put("out_trade_no", orderNumber);
        job_body.put("attach", DataSourceContext.get());
        job_body.put("notify_url", notifyUrl);
        job_body.put("notify_url", com.dy.pipIrrWechat.wechatpay.PayInfo.notifyUrl);
        //订单金额
        JSONObject job_amount = new JSONObject();
        job_amount.put("total", rechargeAmount);
        job_amount.put("total", (int)(order.getRechargeAmount()*100));
        job_amount.put("currency", "CNY");
        job_body.put("amount", job_amount);
@@ -285,7 +286,7 @@
        String body = job_body.toJSONString();
        byte[] certFileBs = WxCertUtil.getKey_pemBytes(resourceLoader) ;
        String header = schema + " " + payHelper.getToken(method, httpUrl, body, nonceStr, timestamp, certFileBs);
        String header = com.dy.pipIrrWechat.wechatpay.PayInfo.schema + " " + payHelper.getToken(method, httpUrl, body, nonceStr, timestamp, certFileBs);
        Map<String, String> headers = new HashMap<>();
        headers.put("Authorization", header);
@@ -333,7 +334,7 @@
        job_result.put("timeStamp", timeStamp);
        job_result.put("nonceStr", nonceStr);
        job_result.put("package", pkg);
        job_result.put("signType", signType);
        job_result.put("signType", com.dy.pipIrrWechat.wechatpay.PayInfo.signType);
        job_result.put("paySign", paySign);
        return BaseResponseUtils.buildSuccess(job_result) ;
@@ -561,32 +562,5 @@
            return BaseResponseUtils.buildFail("添加微信支付信息失败");
        }
        return BaseResponseUtils.buildSuccess(true) ;
    }
    /**
     * 初始化微信支付信息
     * @param appId
     * @return
     */
    @PostMapping(path = "init_wechatpay")
    public BaseResponse<Boolean> initWechatpay(@RequestParam("appId") String appId) throws Exception {
        if(appId == null || appId.trim().length() == 0) {
            return BaseResponseUtils.buildErrorMsg("小程序唯一标识不能为空");
        }
        appId = AES.encrypt(appId);
        SeWechatpay seWechatpay = paymentSv.getWechatpayByAppId(appId);
        if(seWechatpay != null) {
            PayInfo.appid = AES.decrypt(seWechatpay.getAppId());
            PayInfo.secret = AES.decrypt(seWechatpay.getAppSecret());
            PayInfo.mchid = AES.decrypt(seWechatpay.getMchId());
            PayInfo.key = AES.decrypt(seWechatpay.getMchKey());
            PayInfo.serial_no = AES.decrypt(seWechatpay.getSerialNo());
            PayInfo.notifyUrl = AES.decrypt(seWechatpay.getNotifyUrl());
            return BaseResponseUtils.buildSuccess(true) ;
        }else {
            return BaseResponseUtils.buildErrorMsg("小程序唯一标识错误或其信息不存在");
        }
    }
}