puzhibing
2023-07-12 aa43a92c7ec9053dbaef92fe5ccb3011b670442c
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -41,13 +41,13 @@
 */
@Component
public class PayMoneyUtil {
    private String aliAppid = "";//支付宝appid
    private String aliAppid = "2021004103650328";//支付宝appid
    private String appPrivateKey = "";//支付宝开发者应用私钥
    private String appPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCSsBy+F6k1CTL4b0qQssuhf6x2aeqSn2eBmv0mJALK9iqRgA9EG0buYVnV/tsNGYvKCgX56onb+Cv+f9/TShZzp0FVGemIcgPhrjK0WW2RJBMq9EmPzc2x+7SkygKO1H6S3CwWhYdc7TCNL9OnFAHSEa+FfGNWXg0jM0mSXI7/me8icbWZd5mdiLTV+OWx5ONAE0GfVPhUPnb9faunE6gvZCamZnS+H6ACzzidO7ksVkZq5PBsI3Jew2oAcAJSktsljMZNqDrVknzUbvKBXSw80zZD66i5twx8+8els5VLo6qu9PD80l+K430r2eMqxzXm9mRXZSPSxoOm5c+0cNiHAgMBAAECggEAR+EIlJWfkp+JXHecgD88zUx0xCmuil6WJ8o81h27SJ1LyrSHxoXfQhxuGxChYk/sUfqLZyVonGOFm1Yp5a1eRxnkR8FE0FmeUU49Bmbz67VTty6xhUgBzX9by4w5qKezxl8hM4AHDqAjtGuFOU/yfG+yJKUJQF8h7OfK22+DmveglMt+W8buCf+IJahMyxYLWnA5eG8X1KjOC5PnpQEEBBB3g8fJpdbcoUteGGKzGhkSMKXuM//m2T8bU1sNZytnV+rDblg4E9IZIJwhory7WBxDzykEGpbM+RwJ6E6bAp6MXMUKbed1Uf/40d8C5yItWhjUh1a+ZDS0XbsMP+C/IQKBgQDmYhUr5wcqNQHqpKZWd0l/UZyR+Ykjk7WNvWFQIoMZmCWCGcepyQHAdXpk29evgTqcF9v9dlGDc7waFc93L2uxEYOaSk5UK8Sf6yoXHDocKwauY5DDvAuyy2b9QQDNqisi/MN872RaefBILz/DYN2ZbTtp8i/udSaRl01h6EXQfwKBgQCi/5+eIEcQZTa4zhq5CXKKVbcU2Y8uVsM1tgLaxOwQFr0Xd0ckQiJdkN7qhjgeSuOz0BOXo1xovzN4ZIKISB5sZDadgQCZi7O1YeKc8ElLPnV/WfKBGAxSBpURyMUOYH1mno5QG+QiGmTgH0/OhmqWfp+dVWHNwlx0EwMOpCBz+QKBgBRuVlpSXrxLfyQD/gxk/8uevTfk3VieXNd5GAw3Q1EdwRXMm3xfKxyaToRrSrFx0HTPWN8dgxUZSnE1xfRX7EEDwJwKQvAMAZ/9BvqNskmVNz537fqtzovIphWHkj6q/LBZoiyOPmQXtEtyhUEacgyNN1up8r4+/XCj7mTkaGyZAoGBAIx+GG6LE7WmB8yymYX0Bq4Fw5BNFYSzc/7PqxY1teMINmQLg15VQpmzTPCIT8aMdkd+ieSiAfynEQ4sU/ZzcwWqOwj3MDUonPUyMcljs0kPxObH+KYcvEHXOpXhnzgNIwlYkQGriK98YIZtdrRkV2rwKVPLTEm1xUqnOHNeNDrBAoGASnewOvqzZQVnzbGYur7nbEBQaMKWP2IYKozr57+EHQ40QFyTzFUx+jhxnQ2TIoXQEbozNp11eWGm9TZenHxUbOZmAmPKGq5DQzBgwj/V9QPNPpulCEkgjEqIn0gdCNaEilZXTpdsLPxmZ/J9IxGJt+y/5OYhbIwfSS9gbvVEook=";//支付宝开发者应用私钥
    private String alipayPublicKey = "";//支付宝应用公钥
    private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwRiMpvwg288WxCwJTBxeqQcFlkZR1p+hZn3/GshrYgRKhGu34IfnRbEnb70YJBq0N1AmdJRU4tYMS1qqFcvKdXnUrdPz+yx4F/uWv+Vz7ftzAEZ1JJh1s9IhJ1ayE4NNWBczj12cIrinUcIHNoITmPFSpcizk9jGnzZZDK4u2oZQEontseu6QyLoc4bBXgy3J1Cux7Q3kO0m3unr0j14PSOAY6kMmgPOyAyuP5Vl655OFJz1x4YDiXs6c+fHLzEZh+Bmm4kCedE7PeJ69xpxSo+i0qia9mhiR4L3LmX7yAzDffHfSQHdxzN0UR34ZF9ChZi/tGOeGABbC35tzGiWWQIDAQAB";//支付宝应用公钥
    private String alipay_public_key = "";//支付宝支付公钥
    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
    private String appid = "";//微信appid
@@ -73,69 +73,42 @@
     * 支付宝支付
     */
    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl){
        //构造client
        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
        //设置网关地址
        certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
        //设置应用Id
        certAlipayRequest.setAppId(aliAppid);
        //设置应用私钥
        certAlipayRequest.setPrivateKey(appPrivateKey);
        //设置请求格式,固定值json
        certAlipayRequest.setFormat("json");
        //设置字符集
        certAlipayRequest.setCharset("UTF-8");
        //设置签名类型
        certAlipayRequest.setSignType("RSA2");
        //设置应用公钥证书路径
        certAlipayRequest.setCertPath(app_cert_path);
        //设置支付宝公钥证书路径
        certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path);
        //设置支付宝根证书路径
        certAlipayRequest.setRootCertPath(alipay_root_cert_path);
        //构造client
        AlipayClient alipayClient = null;
        try {
            alipayClient = new DefaultAlipayClient(certAlipayRequest);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest ();
        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel ();
        model.setBody(body);
        model.setSubject (subject);
        model.setOutTradeNo (outTradeNo);
        model.setTimeoutExpress ("30m" );
        model.setTotalAmount (amount);
        model.setProductCode ( "QUICK_MSECURITY_PAY" );
        model.setPassbackParams(passbackParams);//自定义参数
        request.setBizModel ( model );
        request.setNotifyUrl (callbackPath + notifyUrl);
        try  {
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
            Map<String, String> map = new HashMap<>();
            map.put("orderString", response.getBody());
            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
            return ResultUtil.success(map);
        }  catch (AlipayApiException e ) {
            e.printStackTrace();
        }
//        //实例化客户端
//        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
//        //构造client
//        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
//        //设置网关地址
//        certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");
//        //设置应用Id
//        certAlipayRequest.setAppId(aliAppid);
//        //设置应用私钥
//        certAlipayRequest.setPrivateKey(appPrivateKey);
//        //设置请求格式,固定值json
//        certAlipayRequest.setFormat("json");
//        //设置字符集
//        certAlipayRequest.setCharset("UTF-8");
//        //设置签名类型
//        certAlipayRequest.setSignType("RSA2");
//        //设置应用公钥证书路径
//        certAlipayRequest.setCertPath(app_cert_path);
//        //设置支付宝公钥证书路径
//        certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path);
//        //设置支付宝根证书路径
//        certAlipayRequest.setRootCertPath(alipay_root_cert_path);
//        //构造client
//        AlipayClient alipayClient = null;
//        try {
//            alipayClient = new DefaultAlipayClient(certAlipayRequest);
//        } catch (AlipayApiException e) {
//            e.printStackTrace();
//        }
//        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
//        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
//        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
//        model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
//        model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
//        model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
//        model.setBody(body);
//        model.setSubject (subject);
//        model.setOutTradeNo (outTradeNo);
//        model.setTimeoutExpress("30m");
//        model.setTotalAmount(amount);//付款金额
//        model.setTotalAmount (amount);
//        model.setProductCode("QUICK_MSECURITY_PAY");
//        model.setPassbackParams(passbackParams);//自定义参数
//        request.setBizModel(model);
@@ -150,6 +123,33 @@
//        } catch (AlipayApiException e) {
//            e.printStackTrace();
//        }
        //实例化客户端
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
        model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
        model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
        model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
        model.setTimeoutExpress("30m");
        model.setTotalAmount(amount);//付款金额
        model.setProductCode("QUICK_MSECURITY_PAY");
        model.setPassbackParams(passbackParams);//自定义参数
        request.setBizModel(model);
        request.setNotifyUrl(callbackPath + notifyUrl);
        try {
            //这里和普通的接口调用不同,使用的是sdkExecute
            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
            Map<String, String> map = new HashMap<>();
            map.put("orderString", response.getBody());
            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
            return ResultUtil.success(map);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
        return null;
    }