guomengjiao преди 4 месеца
родител
ревизия
89bc421e57
променени са 16 файла, в които са добавени 294 реда и са изтрити 52 реда
  1. 5 5
      ruoyi-admin/src/main/resources/application-dev.yml
  2. 43 0
      ruoyi-admin/src/main/resources/cert/alipayCertPublicKey_RSA2.crt
  3. 88 0
      ruoyi-admin/src/main/resources/cert/alipayRootCert.crt
  4. 23 0
      ruoyi-admin/src/main/resources/cert/appCertPublicKey_2021006116626014.crt
  5. 19 0
      ruoyi-api/src/main/java/com/ruoyi/api/controller/business/ApiBusinessController.java
  6. 8 2
      ruoyi-api/src/main/java/com/ruoyi/api/controller/line/ApiOnlineOrderController.java
  7. 11 0
      ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiShopOrderController.java
  8. 2 0
      ruoyi-business/src/main/java/com/ruoyi/business/service/IBusinessService.java
  9. 6 0
      ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BusinessServiceImpl.java
  10. 3 2
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/exception/OnlineOrderExceptionEnum.java
  11. 6 6
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/IOnlineOrderService.java
  12. 37 16
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/impl/OnlineOrderServiceImpl.java
  13. 12 8
      ruoyi-newwxpay/src/main/java/com/ruoyi/fubeiPay/service/FubeiPayService.java
  14. 2 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/IShopOrderService.java
  15. 6 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/impl/ShopOrderServiceImpl.java
  16. 23 13
      ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java

+ 5 - 5
ruoyi-admin/src/main/resources/application-dev.yml

@@ -196,7 +196,7 @@ wx:
         msgDataFormat: JSON
         version: develop  # release   develop   trial
   pay:
-    appId: wx3f5fa98c5edf8718 #公司的:wxd15dbb580e6f1cd3  客户的:wx3f5fa98c5edf8718
+    appId: wxcea8ce8b537d83a5 #公司的:wxd15dbb580e6f1cd3  客户的:wx3f5fa98c5edf8718
     mchId: 1703980824 #公司的:1640577480  客户的:1703980824
     mchKey: #微信支付商户密钥
     subAppId: #服务商模式下的子商户公众账号ID
@@ -222,10 +222,10 @@ alipay:
   charset: utf-8
   signType: RSA2
   format: json
-  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu0MRMUkCtq1dfJvYZaF6vH50pZzBM4erKKzgSz5T1OGkhXJARAWnV3YBJgtIODYjRntc1R7UO1UgY610gmer3lFGVcGbrLMpXGBwY2c8uMQ8vCSfeYLJbwTAD2vfTA3lvcoarKEw2NA8xT072y3aSItg7etf7PpVGhggkEpOu4Okze1rPaHIKmzVhrWJhd1VjToNMd5h1h+Pyy0Mw3GnyCbQchnl0WfgGNNV+ge7rFaNQCZumuxQeURjYA0LY+rUtznNX+X4pkcYcrVbBCFEsjs/Vm4THnqfSo0iUktbcl4hYkzMHiEl3EpZ0vSr4KRHdXGQZCOSFKuCeypzByykvwIDAQAB
-  certPath:
-  publicCertPath:
-  rootCertPath:
+  alipayPublicKey: FF4qAt4wk6JgmLwBNbcd9A==
+  certPath: "ruoyi-admin/src/main/resources/cert/appCertPublicKey_2021006116626014.crt"
+  publicCertPath: "ruoyi-admin/src/main/resources/cert/alipayCertPublicKey_RSA2.crt"
+  rootCertPath: "ruoyi-admin/src/main/resources/cert/alipayRootCert.crt"
 
 #快递100
 kuaidi:

+ 43 - 0
ruoyi-admin/src/main/resources/cert/alipayCertPublicKey_RSA2.crt

