xiaoyong931011
2022-08-26 be9208db35144a6939fa338709168cf7549e86c6
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -26,6 +26,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONObject;
@@ -208,12 +209,12 @@
        this.baseMapper.updateById(orderInfo);
    }
    public static void main(String[] args) {
        String unipayStr = "{\"r1_MerchantNo\":\"888118000001971\",\"rd_Pic\":\"\",\"r6_FrpCode\":\"ALIPAY_H5\",\"r7_TrxNo\":\"100222082332490699\",\"r0_Version\":\"1.0\",\"r3_Amount\":\"0.01\",\"r4_Cur\":\"1\",\"r2_OrderNo\":\"2022082212510288174\",\"rb_CodeMsg\":\"\",\"hmac\":\"1659BB77DEDDF9956EA4D6DF227C3B14\",\"ra_Code\":100,\"rc_Result\":\"<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title></title></head><body><script type='text/javascript'>location.href='https://qr.alipay.com/bax019737vbdwoisxcdp00a2';</script></body></html>\"}";
        JSONObject jsonObject = JSONUtil.parseObj(unipayStr);
        String r7_trxNo = (String) jsonObject.get("r7_TrxNo");
        System.out.println(r7_trxNo);
    }
//    public static void main(String[] args) {
//        String unipayStr = "{\"r1_MerchantNo\":\"888118000001971\",\"rd_Pic\":\"\",\"r6_FrpCode\":\"ALIPAY_H5\",\"r7_TrxNo\":\"100222082332490699\",\"r0_Version\":\"1.0\",\"r3_Amount\":\"0.01\",\"r4_Cur\":\"1\",\"r2_OrderNo\":\"2022082212510288174\",\"rb_CodeMsg\":\"\",\"hmac\":\"1659BB77DEDDF9956EA4D6DF227C3B14\",\"ra_Code\":100,\"rc_Result\":\"<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title></title></head><body><script type='text/javascript'>location.href='https://qr.alipay.com/bax019737vbdwoisxcdp00a2';</script></body></html>\"}";
//        JSONObject jsonObject = JSONUtil.parseObj(unipayStr);
//        String r7_trxNo = (String) jsonObject.get("r7_TrxNo");
//        System.out.println(r7_trxNo);
//    }
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -337,14 +338,21 @@
                agreementSignDto.setOrderNo(orderInfo.getOrderNo());
                agreementSignDto.setSmsCode(payOrderDto.getSmsCode());
                String agreementSignStr = unipayService.agreementSign(agreementSignDto);
                if("fail" == agreementSignStr){
                if("fail".equals(agreementSignStr)){
                    throw new FebsException("支付失败");
                }else{
                    JSONObject jsonObject = JSONUtil.parseObj(agreementSignStr);
                    payResultStr = (String) jsonObject.get("biz_code");
                    String signData = (String) jsonObject.get("data");
                    String signBizMsg = (String) jsonObject.get("biz_msg");
                    if("JS000000" != payResultStr){
                    JSONObject signDatajsonObject = JSONUtil.parseObj(signData);
                    String err_msg = (String) signDatajsonObject.get("err_msg");
                    if(!"JS000000".equals(payResultStr)){
                        throw new FebsException(signBizMsg);
                    }
                    if(ObjectUtil.isNotNull(signDatajsonObject.get("err_code"))){
                        throw new FebsException(err_msg);
                    }
                }
                
@@ -391,6 +399,21 @@
        return map;
    }
    public static void main(String[] args) {
        String str = "{\"biz_code\":\"JS000000\",\"biz_msg\":\"成功\",\"data\":\"{\\\"order_status\\\":\\\"P2000\\\",\\\"jp_order_no\\\":\\\"100120220826446740396081496064\\\",\\\"err_msg\\\":\\\"短信验证码不符\\\",\\\"err_code\\\":\\\"CP110026\\\",\\\"sign_no\\\":\\\"\\\",\\\"mch_order_no\\\":\\\"NO_2022082618263952399\\\"}\",\"mch_no\":\"888118000001971\",\"rand_str\":\"an2w7ulf5ru6upkk5bdg441kdi3gnpvu\",\"resp_code\":\"SUCCESS\",\"sec_key\":\"\",\"sign\":\"NiJXRTSIZ9xZMUOwEHiEHdZXmgL2cHUU5WUa1NbMRRzui0DIiuZSW4e31LjnBxwVwmy3uuPMP+tqhY8VLyC8uCFOdGdZI7e72VuRvyvaiW7/sqCrsfgPOBEjiGE/CmSMRoEXv9HmqCyNBF6iHSEhQJql5Yge30dQdyB6xFfqjk0=\",\"sign_type\":\"2\"}";
        JSONObject jsonObject = JSONUtil.parseObj(str);
        String payResultStr = (String) jsonObject.get("biz_code");
        String signBizMsg = (String) jsonObject.get("biz_msg");
        String signData = (String) jsonObject.get("data");
        JSONObject signDatajsonObject = JSONUtil.parseObj(signData);
        String err_msg = (String) signDatajsonObject.get("err_msg");
        if(ObjectUtil.isNotNull(signDatajsonObject.get("err_code"))){
            System.out.println(err_msg);
        }
    }
    private String balancePay(MallOrderInfo orderInfo, String tradePwd, String field) {
        if (StrUtil.isBlank(tradePwd)) {
            throw new FebsException("支付密码错误");