From 7865a1010be2f95faab151d99ecdb095f44c2a08 Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期五, 14 七月 2023 16:30:34 +0800
Subject: [PATCH] 修复了积分商城详情页面的门店列表查询;兑换支付todo

---
 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java |  164 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 87 insertions(+), 77 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 2d2a81b..4550b2e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -7,6 +7,7 @@
 import com.alipay.api.CertAlipayRequest;
 import com.alipay.api.DefaultAlipayClient;
 import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.domain.AlipayTradeQueryModel;
 import com.alipay.api.request.*;
 import com.alipay.api.response.*;
 import com.dsh.account.util.httpClinet.HttpClientUtil;
@@ -29,6 +30,7 @@
 import java.io.*;
 import java.math.BigDecimal;
 import java.net.InetAddress;
+import java.net.URLDecoder;
 import java.net.UnknownHostException;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
@@ -41,13 +43,13 @@
  */
 @Component
 public class PayMoneyUtil {
-    private String aliAppid = "";//支付宝appid
+    private String aliAppid = "2021004103650328";//支付宝appid
 
-    private String appPrivateKey = "";//支付宝开发者应用私钥
+    private String appPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCUMAeeFUrZrc98qsBYCwC7ptFnPBqU5IIDMWMznjjNLaXd393vxvbl4xNZLOknKPYUdG/Xm2DgmqAvHawnfsyrm387V60M2XEA4PMTo0kZDWXhYPM7JhtISG0sTYRdclwew36lwkqQ3RnAc12+Ntx7Q19+kITq2vOX8vnBG0HhkFiiPVIeavXnrQ30robnTQSJU+FE9Umwm84k9fsLXtD38rsCVP3Seo2ubAiwDxC8TEHww7cpMIun+ikJJSSxFABkdRMFb6rx40zvjQoGIRtCpfftnMikJhaRurdjeJkqDwBBzDfAM0wB0v5V7K41VNvoVKcgfvxWEAuzC9w0VYdVAgMBAAECggEBAIGGNbJMRB9eF8SM7xBFlb9vgQrt8wH/dVBbI61jd5yHcLotSayiSP4I68l/Qs9ysxyP5Y4cBqJrJOXp1qay4yx//saczOo1SNuOw4h/qY3XMxy7A/7IQQJ+I8acfry7D5/oGlPCLjDOwQqBDAgNpcuryNU0dqlc9Zvzya+rJnuDspl2FvCbXkQBiihQCG+oQXvAWivRQquW1MmpqhSohevpABJPW4SSSIJhHyoC8GEIcDcOhZ9rLX1e8qndhS7xEBi3sGTunyaiv4zJtA5jHzQ8pH737+OhqdcMsr03cWfiKIlLGCC28ZX3X/fqqfByws5lvxViq4UIAP/et7VVkkECgYEA/I+MHPo1UgGBr1rDA9aP1ESpaDb3tC6HzVgvHid/Lle+zSvQiZ5q0BvqQogj3GU+FIfVtStC4wjINTKyyeoOWV7YTKcToUJPPCF98VCZsevY3tp2Z1rxqU90yjccNSPtwjwH9RQ8D96eU+4HByrh5qwFU3p2aNOIbv4B8z57xOUCgYEAljSghLWnLmSZcz+2KEBcy5Jg92lZZfQoNd88hBR2dnccQbK2yPanPrzsmqB76017x4t7JV1X3ssI0b1f42hF2r9gwC5AD6/GhTCRoiZIMuCz+EBexWBiG3IJLN7yh6CYYEVvKd+3iCkneSxxT4Xqo0AWlMnoV2lcu0fLV0KvgbECgYBLfYiu3Kb1ZRfjVyi1S/vfwco1KUDu7X2QBkzHIZ0lN/sDDpadm+lnXQCvdEvrw6NDtbpOFak/fU+Cfy3rpnc1hWD3wHTgnZZbbdNcPvBBuzIuonQDvq4/Ik3RZ5mZ1Kxrg1AJlEvDnpIKmjoljU7KiR5qbk9YU+oS6v+gOkv6dQKBgGAxtfcnqriQXqGrVMo0ZflNdmIcis87bSELJWNlA3Tc1TDR9jN/mx4XueNREetgxPvHPQdx3xtkpfJEuIsXtVzhIWISfJ5PMPENaMcSgzxqIXfEKa14C3yOLIgbA/GODOfir81+Y7iEuq3ko3CNT/Zazdtd7zlD1cpusS/iGioRAoGAE268pgJfIJkUY5qkQHClzv/OBUlhDzGUowfYPwhZ2TNISfm0zpWq1to4nIHVHDPTsVs5wEgGPO3fYzd284/lU180/NIqHa9cwHI9zNO3E8X8mP8H1WUaxon64fV6UQGXzMvd4l7v1GYzEMkNVqwPmpAwrlLzQOLpDe/dGY5lvJw=";//支付宝开发者应用私钥
 
-    private String alipayPublicKey = "";//支付宝应用公钥
+    private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlDAHnhVK2a3PfKrAWAsAu6bRZzwalOSCAzFjM544zS2l3d/d78b25eMTWSzpJyj2FHRv15tg4JqgLx2sJ37Mq5t/O1etDNlxAODzE6NJGQ1l4WDzOyYbSEhtLE2EXXJcHsN+pcJKkN0ZwHNdvjbce0NffpCE6trzl/L5wRtB4ZBYoj1SHmr1560N9K6G500EiVPhRPVJsJvOJPX7C17Q9/K7AlT90nqNrmwIsA8QvExB8MO3KTCLp/opCSUksRQAZHUTBW+q8eNM740KBiEbQqX37ZzIpCYWkbq3Y3iZKg8AQcw3wDNMAdL+VeyuNVTb6FSnIH78VhALswvcNFWHVQIDAQAB";//支付宝应用公钥
 
-    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,83 +75,83 @@
      * 支付宝支付
      */
     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");
-//        //实例化具体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);
+//        //构造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) {
+//        }  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;
     }
 
@@ -256,11 +258,11 @@
      * @throws Exception
      */
     public ResultUtil queryALIOrder(String out_trade_no) throws Exception{
-        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8", alipay_public_key,"RSA2");
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8",alipay_public_key,"RSA2");
         AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
         request.setBizContent("{" +
-                "\"out_trade_no\":" + out_trade_no +
-                "  }");
+                "  \"out_trade_no\":\"" + out_trade_no + "\"" +
+                "}");
         AlipayTradeQueryResponse response = alipayClient.execute(request);
         if(response.isSuccess()){
             String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
@@ -1109,8 +1111,16 @@
 
 
     public static void main(String[] ages){
-//        PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
-//        payMoneyUtil.weixinpay("测试", "123", "12.5", "");
+        PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
+        ResultUtil ce = payMoneyUtil.alipay("测试", "", "", "121456457", "10", "http://123.com");
+        System.err.println(ce);
+        ResultUtil resultUtil = null;
+        try {
+            resultUtil = payMoneyUtil.queryALIOrder("121456457");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(resultUtil);
     }
 
 

--
Gitblit v1.7.1