admin
2020-06-09 28fafb67d05ea8398f3f5968f37dec86f0e37e67
支付宝转账升级
1个文件已删除
9个文件已修改
4个文件已添加
380 ■■■■ 已修改文件
fanli/libs/alipay-sdk-java20170324180803.jar 补丁 | 查看 | 原始文档 | blame | 历史
fanli/pom.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/AlipayTransferResultInfo.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/config/AlipayConfig.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/AlipayUtil.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/alipay.properties 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/alipay/alipayCertPublicKey_RSA2.crt 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/alipay/alipayRootCert.crt 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/alipay/appCertPublicKey_2018120462438303.crt 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/libs/alipay-sdk-java20170324180803.jar
Binary files differ
fanli/pom.xml
@@ -41,14 +41,6 @@
            <systemPath>${basedir}/libs/taobao-sdk-java-auto_1533536267316-20180829.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>alipay</groupId>
            <artifactId>alipay</artifactId>
            <version>1.0.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/libs/alipay-sdk-java20170324180803.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>javapns-jdk16</groupId>
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
@@ -268,6 +268,9 @@
        JSONObject data = JSONObject.fromObject(contentDecode).optJSONObject("data");
        JSONArray array = data.optJSONObject("recommend").optJSONArray("resultList");
        long startTime=System.currentTimeMillis();
        for (int i = array.size() - 1; i >= 0; i--) {
            JSONObject item = array.optJSONObject(i);
            String title = item.optString("itemName");
@@ -334,7 +337,7 @@
            ActivityUser user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser();
            try {
                goodsEvaluateService.addGoodsEvaluate(itemId + "", imageList, user, doc, null, null);
                goodsEvaluateService.addGoodsEvaluate(itemId + "", imageList, user, doc, null, new Date(startTime-1000*60*20L*i));
            } catch (GoodsEvaluateException e) {
                e.printStackTrace();
            }
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/AlipayTransferResultInfo.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.entity.bus.user;
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.yeshi.fanli.entity.common.AdminUser;
/**
@@ -11,7 +12,17 @@
 */
public class AlipayTransferResultInfo {
    private Extract extract;
    private AlipayFundTransToaccountTransferResponse alipayFundTransToaccountTransferResponse;
    private AlipayFundTransUniTransferResponse alipayFundTransUniTransferResponse;
    public AlipayFundTransUniTransferResponse getAlipayFundTransUniTransferResponse() {
        return alipayFundTransUniTransferResponse;
    }
    public void setAlipayFundTransUniTransferResponse(
            AlipayFundTransUniTransferResponse alipayFundTransUniTransferResponse) {
        this.alipayFundTransUniTransferResponse = alipayFundTransUniTransferResponse;
    }
    private AdminUser adminUser;
    public AlipayTransferResultInfo() {
@@ -19,9 +30,9 @@
    }
    public AlipayTransferResultInfo(Extract extract,
            AlipayFundTransToaccountTransferResponse alipayFundTransToaccountTransferResponse, AdminUser adminUser) {
            AlipayFundTransUniTransferResponse alipayFundTransUniTransferResponse, AdminUser adminUser) {
        this.extract = extract;
        this.alipayFundTransToaccountTransferResponse = alipayFundTransToaccountTransferResponse;
        this.alipayFundTransUniTransferResponse = alipayFundTransUniTransferResponse;
        this.adminUser = adminUser;
    }
@@ -40,14 +51,4 @@
    public void setExtract(Extract extract) {
        this.extract = extract;
    }
    public AlipayFundTransToaccountTransferResponse getAlipayFundTransToaccountTransferResponse() {
        return alipayFundTransToaccountTransferResponse;
    }
    public void setAlipayFundTransToaccountTransferResponse(
            AlipayFundTransToaccountTransferResponse alipayFundTransToaccountTransferResponse) {
        this.alipayFundTransToaccountTransferResponse = alipayFundTransToaccountTransferResponse;
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/config/AlipayConfig.java
@@ -7,9 +7,42 @@
    private String appId;
    @Map("private_key")
    private String privateKey;
    @Map("public_key")
    private String publicKey;
    @Map("account_name")
    private String accountName;
    @Map("app_cert_path")
    private String appCertPath;
    @Map("alipay_root_cert_path")
    private String alipayRootCertPath ;
    @Map("alipay_cert_path")
    private String alipayCertPath ;
    public String getAppCertPath() {
        return appCertPath;
    }
    public void setAppCertPath(String appCertPath) {
        this.appCertPath = appCertPath;
    }
    public String getAlipayRootCertPath() {
        return alipayRootCertPath;
    }
    public void setAlipayRootCertPath(String alipayRootCertPath) {
        this.alipayRootCertPath = alipayRootCertPath;
    }
    public String getAlipayCertPath() {
        return alipayCertPath;
    }
    public void setAlipayCertPath(String alipayCertPath) {
        this.alipayCertPath = alipayCertPath;
    }
    public String getAppId() {
        return appId;
@@ -35,5 +68,13 @@
        this.accountName = accountName;
    }
    public String getPublicKey() {
        return publicKey;
    }
    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }
    
}
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java
@@ -4,7 +4,6 @@
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.annotation.Resource;
@@ -14,8 +13,9 @@
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayFundTransToaccountTransferRequest;
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
import com.yeshi.fanli.dao.mybatis.BindingAccountMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
@@ -38,6 +38,7 @@
import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
import com.yeshi.fanli.util.AlipayUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
@@ -197,31 +198,9 @@
    private void transferAlipayWithVerify(String account, String name)
            throws AlipayTransferException, AlipayApiException {
        String privateKey = Constant.alipayConfig.getPrivateKey();
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
                Constant.alipayConfig.getAppId(), privateKey, "json", "gbk", null, "RSA2");
        AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
        String uuid = UUID.randomUUID().toString().replace("-", "");
        String outBizNo=StringUtil.Md5(account)+TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd");
        String appName = Constant.systemCommonConfig.getProjectChineseName();
        JSONObject json = new JSONObject();
        json.put("out_biz_no", uuid);
        json.put("payee_type", "ALIPAY_LOGONID");
        json.put("payee_account", account);
        json.put("amount", "0.1");
        json.put("payer_show_name", appName + "支付宝验证");
        json.put("payee_real_name", name);
        json.put("remark", "来自" + appName + "的支付宝验证打款");
        request.setBizContent(json.toString());
        AlipayFundTransToaccountTransferResponse response = null;
        response = alipayClient.execute(request);
        // 成功转账
        if (response != null && response.isSuccess() && "10000".equals(response.getCode())) {
            return;
        } else// 转账失败
        {
            throw new AlipayTransferException(Integer.parseInt(response.getCode()), response.getSubCode(),
                    response.getSubMsg());
        }
        AlipayUtil.transfer(outBizNo, account, name, new BigDecimal("0.1"), appName + "支付宝验证", "来自" + appName + "的支付宝验证打款");
    }
    @Transactional(rollbackFor=Exception.class)
fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
@@ -25,10 +25,8 @@
import org.yeshi.utils.wx.WXPayUtil;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayFundTransToaccountTransferRequest;
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.google.gson.Gson;
import com.yeshi.fanli.dao.mybatis.AccountMessageMapper;
import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
@@ -58,6 +56,7 @@
import com.yeshi.fanli.exception.NotExistObjectException;
import com.yeshi.fanli.exception.ObjectStateException;
import com.yeshi.fanli.exception.money.UserMoneyDetailException;
import com.yeshi.fanli.exception.user.AlipayTransferException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
@@ -74,6 +73,7 @@
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.AlipayUtil;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
@@ -82,8 +82,6 @@
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import net.sf.json.JSONObject;
@Service
public class ExtractServiceImpl implements ExtractService {
@@ -424,25 +422,14 @@
    @Transactional
    private void extractByZhiFuBao(Extract extract, AdminUser adminUser) {
        LogHelper.userErrorInfo("提现:开始通过提现-" + extract.getId());
        String privateKey = Constant.alipayConfig.getPrivateKey();
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
                Constant.alipayConfig.getAppId(), privateKey, "json", "gbk", null, "RSA2");
        AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
        String appName = Constant.systemCommonConfig.getProjectChineseName();
        JSONObject json = new JSONObject();
        json.put("out_biz_no", "widthdraw_" + extract.getId());// 最长长度64位,支持英文,下划线,数字
        json.put("payee_type", "ALIPAY_LOGONID");
        json.put("payee_account", extract.getAccount());
        json.put("amount", extract.getMoney());
        json.put("payer_show_name", appName);
        json.put("payee_real_name", extract.getName());
        json.put("remark", "来自重庆快省科技有限公司");
        request.setBizContent(json.toString());
        AlipayFundTransToaccountTransferResponse response = null;
        AlipayFundTransUniTransferResponse response = null;
        try {
            response = alipayClient.execute(request);
            response = AlipayUtil.transfer("widthdraw_" + extract.getId(), extract.getAccount(),  extract.getName(),  extract.getMoney(), "板栗快省提现到账", "来自板栗快省的提现");
            LogHelper.userErrorInfo("提现:支付宝通过提现成功-" + extract.getId());
        } catch (AlipayApiException e) {
            LogHelper.errorDetailInfo(e, "支付宝转账异常:" + extract.getId(), "");
            LogHelper.userErrorInfo("提现:支付宝提现异常:" + response + ",提现信息" + GsonUtil.toJson(extract));
        }catch(AlipayTransferException e){
            LogHelper.errorDetailInfo(e, "支付宝转账异常:" + extract.getId(), "");
            LogHelper.userErrorInfo("提现:支付宝提现异常:" + response + ",提现信息" + GsonUtil.toJson(extract));
        }
@@ -656,7 +643,7 @@
    public void processExtractResult(AlipayTransferResultInfo info) {
        if (info == null)
            return;
        AlipayFundTransToaccountTransferResponse response = info.getAlipayFundTransToaccountTransferResponse();
        AlipayFundTransUniTransferResponse response = info.getAlipayFundTransUniTransferResponse();
        Extract extract = info.getExtract();
        AdminUser admin = info.getAdminUser();
        if (response == null)
@@ -688,7 +675,7 @@
            payInfo.setState(2);
        }
        payInfo.setOrderId(response.getOrderId());
        payInfo.setOrdertime(response.getPayDate());
        payInfo.setOrdertime(response.getTransDate());
        payInfo.setInfo(response.getSubMsg());
        payInfoMapper.insertSelective(payInfo);
fanli/src/main/java/com/yeshi/fanli/util/AlipayUtil.java
New file
@@ -0,0 +1,71 @@
package com.yeshi.fanli.util;
import java.math.BigDecimal;
import com.alipay.api.AlipayApiException;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayFundTransUniTransferRequest;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.yeshi.fanli.exception.user.AlipayTransferException;
import net.sf.json.JSONObject;
public class AlipayUtil {
    private static DefaultAlipayClient alipayClient = null;
    static {
        String privateKey = Constant.alipayConfig.getPrivateKey();
        CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
        certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
        certAlipayRequest.setAppId(Constant.alipayConfig.getAppId());
        certAlipayRequest.setPrivateKey(privateKey);
        certAlipayRequest.setFormat("json");
        certAlipayRequest.setCharset("GBK");
        certAlipayRequest.setSignType("RSA2");
        certAlipayRequest.setCertPath(
                AlipayUtil.class.getClassLoader().getResource(Constant.alipayConfig.getAppCertPath()).getPath());
        certAlipayRequest.setAlipayPublicCertPath(
                AlipayUtil.class.getClassLoader().getResource(Constant.alipayConfig.getAlipayCertPath()).getPath());
        certAlipayRequest.setRootCertPath(
                AlipayUtil.class.getClassLoader().getResource(Constant.alipayConfig.getAlipayRootCertPath()).getPath());
        try {
            alipayClient = new DefaultAlipayClient(certAlipayRequest);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
    }
    public static AlipayFundTransUniTransferResponse transfer(String outBizNo, String account, String name,
            BigDecimal money, String orderTitle, String mark)
            throws AlipayApiException, NumberFormatException, AlipayTransferException {
        AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
        JSONObject json = new JSONObject();
        json.put("out_biz_no", outBizNo);
        json.put("trans_amount", money.toString());
        json.put("product_code", "TRANS_ACCOUNT_NO_PWD");
        json.put("order_title", orderTitle);
        JSONObject payee_info = new JSONObject();
        payee_info.put("identity", account);
        payee_info.put("identity_type", "ALIPAY_LOGON_ID");
        payee_info.put("name", name);
        json.put("payee_info", payee_info);
        json.put("remark", mark);
        json.put("biz_scene", "DIRECT_TRANSFER");
        request.setBizContent(json.toString());
        AlipayFundTransUniTransferResponse response = null;
        response = alipayClient.certificateExecute(request);
        // 成功转账
        if (response != null && response.isSuccess() && "10000".equals(response.getCode())) {
            return response;
        } else// 转账失败
        {
            throw new AlipayTransferException(Integer.parseInt(response.getCode()), response.getSubCode(),
                    response.getSubMsg());
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
@@ -8,6 +8,7 @@
import org.yeshi.utils.CMQUtil;
import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.qcloud.cmq.Message;
@@ -185,7 +186,7 @@
     * @param extract
     * @param response
     */
    public void addExtractResultMsg(Extract extract, AlipayFundTransToaccountTransferResponse response,
    public void addExtractResultMsg(Extract extract, AlipayFundTransUniTransferResponse response,
            AdminUser adminUser) {
        String content = new Gson().toJson(new AlipayTransferResultInfo(extract, response, adminUser));
        cmqUtil.sendMsg(EXTRACT_RESULT, content);
fanli/src/main/resource/alipay.properties
@@ -1,3 +1,7 @@
appId=2018120462438303
private_key=MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCr3zyepJWxJxRFfzJ3LX0Sb/HLiLndOmdcufUzcHuQ2qR0vSFbQ8GUe9IMkSsjWCVFtOGO1rc8BRuZoxapP6g8TrhPpMjqkxGJ0kiRIJ5OM76Czqcd8xy4gtqHPXHybr76wlOTeHmfQkABTPsO8H/IgLkafa7Gs2fdDMswn+2zlkk6ghyU8HptyDnnjhW2CXBGZnqUHDv894eO6q8F7abaabEjzssQykC6y8IoYngziy0zYk89wr+ZfDH7j9zKNOLXWfiN1xz8+Bjdu8gybAqKZjsujP9pzUuUTgU+zuvBi/wL12HQVqQHq/7wrXNUBJt3fcwquL4JokaKD6jy2O5dAgMBAAECggEAVxP/bpEMlniqOJu9Qcx2NcUpyGk5YfCZNc2xgaJXuIhOEidQoyCtD0G8pklWhc2+9JY0QV5f77TWyvxqGs35urRXhWKDuPVSSXWU9pKEIjLtLvDskqv9vS3u8d4bwSyC7iFOnsTHOf0i2IXcHTGUTE2LevR6fImg8cntmHEuyXFh4CmhoK1j0eBL5oXyQJJ+IXjp6ihwHbhX9h5IKXct5esmcL5hC77x3nyhIEA7sT/UfQH6vMsOHj0Ie8oju56ePQi7fQfGkOVdXQWCmusrPoqinmsgRPBB6N0uvGy33nscPjc00T0wNDiTOuRR5vS0H8N5WNorUzeMH1hsyE52sQKBgQDjf30UspjBO66vmJM7mjBl+5IAJcXXQotJGbOX1yr0YsUo4QbR+2QG8xJDtR0XnXgbhHZ97sPGcDKc7Wb8hI6hkl5fjQVQ3SKcyOIYSkFUcLPNlK8KjWvCgbGesfWAWopzkpEmvy+BtCOG+iQXtzKAOa9YCPn3uvzanBtgdKKhewKBgQDBZ6nyjl+1AdW1zTE/Rjc8CXUQqHuhV6PN1+KCuPVHcf2v3BwPFjODSncpK/11q0u9LRkXmgPatmqPSC3/xtGSAqeWHxwX3ILwur7cCP9VhzmW4yDrZIDQ0/OmKPa+7B4pghlGIo/S13WJi7YhhCjldBZc9/32tvxFa1gUToJMBwKBgQCYwRDWpfklvpJT+6nY2nZm892b1cEbAeaOhgBuEx8Xi36BLV+r/RW0COCZr/HB2o08RNxfQMQZ6VpCvrFpGwS+fo55sDICkwlbpxMRZkKplSdWAeDqv/y8VONUAIAs2B6g7agjETqv56n3RtyXQ/5X1OPkw9o8OkTv8OP9BzPwIwKBgHkoFoeTdxMuPhGwpDwuIWXjyskPsrsE6uGFbylS8py6JSDos08kKksB+Bn7q8Dt+Pleagyl9+ooQiLWJbLIevqL3S4m+PNduU1Sv0OaA1Ix7vq9+B5eDHBFhqm9ma1Kvy5jiK+t8Qk03jW3JvZiEziCe4vr8tV+FhTqxPebovY7AoGBAMD2Q5nxLO1ai68zdL0iWdtT8W7ETQm8jd5RsB+fulMMulQOiowIe7L100XT/Ni+z4XFhQrhr9JHkTLu6+pMdwJtJKZENWz0nec7QhhplcxL332XtA78ZzIjaikMn/WggDeCSLJL/qQEQL5YBdDpQg1wWyW3j3hPAjx7ebhb374A
private_key=MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+x9VLP7eZ0sHVjkgNYMnqEP2CrDI+BdW7Il2o1e5Wp0o3GoJBkJH29SpUPQoWUDM3JoILzXPnlS6QeCzfPG3ROJyXlWjp7vNzGs7oWGCbsYac/bweV9DsxnEO5xqYRKUInLL+SoqepxUPYTFxroh5E4ZVWLWBHC0bFCZxiwy9jZhpbNcTAAp/WRJoCpbV0YAw+4pZQmV99HvzwfNKZtUWQWnyKglI3RogYJphFhB91e0X+phZzuE5WzgT2mGOGqw2w3DVK7YDgIX5nAI73Z8zlkDfSys3tB3KibuVMuR6/3yt+G867vhjfebonTHyqKpCJSuyFRfR/WR4lMx4+3aZAgMBAAECggEBAIudAeJHhrzzFxaJQQFJS3oXZO4zxbDN5FNGGvRrWjffxNf+dkQ04Byx3YA4CyG5H0HE1HZ+q8tVyPXAfFYBivwJSc9Eb7qCO3aIr9IomspVaAWLSheKfEJKFoKpbTTxRzS+N98P/dGMxES1A9IFv6mbODtM58bML9YZMOj2sSQlK+g0TKW5SipjWwnmSlEXDDYLMKWRR3zec1FBOB2DR+6Ajkz0+ml4gmlbQe6WNRGPZ7mhW+VLjIbZNd8UYwnRttCJ8G/vWP0xdsyB0wZ5jFhVQsZuqlxCL+LJjsB7o16MsH6r9L8QkGADeo0aICFhsFYmujX4pTBQB6oOQoj07YECgYEA//fOPwTN1hsvUHblXWChn0p5e7Z3S2hxhpnbL0og4Mx+TTQMQ5XgzUCwwFacV5Ctk/lxOepgu8+X928+IeJjPAFZzxLLb4iMpfwzxYhbRli32blNQEH2aXPwnGreXJPAjRAjDx5WbdYOcVyWQRk2MpWSI3eFzxSXS/uaSf6P9LUCgYEAvs3w0Ab9jal7awPMmEKT2+CIbUKTLXsRikxXMX8UsIKYo/5zeqMKwXDjE63agkTNLAUqaYuIA5SFDYbgpXuF5nta2gflgFw8k1mkBdPEhUFYeNmh7tSJgAtObWKOaiDO4/DdmUYd50GIbSGsbUPZ9/PZcju9eJqcf5peaI/m7NUCgYEAgQhdet0kGjN4BXr6IrlMoCz90oRn3KaY2/6BRHR84HWVkbuUFxndyfo7X6oJhAbVyYtsLYLeIq8Cb2QvkQs7dQtFR6K01NOj+ySIwKH9SRf+Dg5gR+04l24vs9oXn9mHrlSdJ8jmTtYiT7kZsVVRQeyuT5y34m0B2/bIj1Z5ISUCgYBXmSTd3Ne7mfvXfb8IiEhpwgPgZZg8YSwEWlgNmVJeVxbM850AyKm/dZxLBJ41AHFRrG10V2LygdU0CKBKWRN4ZVmoj8eFztLgs17ibf7jTsTXdtMpWtpltssi3QSVJMrXS1XxcId6DFQeBj+rSmNfuswx7ctm+1SuIKkHSEm0oQKBgCPwgwsEw4J5yN5J0UEcXbZt9eCNfG43e3NcvsUITxueH05IiHACMw4e6STdgqPMSaiDWb7/d6OTG0Ps1JjuWE4/2i1OeVA/ytznskDw/Y7AH+6Z12x1NPeDYJHOH04K9cV1JQvQoCoQ03ffhHsIU7c7K3pLmLwlHc9IU6tkkcU1
public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvsfVSz+3mdLB1Y5IDWDJ6hD9gqwyPgXVuyJdqNXuVqdKNxqCQZCR9vUqVD0KFlAzNyaCC81z55UukHgs3zxt0Ticl5Vo6e7zcxrO6Fhgm7GGnP28HlfQ7MZxDucamESlCJyy/kqKnqcVD2Exca6IeROGVVi1gRwtGxQmcYsMvY2YaWzXEwAKf1kSaAqW1dGAMPuKWUJlffR788HzSmbVFkFp8ioJSN0aIGCaYRYQfdXtF/qYWc7hOVs4E9phjhqsNsNw1Su2A4CF+ZwCO92fM5ZA30srN7Qdyom7lTLkev98rfhvOu74Y33m6J0x8qiqQiUrshUX0f1keJTMePt2mQIDAQAB
account_name=重庆快省科技有限公司
app_cert_path=alipay/appCertPublicKey_2018120462438303.crt
alipay_root_cert_path=alipay/alipayRootCert.crt
alipay_cert_path=alipay/alipayCertPublicKey_RSA2.crt
fanli/src/main/resource/alipay/alipayCertPublicKey_RSA2.crt
New file
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDrDCCApSgAwIBAgIQICAGCcf9EalgJMEEuqGAWDANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDIgUjEwHhcNMjAwNjA5MDMwMDU0WhcNMjIwNjA5MDMwMDU0WjCBjDELMAkGA1UEBhMCQ04x
JzAlBgNVBAoMHumHjeW6huW/q+ecgeenkeaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwGQWxpcGF5
MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWPuC0yMDg4
MjMxMzUzNjU2NzQxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHWEgMOlGb/VbN5p
cSXv+DLX2EJ43p93zP9eyao8ghj1LcBSf5Sx4gYpuySKZ0oimILb+ErOAlDzcXwvMxcVTK0W2M6U
aUW0Vh71vOorqggOGqMJsSDpV1hvYrUSCYu1Qe5KtV85w+Kw4dImC3fayIaxUMhwySuniQ/uQtez
RHn/vwXrGigu3Y2tRgPMUptqA14EYEfhpm3KjLXsqWdJBO6ziiqILHJtow65QzkeoLM2ZHpYH6oY
y2rIj/iSIpos18MKWvr4XrqSptJYIQp+G3dwqjlt2kk4bpgAXQSR6wKAtGTkAYvlOSpkQXVqI3tI
GZO3ZM9bFQurMBoJFX790wIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcNAQELBQAD
ggEBAEo++sORTzbqKf7CyLEcmg+RnX0Ez2aUOftQPkr2XGnDwNon4Air1c+j3snsRhWyTC2TMt18
qCPotlr63Zk67agPaGfrKGk7bDxc9QA/kRrctl4+0h4Jh28jgMLQ4ibNgjkGWmMMwSK4D+19k/vt
hjlGk9LtTc5lsqgm2GTvifC9C4E0ZDiK+rGz/Mo048TiKNhywO8EKWXvbT9n359rbgKoXMJmKWZQ
bWdMg8NsP/X+p6mgRAtIJNSLyl/ZzzD2J/NpnHlQxq8/OFnS2EFcs0gN71xDtX+KWp+BJHBMwPM4
asjhldpscYgoyx2c/D5CinNgMj7qfmORBQ37shpcKDw=
-----END CERTIFICATE-----
fanli/src/main/resource/alipay/alipayRootCert.crt
New file
@@ -0,0 +1,88 @@
-----BEGIN CERTIFICATE-----
MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG
EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw
MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO
UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE
MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT
V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti
W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ
MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b
53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI
pDoiVhsLwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj
YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj
YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0
MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV
BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j
aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk
rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2
xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp
dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6
vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl
YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1
Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H
DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98
SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG
PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe
9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC
AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90
tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy
nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf
tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq
JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3
IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW
05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41
T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI
kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop
PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N
1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y
jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02
77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi
kT9qhqn+lw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG
EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0
WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE
CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp
YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU
WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt
rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ
4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2
zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg
wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH
Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF
BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM
E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg
MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq
MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp
bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv
b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV
nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5
4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg
wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw
WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN
z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g
KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA
uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF
MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp
emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3
U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I
UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn
DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU
1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX
Yf4Zr0fJsGuv
-----END CERTIFICATE-----
fanli/src/main/resource/alipay/appCertPublicKey_2018120462438303.crt
New file
@@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEqzCCA5OgAwIBAgIQICAGCQ97tY3/xzVrWsTnITANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
YXNzIDEgUjEwHhcNMjAwNjA5MDMwMDU0WhcNMjIwNjA5MDMwMDU0WjBzMQswCQYDVQQGEwJDTjEn
MCUGA1UECgwe6YeN5bqG5b+r55yB56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZBbGlwYXkx
KjAoBgNVBAMMITIwODgyMzEzNTM2NTY3NDEtMjAxODEyMDQ2MjQzODMwMzCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAL7H1Us/t5nSwdWOSA1gyeoQ/YKsMj4F1bsiXajV7lanSjcagkGQ
kfb1KlQ9ChZQMzcmggvNc+eVLpB4LN88bdE4nJeVaOnu83MazuhYYJuxhpz9vB5X0OzGcQ7nGphE
pQicsv5Kip6nFQ9hMXGuiHkThlVYtYEcLRsUJnGLDL2NmGls1xMACn9ZEmgKltXRgDD7illCZX30
e/PB80pm1RZBafIqCUjdGiBgmmEWEH3V7Rf6mFnO4TlbOBPaYY4arDbDcNUrtgOAhfmcAjvdnzOW
QN9LKze0HcqJu5Uy5Hr/fK34bzru+GN95uidMfKoqkIlK7IVF9H9ZHiUzHj7dpkCAwEAAaOCASkw
ggElMB8GA1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQWBBQhB0deYlZ4jgMS
BvhRouHKxOXxbjBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcCARYcaHR0cDovL2Nh
LmFsaXBheS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgwJjAkoCKgIIYeaHR0
cDovL2NhLmFsaXBheS5jb20vY3JsNDIuY3JsMGAGCCsGAQUFBwEBBFQwUjAoBggrBgEFBQcwAoYc
aHR0cDovL2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0cDovL2NhLmFsaXBh
eS5jb206ODM0MC8wDQYJKoZIhvcNAQELBQADggEBAAIuuwxjgMUmDfOH0D0QHAE6J06pt1nhFcb/
SMGsWVZgI71vV+v/kKywpczpcOyBMCN05WphITqX1RMJTB2CPIbYWRcf8Q3aoKZ7nkd8YCGar8Nz
BtsPDloyE5NprOfFB63stg46KWYDull/62qwfpiyXgvi4H86ODs+icvk1yLq7jxvPyhhSIZbaLdM
esquQLKZK08jmD28ASLYirI4uhwLYcjdwrWzIZx2mXdE7d505R36poShSSaGPS9nWgLnJTq5at7N
6vCC44rVoe6fxcMbfEfvEJd/jkA7O5VuELm0VeDEmFWEZLlCT4sO+/Xqqh9K4HJekLxzNG9xMDDX
4yM=
-----END CERTIFICATE-----
pom.xml
@@ -566,24 +566,32 @@
            <version>2.11.2</version>
        </dependency>
    <!--     <dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk16</artifactId>
            <version>1.46</version>
        </dependency> -->
        </dependency>
        
         <!-- 支付宝相关 -->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.9.71.ALL</version>
        </dependency>
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-easysdk</artifactId>
            <version>1.2.1</version>
        </dependency>
        <!--StringUtils-->
        <!-- <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8.1</version>
        </dependency> -->
        <!-- <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId>
            <version>3.8.1</version> </dependency> -->
    </dependencies>