@@ -0,0 +1,43 @@
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQICUSCJV3CWqSvO5XqLdHszANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
+BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
+YXNzIDIgUjEwHhcNMjUxMjA4MDIzMzAwWhcNMzAxMjA3MDIzMzAwWjCBjzELMAkGA1UEBhMCQ04x
+KjAoBgNVBAoMIea5luWMl+Wwj+W9qeWbouenkeaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwGQWxp
+cGF5MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWPuC0y
+MDg4MjUxNDE4Nzk4ODUyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhmTN6HbOHUjz
+UHdP/qKgNuIhxW067jNKqwr1lD/NTu8PoSAyZ6nqtUM/+jgLwgrlcb+jLGCgJlH27SNoa8x6aA+R
+oIGHmT9qAcjfFi58eCfzug+U7Lj1dAw7OaX+w42o+4IUHgca4o10VdzX7ucaZJ5GsTE9JEUBowfp
+0AB8B7uOK+rz9kOZq7gv+IhqrtsSbojfvNpyjgy1AUCinkVnfOYwRtnuE6R2TB5dQJrWLLoukORM
+QUqDtYoKo8mhoFvpZbWmRd7b7C2SLE88HZBrKu/4Tnc5I1zudP0ROM9VYB9Yz7PJ5BcrFeVlK/5e
+g36dYVQMANBX2uMbnB4EaJcuyQIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcNAQEL
+BQADggEBAKnoEz0YfY8zqnM2owOJH9mToekgYt7taTcMl+Pqe97bgrfW50qoctQQy9HUYIuKPISb
+FRnHbIR09iHTBTbt3/c3hyvDl7J+1yfuteA1ND4SCZiIqk+KYoTtAUVchTitqT9V9wbZhosfT97O
+wl+RIVV1/HjUhoyLxmmsxebQgOFljYtAG4MnuFcTg8Mdyhy3JQCbiQHvzGCwKdyRk+i/Cac0U6fQ
+p0a2lczQeiXT15JUFz9QtHI5YpZrhj6kBfaSEB2dVyh4HnaBkb32lVVUgjxaQKc+Y4OZhe7GrYrL
+8qiYBgkflPsCQCgvCyoAc2Pm8/TtWvwL4yLJhCe8RpiJL3o=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE4jCCAsqgAwIBAgIIYsSr5bKAMl8wDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAU
+BgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEw
+LwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMy
+MjE0MzQxNVoXDTM3MTEyNjE0MzQxNVowgYIxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1BbnQgRmlu
+YW5jaWFsMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE5MDcGA1UEAwwwQW50IEZp
+bmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDbGFzcyAyIFIxMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAsLMfYaoRoPRbmDcAfXPCmKf43pWRN5yTXa/KJWO0l+mrgQvs89bA
+NEvbDUxlkGwycwtwi5DgBuBgVhLliXu+R9CYgr2dXs8D8Hx/gsggDcyGPLmVrDOnL+dyeauheARZ
+fA3du60fwEwwbGcVIpIxPa/4n3IS/ElxQa6DNgqxh8J9Xwh7qMGl0JK9+bALuxf7B541Gr4p0WEN
+G8fhgjBV4w4ut9eQLOoa1eddOUSZcy46Z7allwowwgt7b5VFfx/P1iKJ3LzBMgkCK7GZ2kiLrL7R
+iqV+h482J7hkJD+ardoc6LnrHO/hIZymDxok+VH9fVeUdQa29IZKrIDVj65THQIDAQABo2MwYTAf
+BgNVHSMEGDAWgBRfdLQEwE8HWurlsdsio4dBspzhATAdBgNVHQ4EFgQUSqHkYINtUSAtDPnS8Xoy
+oP9p7qEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIB
+AIQ8TzFy4bVIVb8+WhHKCkKNPcJe2EZuIcqvRoi727lZTJOfYy/JzLtckyZYfEI8J0lasZ29wkTt
+a1IjSo+a6XdhudU4ONVBrL70U8Kzntplw/6TBNbLFpp7taRALjUgbCOk4EoBMbeCL0GiYYsTS0mw
+7xdySzmGQku4GTyqutIGPQwKxSj9iSFw1FCZqr4VP4tyXzMUgc52SzagA6i7AyLedd3tbS6lnR5B
+L+W9Kx9hwT8L7WANAxQzv/jGldeuSLN8bsTxlOYlsdjmIGu/C9OWblPYGpjQQIRyvs4Cc/mNhrh+
+14EQgwuemIIFDLOgcD+iISoN8CqegelNcJndFw1PDN6LkVoiHz9p7jzsge8RKay/QW6C03KNDpWZ
+EUCgCUdfHfo8xKeR+LL1cfn24HKJmZt8L/aeRZwZ1jwePXFRVtiXELvgJuM/tJDIFj2KD337iV64
+fWcKQ/ydDVGqfDZAdcU4hQdsrPWENwPTQPfVPq2NNLMyIH9+WKx9Ed6/WzeZmIy5ZWpX1TtTolo6
+OJXQFeItMAjHxW/ZSZTok5IS3FuRhExturaInnzjYpx50a6kS34c5+c8hYq7sAtZ/CNLZmBnBCFD
+aMQqT8xFZJ5uolUaSeXxg7JFY1QsYp5RKvj4SjFwCGKJ2+hPPe9UyyltxOidNtxjaknOCeBHytOr
+-----END CERTIFICATE-----

