diff --git a/app/main/api/etc/main.dev.yaml b/app/main/api/etc/main.dev.yaml index 74171dd..0e3b41d 100644 --- a/app/main/api/etc/main.dev.yaml +++ b/app/main/api/etc/main.dev.yaml @@ -15,25 +15,16 @@ VerifyCode: AccessKeyID: "LTAI5tKGB3TVJbMHSoZN3yr9" AccessKeySecret: "OCQ30GWp4yENMjmfOAaagksE18bp65" EndpointURL: "dysmsapi.aliyuncs.com" - SignName: "天远查" + SignName: "海南海宇大数据" TemplateCode: "SMS_302641455" ValidTime: 300 Encrypt: SecretKey: "c8d3e7f2a6b9c1d5e8f3a7b0c4d9e2f1" -WestConfig: - Url: "http://proxy.tianyuanapi.com/api/invoke" - Key: "121a1e41fc1690dd6b90afbcacd80cf4" - SecretId: "449159" - SecretSecondId: "296804" -YushanConfig: - ApiKey: "4c566c4a4b543164535455685655316c" - AcctID: "YSSJ843926726" - Url: "https://api.yushanshuju.com/credit-gw/service" Alipay: - AppID: "2021004165608254" + AppID: "2021006123622041" PrivateKey: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPsXuwFJeHAL8CwI0QdD9GP7xQ8eejIoQKg6J3/peu26su68JCtGSRhlDm/7vbLHJcFR6h7at+INoz2juc7SqlmNO7i9wKc3+Ua0487y1G2fCsneRNxTTqbceBZwqjj9/AAN0u5/4nSl0bcqTeMddofdpTGOvwGvIJh6CZgCglnhMZnH4D6H6yiIyZf7Q6k2d/qBpVGK8kluYEtSnf/vEQCHhxRx+/DgTL7V1LjbA3BYoPTELZ15JAj0uIzuxextAtxOm4+Huli0RJFAN3q/to2L1Zs8yYY1gKJyTaPWKsJWBx8zI+gZcC/e45k6CZnGgh1Fn3+Xqkf7eGxJGGHs1fAgMBAAECggEAM2rkApbrvdBDiV2TXK7sMVv/K8vUAmkIbKa7zUpZxqUuNSUBp1LbpcM1UeNyujPGXDLmejUMp55j1igiKr4nA4iTQ0oBm+/GWDqpjV5cijzURUBegIGvtK9Bs4lGok6KVy839l/nbvHKLVcxrZySIv7dz9xcGNfbghN5IVRdiU/kOokNbtwQNC837piG5q4PHL6bzwIUGbrLED/RDmw/IwVMMmZovcQQ2JAuWJBo9CS9LB0Nc3I4MOPNx/0Rl+5URSSfmJAriL5ihlWckocQCUHwhRpSGQ6Q4xAXFYvb8OsApAQG3WU9SciBfs2wg/QfGNFzwQgGFofPcTQg3DTeuQKBgQDUHBTsgoe3WXnGo6qZKw1zA4OtF67IJJoltHo5JtkBRKCNVU3BJ+q+6i/fn0MBwScKQ1mhPjWe3h+qTRT207RRxGaxb6ljATOiU+BxmpHvu6jP+DVYtP5F3M7MCAGqpDAEoXgoAWttxmijqk+5YuLOLe0j/btCmpzuH7zwxSnqlQKBgQCtbTvaS/g+Jeu4Ml6iv7xi5//JCjeTn2wUJpXnNmN0jn+riRwEO81z4GWuOI8WukZHHAnufI6qWk2sLH0gcdLQ/STsMnl2L3NbeUyO8o5w2JSAlnZDYfaFfasGqFkGJrBLqG6bh/Bk1DP3/Bl6iMEwDbmu7Ptoy8ihokng9dEPIwKBgBHdi6WgGO5IiwlAH85m4eseEKkzpXUWICWs3d6SdxS0QxGkbbgnNI6ACyg6sdoj+rXSlmoOY1XOP7yIYYuoqTd542xui0XbhA3YIr9u1XvrwnxB27xtAj3AK2rkAb/ttF2ve/9inznPzGB8p9plidTz6VVuuacSfsVPxwpAkRdBAoGAR7c9Ifd6b1DFGkWSBuEc6RWhG6Si+OPbELYoFRXTqNZoiynGsSV9v2ZTBemTmkVrXGqG3N0bLezr47/9+lW3ZP7ZrubsfWf/3xrZAt/g8V9OgaI2w4SWKfuepsElFzsWeiLroltjmH58Axd3/cjhgpqaZ3DOQjbK/7QZsvJUAlsCgYEAqTQVhKLizM7BvXu1N6Z2K8trfJbiN+f90XhZIRPkIIcom0PnOfXhRtT76MCxz9n+lwf+alOKOfbQFy0pZtWG/eaFSYroQlXL+EfmqlFPXZR6D0NQLeygWAKH8161IQUh2VF3Qkhle6g6ZkyJA3Ev4RmqH2BYGv8hcZTTHsZ3Ic4=" AlipayPublicKey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2CqoCp95w/JV3RT/gzF4/8QmVT1HQNaeW7yUp+mA7x9AbjvlTW/+eRn6oGAL/XhZLjvHD0XjKLVKX0MJVS1aUQHEHEbOJN4Eu8II45OavD4iZISa7Kp9V6AM+i4qTyaeV2wNDnGxHQBaLVUGCfMR+56EK2YpORdE1H9uy72SSQseVb3bmpsV9EW/IJNmcVL/ut3uA1JWAoRmzlQ7ekxg7p8AYXzYPEHQr1tl7W+M4zv9wO9GKZCxIqMA8U3RP5npPfRaCfIRGzXzCqFEEUvWuidOB7frsvN4jiPD07qpL2Bi9LM1X/ee2kC/oM8Uhd7ERZhG8MbZfijZKxgrsDKBcwIDAQAB" - AppCertPath: "etc/merchant/appCertPublicKey_2021004165608254.crt" + AppCertPath: "etc/merchant/appCertPublicKey_2021006123622041.crt" AlipayCertPath: "etc/merchant/alipayCertPublicKey_RSA2.crt" AlipayRootCertPath: "etc/merchant/alipayRootCert.crt" IsProduction: true @@ -41,14 +32,14 @@ Alipay: ReturnURL: "http://localhost:5678/inquire" Wxpay: - AppID: "wx442ee1ac1ee75917" - MchID: "1682635136" - MchCertificateSerialNumber: "5369B8AEEBDCF7AF274510252E6A8C0659C30F61" - MchApiv3Key: "e3ea4cf0765f1e71b01bb387dfcdbc9f" + AppID: "wxb786749edb73eb04" + MchID: "1737653018" + MchCertificateSerialNumber: "3FAA5AA8CD9370576F6D4B927FFB5B19164B1A9E" + MchApiv3Key: "X7pL9qR2sK5mN8gT3zV6bY1cF4dH9jU2n" MchPrivateKeyPath: "etc/merchant/apiclient_key.pem" - MchPublicKeyID: "PUB_KEY_ID_0116826351362025060900382267001601" + MchPublicKeyID: "PUB_KEY_ID_0117376530182026011000212363000800" MchPublicKeyPath: "etc/merchant/pub_key.pem" - MchPlatformRAS: "1FFEC3F62E31885FAB4C91ADCB8D7557E9488781" + MchPlatformRAS: "" NotifyUrl: "https://6m4685017o.goho.co/api/v1/pay/wechat/callback" RefundNotifyUrl: "https://6m4685017o.goho.co/api/v1/paywechat/refund_callback" Applepay: @@ -62,15 +53,13 @@ Applepay: Ali: Code: "d55b58829efb41c8aa8e86769cba4844" SystemConfig: - ThreeVerify: false + ThreeVerify: true WechatH5: - AppID: "wx442ee1ac1ee75917" - AppSecret: "c80474909db42f63913b7a307b3bee17" + AppID: "wxb786749edb73eb04" + AppSecret: "b2aad5ec8788eb1e74a3c385dd5aa282" WechatMini: - AppID: "wx781abb66b3368963" # 小程序的AppID - AppSecret: "c7d02cdb0fc23c35c93187af9243b00d" # 小程序的AppSecret - TycAppID: "wxe74617f3dd56c196" - TycAppSecret: "c8207e54aef5689b2a7c1f91ed7ae8a0" + AppID: "xxx" # 小程序的AppID + AppSecret: "xxxx" # 小程序的AppSecret Query: ShareLinkExpire: 604800 # 7天 = 7 * 24 * 60 * 60 = 604800秒 AdminConfig: @@ -86,7 +75,13 @@ Tianyuanapi: BaseURL: "https://api.tianyuanapi.com" Timeout: 60 Authorization: - FileBaseURL: "https://www.quannengcha.com/api/v1/auth-docs" # 授权书文件访问基础URL + FileBaseURL: "https://www.yuyuecha.com/api/v1/auth-docs" # 授权书文件访问基础URL Promotion: PromotionDomain: "http://localhost:8888" # 推广域名(用于生成短链) OfficialDomain: "http://localhost:5678" # 正式站点域名(短链重定向的目标域名) +TencentCloud: + SecretId: "AKIDIZgZFi172kFZgZFj2A4nT4bAPzQtKtT0" + SecretKey: "nRvCINGwPr68xa0CBxVqyta2QrESVZhi" + SmsSdkAppId: "1401075256" + SignName: "北京正信环宇科技" + TemplateId: "2583728" diff --git a/app/main/api/etc/main.yaml b/app/main/api/etc/main.yaml index e6cea6e..45ffe02 100644 --- a/app/main/api/etc/main.yaml +++ b/app/main/api/etc/main.yaml @@ -11,7 +11,6 @@ JwtAuth: AccessSecret: "RtK7nQ2pX9bJ5cM8zV6hY3fD1sG4kL7wP0qN5rT8uB2zC" AccessExpire: 2592000 RefreshAfter: 1296000 - VerifyCode: AccessKeyID: "LTAI5tKGB3TVJbMHSoZN3yr9" AccessKeySecret: "OCQ30GWp4yENMjmfOAaagksE18bp65" @@ -22,26 +21,26 @@ VerifyCode: Encrypt: SecretKey: "c8d3e7f2a6b9c1d5e8f3a7b0c4d9e2f1" Alipay: - AppID: "2021004165608254" + AppID: "2021006123622041" PrivateKey: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCPsXuwFJeHAL8CwI0QdD9GP7xQ8eejIoQKg6J3/peu26su68JCtGSRhlDm/7vbLHJcFR6h7at+INoz2juc7SqlmNO7i9wKc3+Ua0487y1G2fCsneRNxTTqbceBZwqjj9/AAN0u5/4nSl0bcqTeMddofdpTGOvwGvIJh6CZgCglnhMZnH4D6H6yiIyZf7Q6k2d/qBpVGK8kluYEtSnf/vEQCHhxRx+/DgTL7V1LjbA3BYoPTELZ15JAj0uIzuxextAtxOm4+Huli0RJFAN3q/to2L1Zs8yYY1gKJyTaPWKsJWBx8zI+gZcC/e45k6CZnGgh1Fn3+Xqkf7eGxJGGHs1fAgMBAAECggEAM2rkApbrvdBDiV2TXK7sMVv/K8vUAmkIbKa7zUpZxqUuNSUBp1LbpcM1UeNyujPGXDLmejUMp55j1igiKr4nA4iTQ0oBm+/GWDqpjV5cijzURUBegIGvtK9Bs4lGok6KVy839l/nbvHKLVcxrZySIv7dz9xcGNfbghN5IVRdiU/kOokNbtwQNC837piG5q4PHL6bzwIUGbrLED/RDmw/IwVMMmZovcQQ2JAuWJBo9CS9LB0Nc3I4MOPNx/0Rl+5URSSfmJAriL5ihlWckocQCUHwhRpSGQ6Q4xAXFYvb8OsApAQG3WU9SciBfs2wg/QfGNFzwQgGFofPcTQg3DTeuQKBgQDUHBTsgoe3WXnGo6qZKw1zA4OtF67IJJoltHo5JtkBRKCNVU3BJ+q+6i/fn0MBwScKQ1mhPjWe3h+qTRT207RRxGaxb6ljATOiU+BxmpHvu6jP+DVYtP5F3M7MCAGqpDAEoXgoAWttxmijqk+5YuLOLe0j/btCmpzuH7zwxSnqlQKBgQCtbTvaS/g+Jeu4Ml6iv7xi5//JCjeTn2wUJpXnNmN0jn+riRwEO81z4GWuOI8WukZHHAnufI6qWk2sLH0gcdLQ/STsMnl2L3NbeUyO8o5w2JSAlnZDYfaFfasGqFkGJrBLqG6bh/Bk1DP3/Bl6iMEwDbmu7Ptoy8ihokng9dEPIwKBgBHdi6WgGO5IiwlAH85m4eseEKkzpXUWICWs3d6SdxS0QxGkbbgnNI6ACyg6sdoj+rXSlmoOY1XOP7yIYYuoqTd542xui0XbhA3YIr9u1XvrwnxB27xtAj3AK2rkAb/ttF2ve/9inznPzGB8p9plidTz6VVuuacSfsVPxwpAkRdBAoGAR7c9Ifd6b1DFGkWSBuEc6RWhG6Si+OPbELYoFRXTqNZoiynGsSV9v2ZTBemTmkVrXGqG3N0bLezr47/9+lW3ZP7ZrubsfWf/3xrZAt/g8V9OgaI2w4SWKfuepsElFzsWeiLroltjmH58Axd3/cjhgpqaZ3DOQjbK/7QZsvJUAlsCgYEAqTQVhKLizM7BvXu1N6Z2K8trfJbiN+f90XhZIRPkIIcom0PnOfXhRtT76MCxz9n+lwf+alOKOfbQFy0pZtWG/eaFSYroQlXL+EfmqlFPXZR6D0NQLeygWAKH8161IQUh2VF3Qkhle6g6ZkyJA3Ev4RmqH2BYGv8hcZTTHsZ3Ic4=" AlipayPublicKey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2CqoCp95w/JV3RT/gzF4/8QmVT1HQNaeW7yUp+mA7x9AbjvlTW/+eRn6oGAL/XhZLjvHD0XjKLVKX0MJVS1aUQHEHEbOJN4Eu8II45OavD4iZISa7Kp9V6AM+i4qTyaeV2wNDnGxHQBaLVUGCfMR+56EK2YpORdE1H9uy72SSQseVb3bmpsV9EW/IJNmcVL/ut3uA1JWAoRmzlQ7ekxg7p8AYXzYPEHQr1tl7W+M4zv9wO9GKZCxIqMA8U3RP5npPfRaCfIRGzXzCqFEEUvWuidOB7frsvN4jiPD07qpL2Bi9LM1X/ee2kC/oM8Uhd7ERZhG8MbZfijZKxgrsDKBcwIDAQAB" - AppCertPath: "etc/merchant/appCertPublicKey_2021004165608254.crt" + AppCertPath: "etc/merchant/appCertPublicKey_2021006123622041.crt" AlipayCertPath: "etc/merchant/alipayCertPublicKey_RSA2.crt" AlipayRootCertPath: "etc/merchant/alipayRootCert.crt" IsProduction: true - NotifyUrl: "https://www.quannengcha.com/api/v1/pay/alipay/callback" - ReturnURL: "https://www.quannengcha.com/payment/result" + NotifyUrl: "https://www.yuyuecha.com/api/v1/pay/alipay/callback" + ReturnURL: "https://www.yuyuecha.com/payment/result" Wxpay: - AppID: "wx442ee1ac1ee75917" - MchID: "1682635136" - MchCertificateSerialNumber: "5369B8AEEBDCF7AF274510252E6A8C0659C30F61" - MchApiv3Key: "e3ea4cf0765f1e71b01bb387dfcdbc9f" + AppID: "wxb786749edb73eb04" + MchID: "1737653018" + MchCertificateSerialNumber: "3FAA5AA8CD9370576F6D4B927FFB5B19164B1A9E" + MchApiv3Key: "X7pL9qR2sK5mN8gT3zV6bY1cF4dH9jU2n" MchPrivateKeyPath: "etc/merchant/apiclient_key.pem" - MchPublicKeyID: "PUB_KEY_ID_0116826351362025060900382267001601" + MchPublicKeyID: "PUB_KEY_ID_0117376530182026011000212363000800" MchPublicKeyPath: "etc/merchant/pub_key.pem" - MchPlatformRAS: "1FFEC3F62E31885FAB4C91ADCB8D7557E9488781" - NotifyUrl: "https://www.quannengcha.com/api/v1/pay/wechat/callback" - RefundNotifyUrl: "https://www.quannengcha.com/api/v1/pay/wechat/refund_callback" + MchPlatformRAS: "" + NotifyUrl: "https://www.yuyuecha.com/api/v1/pay/wechat/callback" + RefundNotifyUrl: "https://www.yuyuecha.com/api/v1/pay/wechat/refund_callback" Applepay: ProductionVerifyURL: "https://api.storekit.itunes.apple.com/inApps/v1/transactions/receipt" SandboxVerifyURL: "https://api.storekit-sandbox.itunes.apple.com/inApps/v1/transactions/receipt" @@ -53,11 +52,11 @@ Applepay: SystemConfig: ThreeVerify: true WechatH5: - AppID: "wx442ee1ac1ee75917" - AppSecret: "c80474909db42f63913b7a307b3bee17" + AppID: "wxb786749edb73eb04" + AppSecret: "b2aad5ec8788eb1e74a3c385dd5aa282" WechatMini: - AppID: "wx5bacc94add2da981" # 小程序的AppID - AppSecret: "48a2c1e8ff1b7d4c0ff82fbefa64d2d0" # 小程序的AppSecret + AppID: "xxx" # 小程序的AppID + AppSecret: "xxxx" # 小程序的AppSecret Query: ShareLinkExpire: 604800 # 7天 = 7 * 24 * 60 * 60 = 604800秒 AdminConfig: @@ -73,7 +72,13 @@ Tianyuanapi: BaseURL: "https://api.tianyuanapi.com" Timeout: 60 Authorization: - FileBaseURL: "https://www.quannengcha.com/api/v1/auth-docs" # 授权书文件访问基础URL + FileBaseURL: "https://www.yuyuecha.com/api/v1/auth-docs" # 授权书文件访问基础URL Promotion: - PromotionDomain: "https://p.quannengcha.com" # 推广域名(用于生成短链) - OfficialDomain: "https://www.quannengcha.com" # 正式站点域名(短链重定向的目标域名) + PromotionDomain: "https://p.yuyuecha.com" # 推广域名(用于生成短链) + OfficialDomain: "https://www.yuyuecha.com" # 正式站点域名(短链重定向的目标域名) +TencentCloud: + SecretId: "AKIDIZgZFi172kFZgZFj2A4nT4bAPzQtKtT0" + SecretKey: "nRvCINGwPr68xa0CBxVqyta2QrESVZhi" + SmsSdkAppId: "1401075256" + SignName: "北京正信环宇科技" + TemplateId: "2583728" diff --git a/app/main/api/etc/merchant/AuthKey_LAY65829DQ.p8 b/app/main/api/etc/merchant/AuthKey_LAY65829DQ.p8 deleted file mode 100644 index b448586..0000000 --- a/app/main/api/etc/merchant/AuthKey_LAY65829DQ.p8 +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgkidSHV1OeJN84sDD -xWLGIVjTyhn6sAQDyHfqKW6lxnGgCgYIKoZIzj0DAQehRANCAAQSAlAcuuuRNFqk -aMPVpXxsiR/pwhyM62tFhdFsbULq1C7MItQxKVMKCiwz3r5rZZy7HcbkqL47LPZ1 -q6V8Wyop ------END PRIVATE KEY----- \ No newline at end of file diff --git a/app/main/api/etc/merchant/alipayCertPublicKey_RSA2.crt b/app/main/api/etc/merchant/alipayCertPublicKey_RSA2.crt index a1de812..d26ea9f 100644 --- a/app/main/api/etc/merchant/alipayCertPublicKey_RSA2.crt +++ b/app/main/api/etc/merchant/alipayCertPublicKey_RSA2.crt @@ -1,21 +1,21 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIE4jCCAsqgAwIBAgIIYsSr5bKAMl8wDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAU diff --git a/app/main/api/etc/merchant/apiclient_key.pem b/app/main/api/etc/merchant/apiclient_key.pem index 246c1df..64da20b 100644 --- a/app/main/api/etc/merchant/apiclient_key.pem +++ b/app/main/api/etc/merchant/apiclient_key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDCP6fWm1vXXybH -m3Ne6PjacGrN2+iMrzWZlzdHCZ31udDPqSUYaZ+78b441KZK/CJFQWeSJ/1h//A+ -BGsQDKvE/fj2QzN1KkOuQ8WJXNGpixE5uu5bv/QTN/ukurGdA1aO2aFCANumlOmB -HkB/B2so57ii8iQQjwK2xM4r3oOU/IfcFGKL+9/QjLGFFp9PJXCDBCgrxxlZGaj1 -3wowlfVOzlaX94gemQsCYVkuAFIYMAnFHs9cKNZQIU80somW/yy2Gy38N6n7NnbD -nvFSaq4GoDROqRgKbRZ5e706d/p7A3aS/2oRqq1jomUIugK8g++LmoHFTgfhfQkI -v1aG/nPzAgMBAAECggEAD2RN31J2J42xm/V0YdviBCUOQXugZK1peN8jkSxw6Myt -gBbuCo4sCw9vvD8VYjGyYXx6QXmLuV03YyKkfSQT5EsflBvlEu6jaEaUe3rwXhfX -6JQoWPrP00oHVZk5g7CFBlK2VW2N+hgonIOSJr6mvhoGZlr7gphiZasYjx9Vm9N3 -Pbnfru5ttzplYNniwH3DF6ph8VmdbD1nnbWSKLXvHCsXQT2wBcnsIagIH3vyq6K1 -pc5abWsQJrixOPebpI8jD5w0HxHAqVLx58H/OC2zW/roAw1WS2AkueJ1j7dQ7Z0C -mc9Xexz5gcAP0nMAQv+LP7iYqsa/niFhfcTFWfdxkQKBgQD5JkKNmInU2/IVYCwO -c483MCSv1+MnbRXlb7vut8T0IupHTU6hCge6C3q3HsjbKSBn8bRChtPUzvw9JFxK -QWKiQqQDPLDJ08AIKhfQD2JiLtoikkZN0bF6OTL+Soney1yGx51mlfHM194+PcCJ -jF7iWdMVbcBwHbgydNxxIS5cKQKBgQDHlvQ4lw6gvLILpGK494/vNYSJP/Jmd66V -3oSGYi84YRKTSwH4NlbBVVieb3Dv+pPugbsXEuFHBif7WsivbYgNTE9++8Yvt0gh -duB1G4yh7m/ylQeSuipgQU9tozrU/15cWwmcCRV50wWXBGoVEM0kf7mzEKSxmjYk -Qzko/zxSuwKBgQCY6Bc+SViFz3qSDdTcBaXma+CIHsmlH7ipd9px1kzEvEzl95cD -FGHLl1H34qfIgUQHJvrHPXHyEBoT+CW/2MMM7DM2XV/ubctT92ln4pkxwqlTQExv -Y/s1FLesAtj8Z/hgK0/5bprYab9WmZV5lTGCXzhB1XqeFE9AgCHuODv4iQKBgQC8 -g2uwd5ytXQydymokYk9klJvWNrvw5GHV1BJAC0Smb6lnzZTSqCBRAxdsrb1yLK7E -u2vGY2K7/qiM1DZw23eBd+4t9gg+0VIjqXBfq+GsoNTDvtckUwnrWER5PY831ut9 -N89fvYS3SAUjmlvIAdKBAtKWusWTqiAxJ/05J7oGOQKBgB5PSr5i0LlupIbKui9t -XtXnRqGPxxrZZUpTkyrGOAnlCz/zq2QiwFpBWo/NMHOp0KmxzJpQ8yEY2LWlRZ61 -Oc9m0J/HtPw3Ohi1treBosEVG/0NOI9Tq1Obny23N51MVibdW6zEIyGUp/DbFS8h -5DljdOYX9IYIHHn3Ig4GeTGe +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDgdVgy2xKA4SFz +vdQnZ1mLv7hIbnsG7LD2lw6aL8CC0dIokVW+Saq7Oqli6Y9VDXY8/IOMQRgwI9fD +KBK9h5SYeIatmCnK6y7qkVQtZf6fOvoqIfvkr3IVJvC5INwHu+rw6h5yffnfDKjH +w6Yph4jalBSwBuLgLkwYzD4bq66/18dE2KlkLXjzjdlhL3OFY1uAlvseiRTM4iom +TOXgiFKQ5r/6zpwI8KRlfEfZjum3+NnPJ+1UWjqy+sbJ4ECxxtB3dwScA84VY51H +cQnv+JNpgmNMora7IUsY24UuerU7Ws9TDrMlFemsArYDlwcpwzAu3q38cIomkCNe +Yq6ExlrHAgMBAAECggEANLZ6Kx9Vvhyg/YyEKWjVF8PDpIcFr3+go5igHke+nzpl +b4+KInEsfmHta8RMG/5YWUQ4JJUY+B1Cy5s6o3YWyKPthREqJ3SKBR5yNWMxo/V2 +0LRActldImiNufxkkBBqwX9J/TtmliJj9N4WxMQGuMZ0AU7ssxdMWbqFj3wHQxgZ ++cfxzDAu4AO48o6+A5R39Q8fQRqCCZ4d5pZ2xd5h5q+7gsDTuZULkT4Bzh87Zq3f +h3FSE4fJ79tG0aDKhG5NscLrsI3zIfZDWPKJeICB2egWS4Jd8nH/6ioad9hdiSv8 +TdeMKMcLl1jEfVCcMytrZpYA3RpDGCR4yU/Zv/1hQQKBgQD9VEc6CzEBoeYw9ADW +Ymrxz62iUd1jzHxVJTdGqtDPwH1oDOMli7u98+2TZLDrP32RrwZVXSswXaA3oqvR +GNB20Db5yN3FDLXCH3+DVqEucsb8hkAYONb/8VX9tpqfUBwz9+IDx2J5igAMuClz +6d7L86pL4kC/NBO62kk0eE1E5wKBgQDi0yU+YKeFEj1W/Hb5k/e0kIJIcgY01VlI +NcFiyvrLsv5fbD4WjyhW9jJj8z6sa8k0T2vvV3mZSL4Hz6vb8RqkPCw1R/xGWE/S +89E3pBp2I48rs23bBfVs7vgBFx+VnnDdOeCntZp7dBa5Ok+YAqOHk5YP2ZCk3gjT +eG3a/TOfIQKBgQDyqB/yAXZX0fTlP1TuBifaqMvxh+lBB0axaIyiLE0IM6HsYSvT +cx3KvjT70p+FN7PYMIcoja4pDgXCRRe/mr1Uke2XJkkHzzzrTbCe5gROsbLZgN80 +VH3dfBaaiKdjoyDgxrjAVeSF9yJFDMLoPUUkp6qgNYE/pWqguScWE4YwUQKBgQCL +WdsMuobQi0ciFNLnPA+3X/yak2ratKQ4Z8Yacsens5zxdOekJmlLG9ATddJwTXv8 +ZjrSfTRYhscwt1ZHNpX+hnVGeqYzdXf9CwvjGi+jmu8PkxmPsNZ6CUpWKSWfXwrJ +7w/lGP4CkGyReZCCvERJO9O6gxiJIVvcx6T+IAbB4QKBgQC09xmYGmJc2xejW5g0 +iEqhy7oyqRMMRa51EOAfG9qXRdYkQjZ/kEVn5piuDCNVTJci+9VrLRbQFP+Yiqr3 +zpW10YwNXnQg9bXx21L8RQ/VjPSx8191fVEoGjhC+zTykFnGza4qPQJntlguwaGN +EwMXx1W5HcE77Q41EJtuOCljNQ== -----END PRIVATE KEY----- diff --git a/app/main/api/etc/merchant/appCertPublicKey_2021004165608254.crt b/app/main/api/etc/merchant/appCertPublicKey_2021004165608254.crt deleted file mode 100644 index 55f1aaa..0000000 --- a/app/main/api/etc/merchant/appCertPublicKey_2021004165608254.crt +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEpzCCA4+gAwIBAgIQICUEEJni7ld+YaII5tXCjTANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE -BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs -YXNzIDEgUjEwHhcNMjUwNDEwMDQwNTQyWhcNMzAwNDA5MDQwNTQyWjBuMQswCQYDVQQGEwJDTjEz -MDEGA1UECgwq5rW35Y2X55yB5a2m5a6H5oCd572R57uc56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYD -VQQLDAZBbGlwYXkxGTAXBgNVBAMMEDIwODg4NDE4NzM0NTQwNTMwggEiMA0GCSqGSIb3DQEBAQUA -A4IBDwAwggEKAoIBAQCPsXuwFJeHAL8CwI0QdD9GP7xQ8eejIoQKg6J3/peu26su68JCtGSRhlDm -/7vbLHJcFR6h7at+INoz2juc7SqlmNO7i9wKc3+Ua0487y1G2fCsneRNxTTqbceBZwqjj9/AAN0u -5/4nSl0bcqTeMddofdpTGOvwGvIJh6CZgCglnhMZnH4D6H6yiIyZf7Q6k2d/qBpVGK8kluYEtSnf -/vEQCHhxRx+/DgTL7V1LjbA3BYoPTELZ15JAj0uIzuxextAtxOm4+Huli0RJFAN3q/to2L1Zs8yY -Y1gKJyTaPWKsJWBx8zI+gZcC/e45k6CZnGgh1Fn3+Xqkf7eGxJGGHs1fAgMBAAGjggEqMIIBJjAf -BgNVHSMEGDAWgBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQUb4Kgf8qXsgDnWyG5deLm -Rw1DhPowQAYDVR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlw -YXkuY29tL2Nwcy5wZGYwDgYDVR0PAQH/BAQDAgbAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9j -YS5hbGlwYXkuY29tL2NybDEwMC5jcmwwYAYIKwYBBQUHAQEEVDBSMCgGCCsGAQUFBzAChhxodHRw -Oi8vY2EuYWxpcGF5LmNvbS9jYTYuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2EuYWxpcGF5LmNv -bTo4MzQwLzANBgkqhkiG9w0BAQsFAAOCAQEAYFgnBMeYL/+DjWpimqTtlGnlDsjPUDOjpZopzSa+ -HdL4nxWZBW48K+EzN8x45Ua7b1VKNmHWXe1O3X6W2Cz2H53NslVglzipPnxg9REx3Acr+8spkxWe -oxX9+1xwbSzBnpwG4UayambP0I6L2V9YQxSiLlLr6t2VuDxwCHVLu83rvnrOdlKjyjZop6oufhC9 -29BqfVmR6xuZv/VsCRx+BuRqNtHDoOZuP26kRVaHdnZMPPyTVw++cBt5Xh0Pq6vrYr1Nr9Kkp7wy -8RW951YTarYY5rDQ8RdaEFxPc+QWKQujVFQCvvt3ktTzrVa1mCgW/vX5qI0hXdPGGbq0DH3dxg== ------END CERTIFICATE----- \ No newline at end of file diff --git a/app/main/api/etc/merchant/appCertPublicKey_2021006123622041.crt b/app/main/api/etc/merchant/appCertPublicKey_2021006123622041.crt new file mode 100644 index 0000000..d88ec7d --- /dev/null +++ b/app/main/api/etc/merchant/appCertPublicKey_2021006123622041.crt @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIIEoTCCA4mgAwIBAgIQICYBEOs33ob1Bcbq8xD7hDANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE +BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs +YXNzIDEgUjEwHhcNMjYwMTEwMDUwMDUwWhcNMzEwMTA5MDUwMDUwWjBoMQswCQYDVQQGEwJDTjEt +MCsGA1UECgwk5YyX5Lqs5q2j5L+h546v5a6H56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZB +bGlwYXkxGTAXBgNVBAMMEDIwODgyODAwODc0ODMyMzkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCIKtfg9W/XpthZ5Fx0vPXpi8Sh79wWq6zeYlJnP4B6nC75u0BB9l24ubTMUsfbk0S4 +iFrjnmGrpzNWCK2ZsM7rjfIdzCoOrek/Q2DTjiWFwMngj5kiprFjEnFbRX6MKE6IQTwlbeh9gaDO +2jna/TdGxYFAso8h0MJJNONaA3L8j4PeCciMyR1p4ThhxZ2Q2Z1pMfA/83Sy/SD8w60XuQ/UZKCu +tIePzv9fAUIhRQ8jljKMtNXh5AoUWdUInGZQf5l8X9Nd6wiK86Rb/HMPKbffozcuioYGYZLAs1YB +D00GnWtLvmttKhjNFqIMa7n+R5lJAOPYfJB44Wv61VsdKOFPAgMBAAGjggEqMIIBJjAfBgNVHSME +GDAWgBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQU34KKoqWP49sB7ugiDcjD8eR1IWQw +QAYDVR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlwYXkuY29t +L2Nwcy5wZGYwDgYDVR0PAQH/BAQDAgbAMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9jYS5hbGlw +YXkuY29tL2NybDEwOS5jcmwwYAYIKwYBBQUHAQEEVDBSMCgGCCsGAQUFBzAChhxodHRwOi8vY2Eu +YWxpcGF5LmNvbS9jYTYuY2VyMCYGCCsGAQUFBzABhhpodHRwOi8vY2EuYWxpcGF5LmNvbTo4MzQw +LzANBgkqhkiG9w0BAQsFAAOCAQEAWLx4a7kL7DNuYpdgQCwFi3PaLxqQUt7VbFywlmY6TK4LmxXP +tF2uALFCJxW7MJLeixSMkJlOXcyljLJ6td5A32F8YN4BnDvBu1AxYY4vbXjcLTqO0ttI92jjQX+O +h3NdTE39cApOe00IKpuF5DUwz0xyPDTPjHqy4AzRIc+3hNg+XwZ1RBaMaYLiHDJb+ckb8uueDRT+ +NCXLGTdm6zmF8qZNwJqze1bonzlrbSvq6dv06GSSeD2q02rk+HRZZ8qNwvVLUgfl4uIS4gRDAeI5 +p+vmIH7OFhMJXppvunZRQoxP4g/kDw7aj/ih1IkXK/SQZwckauqzzDTuQ1Ae+s89XA== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/app/main/api/etc/merchant/pub_key.pem b/app/main/api/etc/merchant/pub_key.pem index 9356d8d..81b4124 100644 --- a/app/main/api/etc/merchant/pub_key.pem +++ b/app/main/api/etc/merchant/pub_key.pem @@ -1,9 +1,9 @@ -----BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvwSy7dS/ICZV38tI0HxM -SAIE7+Ug92qryuNlkNyaNDRjfsykHsrPCSsUUQEZblBNmZOLfLQxmAaWC+cQqWCv -zfy4rXGAHE1widWFkHGzQzaw6cB0VdDXatK9yAt1PgXdp5jzBRzOn9Z3u4t0s771 -2zjuxCnLxMq84DovNgh2y0LBiuorWbtuTFTd8SXUGk2Jyuojq/02U3KTuyh+7SmW -ffJXKrzhrKwSpGh59e/fFxqX2xGlVoJ1kdohMZPo/7k+e5jP7qjrf93l7JVeUKYa -V27hNVowJ4oho21WVCJ1AYo41IbPJWI+6WxlaVeoR4zKix0Mb2timaWayyLoN53y -aQIDAQAB +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6z5dx4x8sAU0ANeQ1gSm +cu4o2ivdlxE9ENllKLxODS2slfVttTx6IK54oLtYNVcXVBQ5nNatO52c4J7JDpi7 +pUPlBNMvYffe0e7UlQDMXjiDYJ7wzwZTQOwT3ay8IGFH6RPkdsgBuBqGvLoljB/5 +7cIALJYzCVGBUuvrvVcJSGHfAgdsDO4NCdxgbd86xNuh2pjAntz2CL/IOoRaK1qL +g+rXm3LJlX2h3J1WJgptZYE9Q/Nqq7f3lFaMT2CWpH+NWmJHsSJeJ+vhvA128RWr +sVZlqa0EOgRvg1zva34P2WbUL/Mz/vQKucbjpzVNttv0MsM1r/dReAvp62pyQwKK +mwIDAQAB -----END PUBLIC KEY----- diff --git a/app/main/api/internal/config/config.go b/app/main/api/internal/config/config.go index 4117ad1..435ecdb 100644 --- a/app/main/api/internal/config/config.go +++ b/app/main/api/internal/config/config.go @@ -24,6 +24,7 @@ type Config struct { AdminConfig AdminConfig TaxConfig TaxConfig Promotion PromotionConfig // 推广链接配置 + TencentCloud TencentCloudConfig } // JwtAuth 用于 JWT 鉴权配置 @@ -116,3 +117,10 @@ type PromotionConfig struct { PromotionDomain string // 推广域名(用于生成短链) OfficialDomain string // 正式站点域名(短链重定向的目标域名) } +type TencentCloudConfig struct { + SecretId string + SecretKey string + SmsSdkAppId string // 短信应用ID + SignName string // 短信签名 + TemplateId string // 短信模板ID +} diff --git a/app/main/api/internal/logic/app/getappversionlogic.go b/app/main/api/internal/logic/app/getappversionlogic.go index cd3b207..f079afa 100644 --- a/app/main/api/internal/logic/app/getappversionlogic.go +++ b/app/main/api/internal/logic/app/getappversionlogic.go @@ -26,6 +26,6 @@ func NewGetAppVersionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Get func (l *GetAppVersionLogic) GetAppVersion() (resp *types.GetAppVersionResp, err error) { return &types.GetAppVersionResp{ Version: "1.0.0", - WgtUrl: "https://www.quannengcha.com/app_version/bdqr_1.0.0.wgt", + WgtUrl: "https://www.yuyuecha.com/app_version/bdqr_1.0.0.wgt", }, nil } diff --git a/app/main/api/internal/logic/auth/sendsmslogic.go b/app/main/api/internal/logic/auth/sendsmslogic.go index ad3365e..4de34a2 100644 --- a/app/main/api/internal/logic/auth/sendsmslogic.go +++ b/app/main/api/internal/logic/auth/sendsmslogic.go @@ -1,9 +1,9 @@ package auth import ( - "context" "bdqr-server/common/xerr" "bdqr-server/pkg/lzkit/crypto" + "context" "fmt" "math/rand" "time" diff --git a/app/main/api/internal/service/authorizationService.go b/app/main/api/internal/service/authorizationService.go index 5dbd929..fd0e287 100644 --- a/app/main/api/internal/service/authorizationService.go +++ b/app/main/api/internal/service/authorizationService.go @@ -1,14 +1,14 @@ package service import ( + "bdqr-server/app/main/api/internal/config" + "bdqr-server/app/main/model" "bytes" "context" "database/sql" "fmt" "os" "path/filepath" - "bdqr-server/app/main/api/internal/config" - "bdqr-server/app/main/model" "time" "github.com/google/uuid" @@ -163,7 +163,7 @@ func (s *AuthorizationService) generatePDFContent(userInfo map[string]interface{ } // 构建授权书内容(去掉标题部分) - content := fmt.Sprintf(`海南海宇大数据有限公司: + content := fmt.Sprintf(`北京正信环宇科技有限公司: 本人%s拟向贵司申请大数据分析报告查询业务,贵司需要了解本人相关状况,用于查询大数据分析报告,因此本人同意向贵司提供本人的姓名和手机号等个人信息,并同意贵司向第三方(包括但不限于西部数据交易有限公司)传送上述信息。第三方将使用上述信息核实信息真实情况,查询信用记录,并生成报告。 授权内容如下: @@ -186,8 +186,8 @@ func (s *AuthorizationService) generatePDFContent(userInfo map[string]interface{ 附加说明: 本人在授权的相关数据将依据法律法规及贵司内部数据管理规范妥善存储,存储期限为法律要求的最短必要时间。超过存储期限或在数据使用目的达成后,贵司将对相关数据进行销毁或匿名化处理。 本人有权随时撤回本授权书中的授权,但撤回前的授权行为及其法律后果仍具有法律效力。若需撤回授权,本人可通过贵司官方渠道提交书面申请,贵司将在收到申请后依法停止对本人数据的使用。 -你通过"全能查",自愿支付相应费用,用于购买海南海宇大数据有限公司的大数据报告产品。如若对产品内容存在异议,可通过邮箱admin@iieeii.com或APP"联系客服"按钮进行反馈,贵司将在收到异议之日起20日内进行核查和处理,并将结果答复。 -你向海南海宇大数据有限公司的支付方式为:海南海宇大数据有限公司及其经官方授权的相关企业的支付宝账户。 +你通过"愉悦查",自愿支付相应费用,用于购买北京正信环宇科技有限公司的大数据报告产品。如若对产品内容存在异议,可通过邮箱admin@iieeii.com或APP"联系客服"按钮进行反馈,贵司将在收到异议之日起20日内进行核查和处理,并将结果答复。 +你向北京正信环宇科技有限公司的支付方式为:北京正信环宇科技有限公司及其经官方授权的相关企业的支付宝账户。 争议解决机制: 若因本授权书引发争议,双方应友好协商解决;协商不成的,双方同意将争议提交至授权书签署地(海南省)有管辖权的人民法院解决。 diff --git a/app/main/api/internal/service/tencentCloudService.go b/app/main/api/internal/service/tencentCloudService.go new file mode 100644 index 0000000..69bf70a --- /dev/null +++ b/app/main/api/internal/service/tencentCloudService.go @@ -0,0 +1,71 @@ +package service + +import ( + "bdqr-server/app/main/api/internal/config" + "strings" + + "github.com/pkg/errors" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" + sms "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms/v20210111" //引入sms +) + +type TencentCloudService struct { + config config.Config + TencentSmsClient *sms.Client +} + +func NewTencentCloudService(config config.Config) *TencentCloudService { + credential := common.NewCredential( + config.TencentCloud.SecretId, + config.TencentCloud.SecretKey, + ) + cpf := profile.NewClientProfile() + cpf.HttpProfile.ReqMethod = "POST" + cpf.HttpProfile.ReqTimeout = 10 // 请求超时时间,单位为秒(默认60秒) + /* 指定接入地域域名,默认就近地域接入域名为 sms.tencentcloudapi.com ,也支持指定地域域名访问,例如广州地域的域名为 sms.ap-guangzhou.tencentcloudapi.com */ + cpf.HttpProfile.Endpoint = "sms.tencentcloudapi.com" + /* SDK 默认用 TC3-HMAC-SHA256 进行签名,非必要请不要修改该字段 */ + cpf.SignMethod = "HmacSHA1" + cpf.Debug = true + /* 实例化 SMS 的 client 对象 + * 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 */ + client, err := sms.NewClient(credential, "ap-guangzhou", cpf) + if err != nil { + panic(err) + } + return &TencentCloudService{ + config: config, + TencentSmsClient: client, + } +} + +// SendVerificationCode 发送验证码短信 +func (t *TencentCloudService) SendVerificationCode(mobile, code string) error { + // 判断手机号是否以+86开头,如果没有则自动添加 + if !strings.HasPrefix(mobile, "+86") { + mobile = "+86" + mobile + } + + request := &sms.SendSmsRequest{} + request.SmsSdkAppId = common.StringPtr(t.config.TencentCloud.SmsSdkAppId) + request.SignName = common.StringPtr(t.config.TencentCloud.SignName) + request.TemplateParamSet = common.StringPtrs([]string{code}) + request.TemplateId = common.StringPtr(t.config.TencentCloud.TemplateId) + request.PhoneNumberSet = common.StringPtrs([]string{mobile}) + + response, err := t.TencentSmsClient.SendSms(request) + if err != nil { + return errors.Wrapf(err, "调用腾讯云短信服务失败") + } + + if len(response.Response.SendStatusSet) == 0 { + return errors.New("腾讯云短信服务返回空响应") + } + + if *response.Response.SendStatusSet[0].Code != "Ok" { + return errors.Errorf("腾讯云短信服务响应失败: %s", *response.Response.SendStatusSet[0].Message) + } + + return nil +} diff --git a/app/main/api/internal/service/wechatpayService.go b/app/main/api/internal/service/wechatpayService.go index 176cc54..329414b 100644 --- a/app/main/api/internal/service/wechatpayService.go +++ b/app/main/api/internal/service/wechatpayService.go @@ -1,15 +1,15 @@ package service import ( + "bdqr-server/app/main/api/internal/config" + "bdqr-server/app/main/model" + "bdqr-server/common/ctxdata" + "bdqr-server/pkg/lzkit/lzUtils" "context" "fmt" "net/http" "strconv" "time" - "bdqr-server/app/main/api/internal/config" - "bdqr-server/app/main/model" - "bdqr-server/common/ctxdata" - "bdqr-server/pkg/lzkit/lzUtils" "github.com/wechatpay-apiv3/wechatpay-go/core" "github.com/wechatpay-apiv3/wechatpay-go/core/auth/verifiers" @@ -38,8 +38,9 @@ const ( type InitType string const ( - InitTypePlatformCert InitType = "platform_cert" // 平台证书初始化 - InitTypeWxPayPubKey InitType = "wxpay_pubkey" // 微信支付公钥初始化 + InitTypePlatformCert InitType = "platform_cert" // 平台证书初始化 + InitTypeWxPayPubKey InitType = "wxpay_pubkey" // 微信支付公钥初始化(混合兼容模式) + InitTypeWxPayPubKeyPure InitType = "wxpay_pubkey_pure" // 微信支付公钥初始化(纯公钥模式) ) type WechatPayService struct { @@ -56,6 +57,8 @@ func NewWechatPayService(c config.Config, userAuthModel model.UserAuthModel, ini return newWechatPayServiceWithPlatformCert(c, userAuthModel) case InitTypeWxPayPubKey: return newWechatPayServiceWithWxPayPubKey(c, userAuthModel) + case InitTypeWxPayPubKeyPure: + return newWechatPayServiceWithWxPayPubKeyPure(c, userAuthModel) default: logx.Errorf("不支持的初始化类型: %s", initType) panic(fmt.Sprintf("初始化失败,服务停止: %s", initType)) @@ -151,7 +154,56 @@ func newWechatPayServiceWithWxPayPubKey(c config.Config, userAuthModel model.Use notifyHandler := notify.NewNotifyHandler( mchAPIv3Key, verifiers.NewSHA256WithRSACombinedVerifier(certificateVisitor, mchPublicKeyID, *mchPublicKey)) - logx.Infof("微信支付客户端初始化成功(微信支付公钥方式)") + logx.Infof("微信支付客户端初始化成功(微信支付公钥方式-混合兼容模式)") + return &WechatPayService{ + config: c, + wechatClient: client, + notifyHandler: notifyHandler, + userAuthModel: userAuthModel, + } +} + +// newWechatPayServiceWithWxPayPubKeyPure 使用微信支付公钥初始化微信支付服务(纯公钥模式) +func newWechatPayServiceWithWxPayPubKeyPure(c config.Config, userAuthModel model.UserAuthModel) *WechatPayService { + // 从配置中加载商户信息 + mchID := c.Wxpay.MchID + mchCertificateSerialNumber := c.Wxpay.MchCertificateSerialNumber + mchAPIv3Key := c.Wxpay.MchApiv3Key + mchPrivateKeyPath := c.Wxpay.MchPrivateKeyPath + mchPublicKeyID := c.Wxpay.MchPublicKeyID + mchPublicKeyPath := c.Wxpay.MchPublicKeyPath + + // 从文件中加载商户私钥 + mchPrivateKey, err := utils.LoadPrivateKeyWithPath(mchPrivateKeyPath) + if err != nil { + logx.Errorf("加载商户私钥失败: %v", err) + panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) + } + + // 从文件中加载微信支付公钥 + mchPublicKey, err := utils.LoadPublicKeyWithPath(mchPublicKeyPath) + if err != nil { + logx.Errorf("加载微信支付公钥失败: %v", err) + panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) + } + + // 使用商户私钥和其他参数初始化微信支付客户端 + opts := []core.ClientOption{ + option.WithWechatPayPublicKeyAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchPublicKeyID, mchPublicKey), + } + client, err := core.NewClient(context.Background(), opts...) + if err != nil { + logx.Errorf("创建微信支付客户端失败: %v", err) + panic(fmt.Sprintf("初始化失败,服务停止: %v", err)) + } + + // 纯公钥模式:只使用公钥进行验签,不注册证书下载器,不使用平台证书 + // 使用 SHA256WithRSAPubkeyVerifier 直接使用公钥进行验签 + notifyHandler := notify.NewNotifyHandler( + mchAPIv3Key, + verifiers.NewSHA256WithRSAPubkeyVerifier(mchPublicKeyID, *mchPublicKey)) + + logx.Infof("微信支付客户端初始化成功(微信支付公钥方式-纯公钥模式)") return &WechatPayService{ config: c, wechatClient: client, diff --git a/app/main/api/internal/svc/servicecontext.go b/app/main/api/internal/svc/servicecontext.go index a7df53f..774385e 100644 --- a/app/main/api/internal/svc/servicecontext.go +++ b/app/main/api/internal/svc/servicecontext.go @@ -1,12 +1,12 @@ package svc import ( - "time" "bdqr-server/app/main/api/internal/config" "bdqr-server/app/main/api/internal/middleware" "bdqr-server/app/main/api/internal/service" tianyuanapi "bdqr-server/app/main/api/internal/service/tianyuanapi_sdk" "bdqr-server/app/main/model" + "time" "github.com/hibiken/asynq" "github.com/zeromicro/go-zero/core/logx" @@ -90,6 +90,7 @@ type ServiceContext struct { DictService *service.DictService ImageService *service.ImageService AuthorizationService *service.AuthorizationService + TencentCloudService *service.TencentCloudService } // NewServiceContext 创建服务上下文 @@ -170,7 +171,7 @@ func NewServiceContext(c config.Config) *ServiceContext { // ============================== 业务服务初始化 ============================== alipayService := service.NewAliPayService(c) - wechatPayService := service.NewWechatPayService(c, userAuthModel, service.InitTypeWxPayPubKey) + wechatPayService := service.NewWechatPayService(c, userAuthModel, service.InitTypeWxPayPubKeyPure) applePayService := service.NewApplePayService(c) apiRequestService := service.NewApiRequestService(c, featureModel, productFeatureModel, tianyuanapi) verificationService := service.NewVerificationService(c, tianyuanapi, apiRequestService) @@ -183,7 +184,7 @@ func NewServiceContext(c config.Config) *ServiceContext { dictService := service.NewDictService(adminDictTypeModel, adminDictDataModel) imageService := service.NewImageService() authorizationService := service.NewAuthorizationService(c, authorizationDocumentModel) - + tencentCloudService := service.NewTencentCloudService(c) // ============================== 异步任务服务 ============================== asynqServer := asynq.NewServer( asynq.RedisClientOpt{Addr: c.CacheRedis[0].Host, Password: c.CacheRedis[0].Pass}, @@ -270,6 +271,7 @@ func NewServiceContext(c config.Config) *ServiceContext { DictService: dictService, ImageService: imageService, AuthorizationService: authorizationService, + TencentCloudService: tencentCloudService, } } diff --git a/go.mod b/go.mod index b7f073c..387751e 100644 --- a/go.mod +++ b/go.mod @@ -6,12 +6,11 @@ toolchain go1.23.4 require ( github.com/Masterminds/squirrel v1.5.4 - github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10 + github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.13 github.com/alibabacloud-go/dysmsapi-20170525/v3 v3.0.6 - github.com/alibabacloud-go/tea v1.2.2 - github.com/alibabacloud-go/tea-utils/v2 v2.0.7 + github.com/alibabacloud-go/tea v1.4.0 + github.com/alibabacloud-go/tea-utils/v2 v2.0.9 github.com/bytedance/sonic v1.13.0 - github.com/cenkalti/backoff/v4 v4.3.0 github.com/fogleman/gg v1.3.0 github.com/go-playground/validator/v10 v10.22.1 github.com/golang-jwt/jwt/v4 v4.5.0 @@ -26,7 +25,8 @@ require ( github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/smartwalle/alipay/v3 v3.2.23 github.com/sony/sonyflake v1.2.0 - github.com/stretchr/testify v1.10.0 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49 + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.1.49 github.com/tidwall/gjson v1.18.0 github.com/wechatpay-apiv3/wechatpay-go v0.2.20 github.com/zeromicro/go-zero v1.7.3 @@ -41,14 +41,13 @@ require ( github.com/alibabacloud-go/endpoint-util v1.1.0 // indirect github.com/alibabacloud-go/openapi-util v0.1.0 // indirect github.com/alibabacloud-go/tea-utils v1.3.1 // indirect - github.com/alibabacloud-go/tea-xml v1.1.3 // indirect - github.com/aliyun/credentials-go v1.3.10 // indirect + github.com/aliyun/credentials-go v1.4.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bytedance/sonic/loader v0.2.2 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/clbanning/mxj/v2 v2.5.5 // indirect + github.com/clbanning/mxj/v2 v2.7.0 // indirect github.com/cloudwego/base64x v0.1.5 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/fatih/color v1.17.0 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect @@ -72,7 +71,6 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/openzipkin/zipkin-go v0.4.3 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.55.0 // indirect @@ -83,7 +81,6 @@ require ( github.com/smartwalle/nsign v1.0.9 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/cast v1.7.0 // indirect - github.com/stretchr/objx v0.5.2 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect @@ -111,5 +108,4 @@ require ( google.golang.org/protobuf v1.35.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 0fa02f5..d01793d 100644 --- a/go.sum +++ b/go.sum @@ -20,8 +20,8 @@ github.com/alibabacloud-go/darabonba-encode-util v0.0.2/go.mod h1:JiW9higWHYXm7F github.com/alibabacloud-go/darabonba-map v0.0.2 h1:qvPnGB4+dJbJIxOOfawxzF3hzMnIpjmafa0qOTp6udc= github.com/alibabacloud-go/darabonba-map v0.0.2/go.mod h1:28AJaX8FOE/ym8OUFWga+MtEzBunJwQGceGQlvaPGPc= github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.2/go.mod h1:5JHVmnHvGzR2wNdgaW1zDLQG8kOC4Uec8ubkMogW7OQ= -github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10 h1:GEYkMApgpKEVDn6z12DcH1EGYpDYRB8JxsazM4Rywak= -github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10/go.mod h1:26a14FGhZVELuz2cc2AolvW4RHmIO3/HRwsdHhaIPDE= +github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.13 h1:Q00FU3H94Ts0ZIHDmY+fYGgB7dV9D/YX6FGsgorQPgw= +github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.13/go.mod h1:lxFGfobinVsQ49ntjpgWghXmIF0/Sm4+wvBJ1h5RtaE= github.com/alibabacloud-go/darabonba-signature-util v0.0.7 h1:UzCnKvsjPFzApvODDNEYqBHMFt1w98wC7FOo0InLyxg= github.com/alibabacloud-go/darabonba-signature-util v0.0.7/go.mod h1:oUzCYV2fcCH797xKdL6BDH8ADIHlzrtKVjeRtunBNTQ= github.com/alibabacloud-go/darabonba-string v1.0.2 h1:E714wms5ibdzCqGeYJ9JCFywE5nDyvIXIIQbZVFkkqo= @@ -44,19 +44,19 @@ github.com/alibabacloud-go/tea v1.1.11/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/Ke github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= github.com/alibabacloud-go/tea v1.1.19/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= github.com/alibabacloud-go/tea v1.1.20/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= -github.com/alibabacloud-go/tea v1.2.2 h1:aTsR6Rl3ANWPfqeQugPglfurloyBJY85eFy7Gc1+8oU= github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZLAQdpmpXMgwk= +github.com/alibabacloud-go/tea v1.3.13/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg= +github.com/alibabacloud-go/tea v1.4.0 h1:MSKhu/kWLPX7mplWMngki8nNt+CyUZ+kfkzaR5VpMhA= +github.com/alibabacloud-go/tea v1.4.0/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg= github.com/alibabacloud-go/tea-utils v1.3.1 h1:iWQeRzRheqCMuiF3+XkfybB3kTgUXkXX+JMrqfLeB2I= github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE= github.com/alibabacloud-go/tea-utils/v2 v2.0.0/go.mod h1:U5MTY10WwlquGPS34DOeomUGBB0gXbLueiq5Trwu0C4= github.com/alibabacloud-go/tea-utils/v2 v2.0.3/go.mod h1:sj1PbjPodAVTqGTA3olprfeeqqmwD0A5OQz94o9EuXQ= github.com/alibabacloud-go/tea-utils/v2 v2.0.5/go.mod h1:dL6vbUT35E4F4bFTHL845eUloqaerYBYPsdWR2/jhe4= -github.com/alibabacloud-go/tea-utils/v2 v2.0.6/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I= -github.com/alibabacloud-go/tea-utils/v2 v2.0.7 h1:WDx5qW3Xa5ZgJ1c8NfqJkF6w+AU5wB8835UdhPr6Ax0= github.com/alibabacloud-go/tea-utils/v2 v2.0.7/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I= +github.com/alibabacloud-go/tea-utils/v2 v2.0.9 h1:y6pUIlhjxbZl9ObDAcmA1H3c21eaAxADHTDQmBnAIgA= +github.com/alibabacloud-go/tea-utils/v2 v2.0.9/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I= github.com/alibabacloud-go/tea-xml v1.1.2/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8= -github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0= -github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8= github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302 h1:uvdUDbHQHO85qeSydJtItA4T55Pw6BtAejd0APRJOCE= github.com/alicebob/gopher-json v0.0.0-20230218143504-906a9b012302/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= github.com/alicebob/miniredis/v2 v2.33.0 h1:uvTF0EDeu9RLnUEG27Db5I68ESoIxTiXbNUiji6lZrA= @@ -64,8 +64,8 @@ github.com/alicebob/miniredis/v2 v2.33.0/go.mod h1:MhP4a3EU7aENRi9aO+tHfTBZicLqQ github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw= github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0= github.com/aliyun/credentials-go v1.3.6/go.mod h1:1LxUuX7L5YrZUWzBrRyk0SwSdH4OmPrib8NVePL3fxM= -github.com/aliyun/credentials-go v1.3.10 h1:45Xxrae/evfzQL9V10zL3xX31eqgLWEaIdCoPipOEQA= -github.com/aliyun/credentials-go v1.3.10/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= +github.com/aliyun/credentials-go v1.4.5 h1:O76WYKgdy1oQYYiJkERjlA2dxGuvLRrzuO2ScrtGWSk= +github.com/aliyun/credentials-go v1.4.5/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= @@ -83,8 +83,9 @@ github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/clbanning/mxj/v2 v2.5.5 h1:oT81vUeEiQQ/DcHbzSytRngP6Ky9O+L+0Bw0zSJag9E= github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= +github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME= +github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= @@ -268,6 +269,10 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49 h1:BQwUw2V21zIRJxstnaxtG/22lBL3+FbUgWhaC6Qd9ws= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.49/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.1.49 h1:8mlcG8TmoeEIDQGLYvqc9fdBQrNwKEb56I2HVNy9jdw= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.1.49/go.mod h1:YAdTku4GgK5H2LKea4bPgWf3qFLBibIBzgU1LW5WgEc= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -324,10 +329,13 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -340,6 +348,9 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -354,10 +365,13 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -368,6 +382,9 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -382,20 +399,27 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -404,6 +428,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M= golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= @@ -418,6 +444,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=