+ 88 - 0
ruoyi-admin/src/main/resources/cert/alipayRootCert.crt

@@ -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-----

+ 23 - 0
ruoyi-admin/src/main/resources/cert/appCertPublicKey_2021006116626014.crt

@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIIEnjCCA4agAwIBAgIQICUSCKtCBCd5/KXLbyFrKjANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
+BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
+YXNzIDEgUjEwHhcNMjUxMjA4MDIzMjU5WhcNMzAxMjA3MDIzMjU5WjBlMQswCQYDVQQGEwJDTjEq
+MCgGA1UECgwh5rmW5YyX5bCP5b2p5Zui56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZBbGlw
+YXkxGTAXBgNVBAMMEDIwODgyNTE0MTg3OTg4NTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC7QxExSQK2rV18m9hloXq8fnSlnMEzh6sorOBLPlPU4aSFckBEBadXdgEmC0g4NiNGe1zV
+HtQ7VSBjrXSCZ6veUUZVwZussylcYHBjZzy4xDy8JJ95gslvBMAPa99MDeW9yhqsoTDY0DzFPTvb
+LdpIi2Dt61/s+lUaGCCQSk67g6TN7Ws9ocgqbNWGtYmF3VWNOg0x3mHWH4/LLQzDcafIJtByGeXR
+Z+AY01X6B7usVo1AJm6a7FB5RGNgDQtj6tS3Oc1f5fimRxhytVsEIUSyOz9WbhMeep9KjSJSS1ty
+XiFiTMweISXcSlnS9KvgpEd1cZBkI5IUq4J7KnMHLKS/AgMBAAGjggEqMIIBJjAfBgNVHSMEGDAW
+gBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQUO7mRYJUJKRW2I9lp2bATuubQaoMwQAYD
+VR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlwYXkuY29tL2Nw
+cy5wZGYwDgYDVR0PAQH/BAQDAgbAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9jYS5hbGlwYXku
+Y29tL2NybDEwOC5jcmwwYAYIKwYBBQUHAQEEVDBSMCgGCCsGAQUFBzAChhxodHRwOi8vY2EuYWxp
+cGF5LmNvbS9jYTYuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2EuYWxpcGF5LmNvbTo4MzQwLzAN
+BgkqhkiG9w0BAQsFAAOCAQEAj9xEXeg8jrdrOjqlWsb5nXTaFSyA9Zoye/Jk3pasi6befo4dyNO/
+HGcgvIrQhyeDU3k1HgUsmtQHbpoyiSeqo+M3BdQekkoFusIDe5mjf0jkUKpJla0bEsYfjZkk/6Ls
+O55ROVvjlod5oeJTIbK8C5BguDQP7daBUxe5SukpZ5zthrJLmSVNJMIWALBcVcGdDI0hP8Br8osV
+YVpHGAyClz2OOtpqgIu+rMYkeTs0atQNl7fe4M44pMKZLEutXzXWz15T3Tw11lYGo0PFKKWKp0P7
+baE97xlrZs6aE6T/yCrtBpMS5DxLSKaaRmImZnGbMhkJUx8iRqwC+cs4NN4www==
+-----END CERTIFICATE-----

+ 19 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/business/ApiBusinessController.java

@@ -28,6 +28,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -127,6 +128,7 @@ public class ApiBusinessController extends AbstractApiController {
     @ApiOperation("修改基本商家信息")
     @PostMapping("/update")
     public R<Void> update(@RequestBody BusinessBo bo) {
+        bo.setBusinessId(getBusinessByUserId(getUserId(true), true));
         return toAjax(iBusinessService.updateBaseByBo(bo) ? 1 : 0);
     }
 
@@ -173,4 +175,21 @@ public class ApiBusinessController extends AbstractApiController {
         return R.ok(list);
     }
 
+    /**
+     * 邀请码查商家
+     */
+    @FilePathSplicing(type = FilePathSplicingType.RESPONSE)
+    @ApiOperation("邀请码查商家")
+    @GetMapping("/queryByInviteCode")
+    public R<BusinessVo> queryByInviteCode(String inviteCode) {
+        BusinessVo businessVo = iBusinessService.queryByInviteCode(inviteCode);
+        return R.ok(businessVo);
+    }
+
+    @ApiOperation("查询商家限额")
+    @GetMapping("/queryBusinessLimit")
+    public R<BigDecimal> queryBusinessLimit() {
+        return R.ok(businessService.queryBusinessLimit(getBusinessByUserId(getUserId(true), true)));
+    }
+
 }

+ 8 - 2
ruoyi-api/src/main/java/com/ruoyi/api/controller/line/ApiOnlineOrderController.java

@@ -10,6 +10,7 @@ import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.fubeiPay.domain.PayVo;
 import com.ruoyi.onlineorder.domain.bo.CreateOnlineOrderBo;
 import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
 import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
@@ -112,7 +113,12 @@ public class ApiOnlineOrderController extends AbstractApiController {
         return R.ok();
     }
 
-
-
+    @ApiOperation("去支付")
+    @RepeatSubmit()
+    @PostMapping("/thirdPay")
+    public R<PayVo> thirdPay(@RequestBody OnlineOrderBo bo) {
+        Long userId = getUserId();
+        return R.ok(iOnlineOrderService.thirdPay(bo, userId));
+    }
 
 }

+ 11 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiShopOrderController.java

@@ -204,6 +204,9 @@ public class ApiShopOrderController extends AbstractApiController {
         }
         Business business = businessService.loadById(order.getBusinessId(), true);
         //TODO 调用第三方支付接口
+        //先关单
+        PayBo closeBo = new PayBo(business.getFuMchNo(), business.getFuKey(), order.getOrderNo(), order.getTransactionId());
+        fubeiPayService.closePayOrder(closeBo);
         //支付金额为分
         Integer money = Integer.valueOf(order.getActualPayment().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
         FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;
@@ -330,6 +333,14 @@ public class ApiShopOrderController extends AbstractApiController {
         return R.ok();
     }
 
+    /**
+     * 订单是否支付
+     */
+    @ApiOperation("订单是否支付")
+    @GetMapping("/isPay")
+    public R<Boolean> isPay(@ApiParam("订单主键") @NotNull(message = "订单主键不能为空") Long orderId) {
+        return R.ok(iShopOrderService.isPay(orderId));
+    }
 
 //    /**
 //     * 订单评论

+ 2 - 0
ruoyi-business/src/main/java/com/ruoyi/business/service/IBusinessService.java

@@ -147,4 +147,6 @@ public interface IBusinessService {
     List<Long> loadNoCloseBusinessIds();
 
     String queryFuKey(Long businessId);
+
+    BigDecimal queryBusinessLimit(Long businessId);
 }

+ 6 - 0
ruoyi-business/src/main/java/com/ruoyi/business/service/impl/BusinessServiceImpl.java

@@ -712,4 +712,10 @@ public class BusinessServiceImpl implements IBusinessService {
         return ObjectUtil.isNotNull(business) ? business.getFuKey() : null;
     }
 
+    @Override
+    public BigDecimal queryBusinessLimit(Long businessId) {
+        Business business = baseMapper.selectOne(new LambdaQueryWrapper<Business>().select(Business::getOnlineOrderConsumptionLimit).eq(Business::getBusinessId, businessId));
+        return ObjectUtil.isNotNull(business) ? business.getOnlineOrderConsumptionLimit() : null;
+    }
+
 }

+ 3 - 2
ruoyi-line/src/main/java/com/ruoyi/onlineorder/exception/OnlineOrderExceptionEnum.java

@@ -11,9 +11,10 @@ public enum OnlineOrderExceptionEnum implements IIntegerEnum {
 
     // TODO 注意检查错误码,保证系统内唯一
     OnlineOrder_IS_NOT_EXISTS(200001, "在线订单不存在"),
-
     OnlineOrder_CONSUMPTION_LIMIT_ERROR( 200002, "在线订单消费金额超出限制"),
-    OnlineOrder_USER_YEAR_CONSUMPTION_LIMIT_ERROR( 200003, "在线订单用户年度消费金额超出限制");
+    OnlineOrder_USER_YEAR_CONSUMPTION_LIMIT_ERROR( 200003, "在线订单用户年度消费金额超出限制"),
+    ORDER_STATUS_ERROR(200004, "请确认当前订单状态,不是待支付不让支付哟"),
+    ORDER_USER_ERROR(200005, "请确认当前订单是否是您的订单");
 
     private Integer code;
 

+ 6 - 6
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/IOnlineOrderService.java

@@ -1,18 +1,16 @@
 package com.ruoyi.onlineorder.service;
 
 import cn.hutool.core.date.DateTime;
-import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.fubeiPay.domain.PayVo;
 import com.ruoyi.newwxpay.pay.PayNotifyResult;
 import com.ruoyi.onlineorder.domain.OnlineOrder;
 import com.ruoyi.onlineorder.domain.bo.CreateOnlineOrderBo;
-import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
 import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
 import com.ruoyi.onlineorder.domain.vo.PayOnlineOrderVo;
-import com.ruoyi.shop.order.domain.ShopOrder;
 
-import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.List;
@@ -149,4 +147,6 @@ public interface IOnlineOrderService {
     TableDataInfo<OnlineOrderVo> queryCustomPageList(OnlineOrderBo bo, PageQuery pageQuery);
 
     List<OnlineOrderVo> queryCustomList(OnlineOrderBo bo);
+
+    PayVo thirdPay(OnlineOrderBo bo, Long userId);
 }

+ 37 - 16
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/impl/OnlineOrderServiceImpl.java

@@ -265,23 +265,10 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
         payOnlineOrderVo.setPayType(bo.getPayType());
         payOnlineOrderVo.setExpireTime(onlineOrder.getExpireTime());
         //TODO 调用第三方支付接口
-        //支付金额为分
-        Integer money = Integer.valueOf(onlineOrder.getPayAmount().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
-        FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;
-        UserThirdType userThirdType = UserThirdType.WX_CASHIER_MINI_PROGRAM;
-        if (OnlineOrderPayType.ALIPAY.equals(bo.getPayType()) || OnlineOrderPayType.THIRD_ALIPAY.equals(bo.getPayType())) {
-            payWay = FubeiPayWay.W_ALI_LITE;
-            userThirdType = UserThirdType.ALI_MINI_PROGRAM;
-        }
-        UserThirdIdentity userThirdIdentity = userThirdIdentityService.loadByUserId(user.getId(), userThirdType, true);
-        // 构建支付参数
-        PayBo pay = new PayBo(payWay, business.getFuMchNo(), business.getFuKey(), onlineOrder.getOrderNo()
-            , userThirdIdentity.getIdentityCode(),  money, "在线订单支付", String.format("在线订单支付:%s", business.getBusinessName()));
-        // 发起付贝支付
-        PayVo payOrder = fubeiPayService.createPayOrder(pay);
+        PayVo payVo = fubeiPay(onlineOrder, business, user.getId());
         //TODO 调用第三方支付接口结束
-        payOnlineOrderVo.setPrepayId(payOrder.getPayOrderId());
-        payOnlineOrderVo.setPayVo(payOrder);
+        payOnlineOrderVo.setPrepayId(payVo.getPayOrderId());
+        payOnlineOrderVo.setPayVo(payVo);
         return payOnlineOrderVo;
     }
 
@@ -364,6 +351,40 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
         return baseMapper.queryCustomList(bo);
     }
 
+    @Override
+    public PayVo thirdPay(OnlineOrderBo bo, Long userId) {
+        OnlineOrder onlineOrder = loadById(bo.getOrderId(), true);
+        if (!OnlineOrderStatus.WAIT_PAY.equals(onlineOrder.getOrderStatus())) {
+            throw new ServiceException(OnlineOrderExceptionEnum.ORDER_STATUS_ERROR);
+        }
+        if (!onlineOrder.getUserId().equals(userId)) {
+            throw new ServiceException(OnlineOrderExceptionEnum.ORDER_USER_ERROR);
+        }
+        Business business = businessService.loadById(onlineOrder.getBusinessId(), true);
+        //先关单
+        PayBo closeBo = new PayBo(business.getFuMchNo(), business.getFuKey(), onlineOrder.getOrderNo(), onlineOrder.getTransactionId());
+        fubeiPayService.closePayOrder(closeBo);
+        //在调用支付
+        return fubeiPay(onlineOrder, business, userId);
+    }
+
+    private PayVo fubeiPay(OnlineOrder onlineOrder, Business business, Long userId) {
+        //支付金额为分
+        Integer money = Integer.valueOf(onlineOrder.getPayAmount().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
+        FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;
+        UserThirdType userThirdType = UserThirdType.WX_CASHIER_MINI_PROGRAM;
+        if (OnlineOrderPayType.ALIPAY.equals(onlineOrder.getPayType()) || OnlineOrderPayType.THIRD_ALIPAY.equals(onlineOrder.getPayType())) {
+            payWay = FubeiPayWay.W_ALI_LITE;
+            userThirdType = UserThirdType.ALI_MINI_PROGRAM;
+        }
+        UserThirdIdentity userThirdIdentity = userThirdIdentityService.loadByUserId(userId, userThirdType, true);
+        // 构建支付参数
+        PayBo pay = new PayBo(payWay, business.getFuMchNo(), business.getFuKey(), onlineOrder.getOrderNo()
+            , userThirdIdentity.getIdentityCode(),  money, "在线订单支付", String.format("在线订单支付:%s", business.getBusinessName()));
+        // 发起付贝支付
+        return fubeiPayService.createPayOrder(pay);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public OnlineOrder orderPayCallback(PayNotifyResult notifyResult) {

+ 12 - 8
ruoyi-newwxpay/src/main/java/com/ruoyi/fubeiPay/service/FubeiPayService.java

@@ -148,15 +148,19 @@ public class FubeiPayService {
      * @return
      */
     public Boolean closePayOrder(PayBo bo) {
-        Map<String, Object> paramMap = new HashMap<>();
-        // 商户号
-        paramMap.put("mchNo", bo.getMchNo());
-        // 商户订单号
-        paramMap.put("mchOrderNo", bo.getMchOrderNo());
-        // 支付订单号
-        paramMap.put("payOrderId", bo.getPayOrderId());
+        try {
+            Map<String, Object> paramMap = new HashMap<>();
+            // 商户号
+            paramMap.put("mchNo", bo.getMchNo());
+            // 商户订单号
+            paramMap.put("mchOrderNo", bo.getMchOrderNo());
+            // 支付订单号
+            paramMap.put("payOrderId", bo.getPayOrderId());
 
-        this.createRequest("/api/pay/close", paramMap, bo.getStoreKey());
+            this.createRequest("/api/pay/close", paramMap, bo.getStoreKey());
+        } catch (Exception e) {
+            log.error(" --- 关闭订单异常 ---> {}", e.getMessage());
+        }
         return true;
     }
 

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/IShopOrderService.java

@@ -219,4 +219,6 @@ public interface IShopOrderService {
      * @param order 订单
      */
     void platformIncomeSettleHandle(ShopOrder order);
+
+    Boolean isPay(Long orderId);
 }

+ 6 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/impl/ShopOrderServiceImpl.java

@@ -564,6 +564,12 @@ public class ShopOrderServiceImpl implements IShopOrderService {
         this.baseMapper.updateById(order);
     }
 
+    @Override
+    public Boolean isPay(Long orderId) {
+        ShopOrder order = this.loadById(orderId, true);
+        return PaymentStatus.PAID.equals(order.getPaymentStatus());
+    }
+
     @Override
     public void endRefundOrderSync(Long orderDetailId, Long orderId) {
         ShopOrder shopOrder = this.loadByLockId(orderId, true);

+ 23 - 13
ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java

@@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
 import com.alipay.api.AlipayClient;
+import com.alipay.api.AlipayConfig;
 import com.alipay.api.DefaultAlipayClient;
 import com.alipay.api.internal.util.AlipayEncrypt;
 import com.alipay.api.request.AlipaySystemOauthTokenRequest;
@@ -907,20 +908,14 @@ public class UserServiceImpl implements IUserService {
         if (StringUtils.isBlank(code)) {
             throw new ServiceException("请求参数code不能为空");
         } else {
-            AlipayClient alipayClient = new DefaultAlipayClient(aliPayConfig.getServerUrl(), // 支付宝网关(固定)
-                aliPayConfig.getAppId(), // APPID 即创建应用后生成
-                aliPayConfig.getAppPrivateKey(), // 开发者私钥,由开发者自己生成
-                aliPayConfig.getFormat(), // 参数返回格式,只支持json
-                aliPayConfig.getCharset(), // 编码集,支持GBK/UTF-8
-                aliPayConfig.getAlipayPublicKey(), // 支付宝公钥,由支付宝生成
-                aliPayConfig.getSignType()); // 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2
-
-            //获取accessToken
-            AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
-            request.setCode(code);
-            request.setGrantType("authorization_code");
             try {
-                AlipaySystemOauthTokenResponse responseToken = alipayClient.execute(request);
+                AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
+
+                //获取accessToken
+                AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
+                request.setCode(code);
+                request.setGrantType("authorization_code");
+                AlipaySystemOauthTokenResponse responseToken = alipayClient.certificateExecute(request);
                 if (responseToken.isSuccess()) {
                     //获取用户信息
                     AlipayUserInfoShareRequest alipayUserInfoShareRequest = new AlipayUserInfoShareRequest();
@@ -940,6 +935,21 @@ public class UserServiceImpl implements IUserService {
         }
     }
 
+    private AlipayConfig getAlipayConfig() {
+        //加密方式是证书
+        AlipayConfig alipayConfig = new AlipayConfig();
+        alipayConfig.setPrivateKey(aliPayConfig.getAppPrivateKey());
+        alipayConfig.setServerUrl(aliPayConfig.getServerUrl());
+        alipayConfig.setAppId(aliPayConfig.getAppId());
+        alipayConfig.setCharset(aliPayConfig.getCharset());
+        alipayConfig.setSignType(aliPayConfig.getSignType());
+        alipayConfig.setFormat(aliPayConfig.getFormat());
+        alipayConfig.setAppCertPath(aliPayConfig.getCertPath());
+        alipayConfig.setAlipayPublicCertPath(aliPayConfig.getPublicCertPath());
+        alipayConfig.setRootCertPath(aliPayConfig.getRootCertPath());
+        return alipayConfig;
+    }
+
     /**
      * 获取苹果用户唯一标识
      *