diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java index 512a7c556..e09bd328c 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java @@ -140,7 +140,7 @@ public class MemberController extends BaseController { // 获取小程序appid String appId = request.getHeader("appId"); dto.setAppId(appId); - String memberToken = memberService.wechatLogin(dto); + String memberToken = memberService.alipayLogin(dto); response = new RestApiResponse<>(ImmutableMap.of("memberToken", memberToken)); } catch (Exception e) { logger.error("支付宝登录异常 param:{}", JSON.toJSONString(dto), e); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 6c7ada327..b472c162f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -226,6 +226,10 @@ public class MemberService { return memberRegisterAndLogin(mobileNumber, firstLevelMerchantId, openId); } + public String alipayLogin(WechatLoginDTO dto) { + return ""; + } + /** * 获取openId * @param code diff --git a/jsowell-admin/src/main/resources/application-dev.yml b/jsowell-admin/src/main/resources/application-dev.yml index 99414e12d..f6e44d2e7 100644 --- a/jsowell-admin/src/main/resources/application-dev.yml +++ b/jsowell-admin/src/main/resources/application-dev.yml @@ -194,3 +194,17 @@ remoteUpdate: username: jsowellftp password: ZzJeZRB6fDRc uploadPath: /www/wwwroot/jsowellftp + + +# 支付宝支付参数配置 +alipay: + # 网关 + gatewayHost: openapi.alipaydev.com + # 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 + appId: 2021004145642756 + # 商户私钥,您的PKCS8格式RSA2私钥 + merchantPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3mJRX1UDkQMIwVmXEyVnY0e+Q93CZHBPM3Ws0aV/9UhNMG+3UXrWdAGNOVQgNXG93vtmz1tLhsD+TaumjSW4NFB5JKBnnEcMDoDQTiBzCKTniz8hzoMhYamh38KLqxIumrwWf3+OdHiTXayvh/NA4A13DCeUS2vKctruP3ghZ5d4ipcV6ctqazCq+/BK4xaxXPG5v+BemN5jm3qnNErEWiH0Kl/p7aUw/e8/y2Gv6RJgf/fs5ad0lnDQjUVb5pnMuYREID9PjAru7i1Uh4sr3GUoa1XUIeSLw+NEBrNdYReag3t20UZOLnEEGQeh/fwJUB73hA6fhdLDJ6CLIDkDdAgMBAAECggEBAJ/wJ6qseC9fystZOKbJ0Z90o4JiTJDVSNp7OV0bPyfrTCxNWE5dg1EWeWxP3wfksqZaeESWrHc3lurRhF9fJKP4FrocWRRXANAzy6oINSVfzLGt2S4BrwZ3DDMQSpzCQ/YdGoVAAYVqMSYIkt3341wocpHqGMjoO9oRxit6fUPx4yYhT3t8d/QZ0ReFd1YfsGieUCECxx5IeurJ2ieZczHSXUJ2hXMlf+n19+uEOUydmpfIZzg0kMM2ybRqpHZHK6UANnRZhLFvOVj2jzg6p2AbH689JGQEukoiGyCKtrfElZjyVkmvoHv0xcdiuODo0RPBZwYOckJh+RHUERiMj/ECgYEA90Yh4aZaDv5A6nHx4ptg22JoTj78FUqJtf6RzegiZzt6VDzTE/oQTzVt6qkbhd4uyxb2PuJ+1XHhZquN4gNnnpfSM8LhD3piPp7kCTEY7zrPp7HMTklb5qtEwb0ItbgfLJVf0bN+1fdTlyTH3004pSuf2C3h7flxSecmC7cPp28CgYEAvhMulEv/vcfC/aUYCiVu+X2Booj3GBwUgrPDKQxdF+zb1c90w06zf11JYXzollOn22VQtCPa+RpqRBmP8NwBu16QCFmTdH2hWug+uqoqjYpOjMBBL1nAyHuZYho7ddwUFcxl2ay/rs1HWLOvFt2AfEYvtZkQbzw0IujMKDFFlnMCgYEAy5X8c1KJN2rye5RQ+KfA+R9ujW2iEs2J0EPGO+dx29jGgPCLQRlTsENnOhr9RByIHkHLgD7u+kGGuQdqC7mN6K9LK765mgrDNJeRXFgGFYEwUvs6IQKZHbPJKlG/CA6N7CEYAQlt1jCJrBlmTl2/0421T0GHkG0dbyFW27JeuxUCgYApoKfV4KMc3DAPPuX56uLYDy2h/B8pj5TKXzZBuix1PfGTbQDkeUsEfNjCWgnSSnX7rb+0BBpD7g4R5gtJM9XJRFeFDKEnpQ/+idibJwN0xjKXzs834I9BGRipjJczI8TeVUqFFrlQPjL+8TNKba5jCTgPrHsV8Xh1oMh9kPTtkwKBgA3XCFNvlf7/ClZoVa71aEHppDn2sAbrUfo7KfsRWB1kO69MWjYeO/Rt54jRUpjSGHE5kowd3MufCa4NGhmzDo5l4QoI4WvQWTYDE46RgPTJQgJEbC976y9yI84gywMxSymTGHc4R5LkLknlCS0aht2Ebq0qFL2QVn2y3BEPHj+p + # 支付宝公钥 + alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsHZrR7g8yAAOkpzDkiRVnq02DorACdFz4Q/rupXUpaZ4HVKilc4sd6vlm18uG1th4yXSjkVBfSkNZmAs8vseg1tMvGFRvxJOpMW8GlA2nd87mDI/5a6jxXfmPtEsEsG4ddlZ3C2iF2qbnFm37dmG5+UXLYw8IodoCtkwPf6q8GvbR6ssfYE4eZRf08kv5ocelKqi4KK7tSWtTKztbwmF6g4BAW5vWEQuqXerK8DAFyLIrvMKWB6XYoA3pYpM00Ma0J62BfO2JHeRsKxYkcDHCKuOs4EMKnvxASC8RK5pKx4/q4sYH1bW3uGpv3cfG5e9V1HmXbaS1DFQAi9LHlksswIDAQAB + # 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 + notifyUrl: xxxx diff --git a/jsowell-admin/src/main/resources/application-prd.yml b/jsowell-admin/src/main/resources/application-prd.yml index fbe8b4f3f..a919c74e3 100644 --- a/jsowell-admin/src/main/resources/application-prd.yml +++ b/jsowell-admin/src/main/resources/application-prd.yml @@ -190,3 +190,16 @@ remoteUpdate: username: jsowellftpprd password: ADHJAYinpXEc uploadPath: /www/wwwroot/jsowellftpprd + +# 支付宝支付参数配置 +alipay: + # 网关 + gatewayHost: openapi.alipay.com + # 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 + appId: 2021004145642756 + # 商户私钥,您的PKCS8格式RSA2私钥 + merchantPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3mJRX1UDkQMIwVmXEyVnY0e+Q93CZHBPM3Ws0aV/9UhNMG+3UXrWdAGNOVQgNXG93vtmz1tLhsD+TaumjSW4NFB5JKBnnEcMDoDQTiBzCKTniz8hzoMhYamh38KLqxIumrwWf3+OdHiTXayvh/NA4A13DCeUS2vKctruP3ghZ5d4ipcV6ctqazCq+/BK4xaxXPG5v+BemN5jm3qnNErEWiH0Kl/p7aUw/e8/y2Gv6RJgf/fs5ad0lnDQjUVb5pnMuYREID9PjAru7i1Uh4sr3GUoa1XUIeSLw+NEBrNdYReag3t20UZOLnEEGQeh/fwJUB73hA6fhdLDJ6CLIDkDdAgMBAAECggEBAJ/wJ6qseC9fystZOKbJ0Z90o4JiTJDVSNp7OV0bPyfrTCxNWE5dg1EWeWxP3wfksqZaeESWrHc3lurRhF9fJKP4FrocWRRXANAzy6oINSVfzLGt2S4BrwZ3DDMQSpzCQ/YdGoVAAYVqMSYIkt3341wocpHqGMjoO9oRxit6fUPx4yYhT3t8d/QZ0ReFd1YfsGieUCECxx5IeurJ2ieZczHSXUJ2hXMlf+n19+uEOUydmpfIZzg0kMM2ybRqpHZHK6UANnRZhLFvOVj2jzg6p2AbH689JGQEukoiGyCKtrfElZjyVkmvoHv0xcdiuODo0RPBZwYOckJh+RHUERiMj/ECgYEA90Yh4aZaDv5A6nHx4ptg22JoTj78FUqJtf6RzegiZzt6VDzTE/oQTzVt6qkbhd4uyxb2PuJ+1XHhZquN4gNnnpfSM8LhD3piPp7kCTEY7zrPp7HMTklb5qtEwb0ItbgfLJVf0bN+1fdTlyTH3004pSuf2C3h7flxSecmC7cPp28CgYEAvhMulEv/vcfC/aUYCiVu+X2Booj3GBwUgrPDKQxdF+zb1c90w06zf11JYXzollOn22VQtCPa+RpqRBmP8NwBu16QCFmTdH2hWug+uqoqjYpOjMBBL1nAyHuZYho7ddwUFcxl2ay/rs1HWLOvFt2AfEYvtZkQbzw0IujMKDFFlnMCgYEAy5X8c1KJN2rye5RQ+KfA+R9ujW2iEs2J0EPGO+dx29jGgPCLQRlTsENnOhr9RByIHkHLgD7u+kGGuQdqC7mN6K9LK765mgrDNJeRXFgGFYEwUvs6IQKZHbPJKlG/CA6N7CEYAQlt1jCJrBlmTl2/0421T0GHkG0dbyFW27JeuxUCgYApoKfV4KMc3DAPPuX56uLYDy2h/B8pj5TKXzZBuix1PfGTbQDkeUsEfNjCWgnSSnX7rb+0BBpD7g4R5gtJM9XJRFeFDKEnpQ/+idibJwN0xjKXzs834I9BGRipjJczI8TeVUqFFrlQPjL+8TNKba5jCTgPrHsV8Xh1oMh9kPTtkwKBgA3XCFNvlf7/ClZoVa71aEHppDn2sAbrUfo7KfsRWB1kO69MWjYeO/Rt54jRUpjSGHE5kowd3MufCa4NGhmzDo5l4QoI4WvQWTYDE46RgPTJQgJEbC976y9yI84gywMxSymTGHc4R5LkLknlCS0aht2Ebq0qFL2QVn2y3BEPHj+p + # 支付宝公钥 + alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsHZrR7g8yAAOkpzDkiRVnq02DorACdFz4Q/rupXUpaZ4HVKilc4sd6vlm18uG1th4yXSjkVBfSkNZmAs8vseg1tMvGFRvxJOpMW8GlA2nd87mDI/5a6jxXfmPtEsEsG4ddlZ3C2iF2qbnFm37dmG5+UXLYw8IodoCtkwPf6q8GvbR6ssfYE4eZRf08kv5ocelKqi4KK7tSWtTKztbwmF6g4BAW5vWEQuqXerK8DAFyLIrvMKWB6XYoA3pYpM00Ma0J62BfO2JHeRsKxYkcDHCKuOs4EMKnvxASC8RK5pKx4/q4sYH1bW3uGpv3cfG5e9V1HmXbaS1DFQAi9LHlksswIDAQAB + # 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 + notifyUrl: xxxx \ No newline at end of file diff --git a/jsowell-admin/src/main/resources/application-pre.yml b/jsowell-admin/src/main/resources/application-pre.yml index 82781d13e..c6f41d80f 100644 --- a/jsowell-admin/src/main/resources/application-pre.yml +++ b/jsowell-admin/src/main/resources/application-pre.yml @@ -190,3 +190,16 @@ remoteUpdate: username: jsowellftpprd password: ADHJAYinpXEc uploadPath: /www/wwwroot/jsowellftpprd + +# 支付宝支付参数配置 +alipay: + # 网关 + gatewayHost: openapi.alipay.com + # 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 + appId: 2021004145642756 + # 商户私钥,您的PKCS8格式RSA2私钥 + merchantPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3mJRX1UDkQMIwVmXEyVnY0e+Q93CZHBPM3Ws0aV/9UhNMG+3UXrWdAGNOVQgNXG93vtmz1tLhsD+TaumjSW4NFB5JKBnnEcMDoDQTiBzCKTniz8hzoMhYamh38KLqxIumrwWf3+OdHiTXayvh/NA4A13DCeUS2vKctruP3ghZ5d4ipcV6ctqazCq+/BK4xaxXPG5v+BemN5jm3qnNErEWiH0Kl/p7aUw/e8/y2Gv6RJgf/fs5ad0lnDQjUVb5pnMuYREID9PjAru7i1Uh4sr3GUoa1XUIeSLw+NEBrNdYReag3t20UZOLnEEGQeh/fwJUB73hA6fhdLDJ6CLIDkDdAgMBAAECggEBAJ/wJ6qseC9fystZOKbJ0Z90o4JiTJDVSNp7OV0bPyfrTCxNWE5dg1EWeWxP3wfksqZaeESWrHc3lurRhF9fJKP4FrocWRRXANAzy6oINSVfzLGt2S4BrwZ3DDMQSpzCQ/YdGoVAAYVqMSYIkt3341wocpHqGMjoO9oRxit6fUPx4yYhT3t8d/QZ0ReFd1YfsGieUCECxx5IeurJ2ieZczHSXUJ2hXMlf+n19+uEOUydmpfIZzg0kMM2ybRqpHZHK6UANnRZhLFvOVj2jzg6p2AbH689JGQEukoiGyCKtrfElZjyVkmvoHv0xcdiuODo0RPBZwYOckJh+RHUERiMj/ECgYEA90Yh4aZaDv5A6nHx4ptg22JoTj78FUqJtf6RzegiZzt6VDzTE/oQTzVt6qkbhd4uyxb2PuJ+1XHhZquN4gNnnpfSM8LhD3piPp7kCTEY7zrPp7HMTklb5qtEwb0ItbgfLJVf0bN+1fdTlyTH3004pSuf2C3h7flxSecmC7cPp28CgYEAvhMulEv/vcfC/aUYCiVu+X2Booj3GBwUgrPDKQxdF+zb1c90w06zf11JYXzollOn22VQtCPa+RpqRBmP8NwBu16QCFmTdH2hWug+uqoqjYpOjMBBL1nAyHuZYho7ddwUFcxl2ay/rs1HWLOvFt2AfEYvtZkQbzw0IujMKDFFlnMCgYEAy5X8c1KJN2rye5RQ+KfA+R9ujW2iEs2J0EPGO+dx29jGgPCLQRlTsENnOhr9RByIHkHLgD7u+kGGuQdqC7mN6K9LK765mgrDNJeRXFgGFYEwUvs6IQKZHbPJKlG/CA6N7CEYAQlt1jCJrBlmTl2/0421T0GHkG0dbyFW27JeuxUCgYApoKfV4KMc3DAPPuX56uLYDy2h/B8pj5TKXzZBuix1PfGTbQDkeUsEfNjCWgnSSnX7rb+0BBpD7g4R5gtJM9XJRFeFDKEnpQ/+idibJwN0xjKXzs834I9BGRipjJczI8TeVUqFFrlQPjL+8TNKba5jCTgPrHsV8Xh1oMh9kPTtkwKBgA3XCFNvlf7/ClZoVa71aEHppDn2sAbrUfo7KfsRWB1kO69MWjYeO/Rt54jRUpjSGHE5kowd3MufCa4NGhmzDo5l4QoI4WvQWTYDE46RgPTJQgJEbC976y9yI84gywMxSymTGHc4R5LkLknlCS0aht2Ebq0qFL2QVn2y3BEPHj+p + # 支付宝公钥 + alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsHZrR7g8yAAOkpzDkiRVnq02DorACdFz4Q/rupXUpaZ4HVKilc4sd6vlm18uG1th4yXSjkVBfSkNZmAs8vseg1tMvGFRvxJOpMW8GlA2nd87mDI/5a6jxXfmPtEsEsG4ddlZ3C2iF2qbnFm37dmG5+UXLYw8IodoCtkwPf6q8GvbR6ssfYE4eZRf08kv5ocelKqi4KK7tSWtTKztbwmF6g4BAW5vWEQuqXerK8DAFyLIrvMKWB6XYoA3pYpM00Ma0J62BfO2JHeRsKxYkcDHCKuOs4EMKnvxASC8RK5pKx4/q4sYH1bW3uGpv3cfG5e9V1HmXbaS1DFQAi9LHlksswIDAQAB + # 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 + notifyUrl: xxxx \ No newline at end of file diff --git a/jsowell-admin/src/main/resources/application-sit.yml b/jsowell-admin/src/main/resources/application-sit.yml index 113f047a2..3ef362bc0 100644 --- a/jsowell-admin/src/main/resources/application-sit.yml +++ b/jsowell-admin/src/main/resources/application-sit.yml @@ -193,3 +193,16 @@ remoteUpdate: username: jsowellftp password: ZzJeZRB6fDRc uploadPath: /www/wwwroot/jsowellftp + +# 支付宝支付参数配置 +alipay: + # 网关 + gatewayHost: openapi.alipaydev.com + # 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 + appId: 2021004145642756 + # 商户私钥,您的PKCS8格式RSA2私钥 + merchantPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC3mJRX1UDkQMIwVmXEyVnY0e+Q93CZHBPM3Ws0aV/9UhNMG+3UXrWdAGNOVQgNXG93vtmz1tLhsD+TaumjSW4NFB5JKBnnEcMDoDQTiBzCKTniz8hzoMhYamh38KLqxIumrwWf3+OdHiTXayvh/NA4A13DCeUS2vKctruP3ghZ5d4ipcV6ctqazCq+/BK4xaxXPG5v+BemN5jm3qnNErEWiH0Kl/p7aUw/e8/y2Gv6RJgf/fs5ad0lnDQjUVb5pnMuYREID9PjAru7i1Uh4sr3GUoa1XUIeSLw+NEBrNdYReag3t20UZOLnEEGQeh/fwJUB73hA6fhdLDJ6CLIDkDdAgMBAAECggEBAJ/wJ6qseC9fystZOKbJ0Z90o4JiTJDVSNp7OV0bPyfrTCxNWE5dg1EWeWxP3wfksqZaeESWrHc3lurRhF9fJKP4FrocWRRXANAzy6oINSVfzLGt2S4BrwZ3DDMQSpzCQ/YdGoVAAYVqMSYIkt3341wocpHqGMjoO9oRxit6fUPx4yYhT3t8d/QZ0ReFd1YfsGieUCECxx5IeurJ2ieZczHSXUJ2hXMlf+n19+uEOUydmpfIZzg0kMM2ybRqpHZHK6UANnRZhLFvOVj2jzg6p2AbH689JGQEukoiGyCKtrfElZjyVkmvoHv0xcdiuODo0RPBZwYOckJh+RHUERiMj/ECgYEA90Yh4aZaDv5A6nHx4ptg22JoTj78FUqJtf6RzegiZzt6VDzTE/oQTzVt6qkbhd4uyxb2PuJ+1XHhZquN4gNnnpfSM8LhD3piPp7kCTEY7zrPp7HMTklb5qtEwb0ItbgfLJVf0bN+1fdTlyTH3004pSuf2C3h7flxSecmC7cPp28CgYEAvhMulEv/vcfC/aUYCiVu+X2Booj3GBwUgrPDKQxdF+zb1c90w06zf11JYXzollOn22VQtCPa+RpqRBmP8NwBu16QCFmTdH2hWug+uqoqjYpOjMBBL1nAyHuZYho7ddwUFcxl2ay/rs1HWLOvFt2AfEYvtZkQbzw0IujMKDFFlnMCgYEAy5X8c1KJN2rye5RQ+KfA+R9ujW2iEs2J0EPGO+dx29jGgPCLQRlTsENnOhr9RByIHkHLgD7u+kGGuQdqC7mN6K9LK765mgrDNJeRXFgGFYEwUvs6IQKZHbPJKlG/CA6N7CEYAQlt1jCJrBlmTl2/0421T0GHkG0dbyFW27JeuxUCgYApoKfV4KMc3DAPPuX56uLYDy2h/B8pj5TKXzZBuix1PfGTbQDkeUsEfNjCWgnSSnX7rb+0BBpD7g4R5gtJM9XJRFeFDKEnpQ/+idibJwN0xjKXzs834I9BGRipjJczI8TeVUqFFrlQPjL+8TNKba5jCTgPrHsV8Xh1oMh9kPTtkwKBgA3XCFNvlf7/ClZoVa71aEHppDn2sAbrUfo7KfsRWB1kO69MWjYeO/Rt54jRUpjSGHE5kowd3MufCa4NGhmzDo5l4QoI4WvQWTYDE46RgPTJQgJEbC976y9yI84gywMxSymTGHc4R5LkLknlCS0aht2Ebq0qFL2QVn2y3BEPHj+p + # 支付宝公钥 + alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsHZrR7g8yAAOkpzDkiRVnq02DorACdFz4Q/rupXUpaZ4HVKilc4sd6vlm18uG1th4yXSjkVBfSkNZmAs8vseg1tMvGFRvxJOpMW8GlA2nd87mDI/5a6jxXfmPtEsEsG4ddlZ3C2iF2qbnFm37dmG5+UXLYw8IodoCtkwPf6q8GvbR6ssfYE4eZRf08kv5ocelKqi4KK7tSWtTKztbwmF6g4BAW5vWEQuqXerK8DAFyLIrvMKWB6XYoA3pYpM00Ma0J62BfO2JHeRsKxYkcDHCKuOs4EMKnvxASC8RK5pKx4/q4sYH1bW3uGpv3cfG5e9V1HmXbaS1DFQAi9LHlksswIDAQAB + # 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 + notifyUrl: xxxx \ No newline at end of file diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index d80a33478..a3239e4bc 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -2,6 +2,8 @@ import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import com.alipay.easysdk.base.oauth.models.AlipaySystemOauthTokenResponse; +import com.alipay.easysdk.factory.Factory; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; @@ -252,6 +254,20 @@ public class SpringBootTestController { @Autowired private NotificationService notificationService; + @Test + public void alipayLoginTest() { + String refreshToken = ""; + String auth_code = "1741970ec0e7445fb2dd2712480dYX91"; + try { + // AlipaySystemOauthTokenResponse alipaySystemOauthTokenResponse = Factory.Base.OAuth().refreshToken(refreshToken); + // System.out.println(JSON.toJSONString(alipaySystemOauthTokenResponse)); + AlipaySystemOauthTokenResponse token = Factory.Base.OAuth().getToken(auth_code); + System.out.println(JSON.toJSONString(token)); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + @Test public void getOrderRefundInfoListTest() { String orderCode = "C44565166677"; diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/Constants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/Constants.java index d99c8cb6e..d91c5f456 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/Constants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/Constants.java @@ -127,6 +127,11 @@ public class Constants { public static final String ZERO_THREE = "03"; + /** + * RSA2签名算法 + */ + public static final String RSA2 = "RSA2"; + /** * UTF-8 字符集 */ @@ -137,15 +142,24 @@ public class Constants { */ public static final String GBK = "GBK"; + /** + * URL分隔符 + */ + public static final String URL_DELIMITER = "://"; + + public static final String HTTP = "http"; + + public static final String HTTPS = "https"; + /** * http请求 */ - public static final String HTTP = "http://"; + public static final String HTTP_PREFIX = HTTP + URL_DELIMITER; /** * https请求 */ - public static final String HTTPS = "https://"; + public static final String HTTPS_PREFIX = HTTPS + URL_DELIMITER; /** * 通用成功标识 diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/StringUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/StringUtils.java index 6b681a87d..426e8f0f8 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/StringUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/StringUtils.java @@ -224,7 +224,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { * @return 结果 */ public static boolean isHttp(String link) { - return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); + return StringUtils.startsWithAny(link, Constants.HTTP_PREFIX, Constants.HTTPS_PREFIX); } /** @@ -234,10 +234,10 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { */ public static String removeHttp(String link) { String result; - if (StringUtils.startsWith(link, Constants.HTTP)) { - result = link.replace(Constants.HTTP, ""); - } else if (StringUtils.startsWith(link, Constants.HTTPS)) { - result = link.replace(Constants.HTTPS, ""); + if (StringUtils.startsWith(link, Constants.HTTP_PREFIX)) { + result = link.replace(Constants.HTTP_PREFIX, ""); + } else if (StringUtils.startsWith(link, Constants.HTTPS_PREFIX)) { + result = link.replace(Constants.HTTPS_PREFIX, ""); } else { result = link; } @@ -604,4 +604,17 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { return false; } + /** + * This method removes '://' from the given URL string. + * + * @param url the URL string to be processed + * @return the processed URL string without '://' + */ + public static String removeDelimiter(String url) { + if (url == null) { + return null; + } + return url.replace(Constants.URL_DELIMITER, ""); + } + } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/alipay/AliAppletRemoteService.java b/jsowell-pile/src/main/java/com/jsowell/alipay/AliAppletRemoteService.java deleted file mode 100644 index 671f3fec5..000000000 --- a/jsowell-pile/src/main/java/com/jsowell/alipay/AliAppletRemoteService.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.jsowell.alipay; - -import com.alibaba.fastjson2.JSON; -import com.alipay.api.AlipayApiException; -import com.alipay.api.AlipayClient; -import com.alipay.api.AlipayConfig; -import com.alipay.api.DefaultAlipayClient; -import com.alipay.api.request.AlipaySystemOauthTokenRequest; -import com.alipay.api.response.AlipaySystemOauthTokenResponse; -import com.jsowell.common.enums.ykc.ReturnCodeEnum; -import com.jsowell.common.exception.BusinessException; -import com.jsowell.common.response.RestApiResponse; -import com.jsowell.common.util.StringUtils; -import com.jsowell.wxpay.service.WxAppletRemoteService; -import org.apache.commons.lang3.ObjectUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestMapping; - -import java.util.HashMap; -import java.util.Map; - -/** - * 支付宝小程序service - */ -@Service -public class AliAppletRemoteService { - - private Logger log = LoggerFactory.getLogger(AliAppletRemoteService.class); - - private static AlipayConfig getAlipayConfig() { - String privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->"; - String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->"; - AlipayConfig alipayConfig = new AlipayConfig(); - alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); - alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->"); - alipayConfig.setPrivateKey(privateKey); - alipayConfig.setFormat("json"); - alipayConfig.setAlipayPublicKey(alipayPublicKey); - alipayConfig.setCharset("UTF-8"); - alipayConfig.setSignType("RSA2"); - return alipayConfig; - } - - - - /** - * (支付宝) 换取授权访问令牌 - * alipay.system.oauth.token(换取授权访问令牌) - * @param grantType 必选 授权方式 - * @param code 可选 授权码 - * @param refreshToken 可选 刷新令牌 - * @return - */ - - - - -} diff --git a/jsowell-pile/src/main/java/com/jsowell/alipay/config/AliPayConfig.java b/jsowell-pile/src/main/java/com/jsowell/alipay/config/AliPayConfig.java new file mode 100644 index 000000000..42d21a049 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/alipay/config/AliPayConfig.java @@ -0,0 +1,48 @@ +package com.jsowell.alipay.config; + +import com.alipay.easysdk.factory.Factory; +import com.alipay.easysdk.kernel.Config; +import com.jsowell.common.constant.Constants; +import lombok.Data; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +@Order(5) +@Data +@Component +@ConfigurationProperties(prefix = "alipay") +public class AliPayConfig implements CommandLineRunner { + private String gatewayHost; + private String appId; + private String merchantPrivateKey; + private String alipayPublicKey; + private String notifyUrl; + + @Override + public void run(String... args) throws Exception { + // 设置参数(全局只需设置一次) + Config config = new Config(); + config.protocol = Constants.HTTPS; + config.gatewayHost = gatewayHost; + config.signType = Constants.RSA2; + config.appId = appId; + + // 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中 + config.merchantPrivateKey = merchantPrivateKey; + + // 注:证书文件路径支持设置为文件系统中的路径或CLASS_PATH中的路径,优先从文件系统中加载,加载失败后会继续尝试从CLASS_PATH中加载 + // config.merchantCertPath = "<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->"; + // config.alipayCertPath = "<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->"; + // config.alipayRootCertPath = "<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt -->"; + + // 注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可 + config.alipayPublicKey = alipayPublicKey; + // 可设置异步通知接收服务地址(可选) + // config.notifyUrl = "<-- 请填写您的支付类接口异步通知接收服务地址,例如:https://www.test.com/callback -->"; + // 可设置AES密钥,调用AES加解密相关接口时需要(可选) + // config.encryptKey = "<-- 请填写您的AES密钥,例如:aa4BtZ4tspm2wnXLb1ThQA== -->"; + Factory.setOptions(config); + } +} \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/alipay/service/AliAppletRemoteService.java b/jsowell-pile/src/main/java/com/jsowell/alipay/service/AliAppletRemoteService.java new file mode 100644 index 000000000..56467973a --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/alipay/service/AliAppletRemoteService.java @@ -0,0 +1,57 @@ +package com.jsowell.alipay.service; + +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.AlipayConfig; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.request.AlipaySystemOauthTokenRequest; +import com.alipay.api.response.AlipaySystemOauthTokenResponse; +import com.alipay.easysdk.factory.Factory; +import com.jsowell.alipay.config.AliPayConfig; +import com.jsowell.common.enums.ykc.ReturnCodeEnum; +import com.jsowell.common.exception.BusinessException; +import com.jsowell.common.response.RestApiResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.HashMap; +import java.util.Map; + +/** + * 支付宝小程序service + */ +@Service +public class AliAppletRemoteService { + + private Logger log = LoggerFactory.getLogger(AliAppletRemoteService.class); + + /** + * (支付宝) 换取授权访问令牌 + * alipay.system.oauth.token(换取授权访问令牌) + * @return + */ + @RequestMapping("getInfo") + public RestApiResponse getInfo(String auth_code) throws AlipayApiException { + RestApiResponse restApiResponse; + try { + if(auth_code==null||auth_code.length()==0) { + throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + } + + Map map=new HashMap<>(); + map.put("userid", ""); + restApiResponse = new RestApiResponse<>(map); + } catch (BusinessException e) { + restApiResponse = new RestApiResponse<>(e.getCode(), e.getMessage()); + } catch (Exception e) { + restApiResponse = new RestApiResponse<>(ReturnCodeEnum.CODE_FAILED); + } + + return restApiResponse; + } + + + +} diff --git a/jsowell-quartz/src/main/java/com/jsowell/quartz/controller/SysJobController.java b/jsowell-quartz/src/main/java/com/jsowell/quartz/controller/SysJobController.java index cee7267ed..fc760147c 100644 --- a/jsowell-quartz/src/main/java/com/jsowell/quartz/controller/SysJobController.java +++ b/jsowell-quartz/src/main/java/com/jsowell/quartz/controller/SysJobController.java @@ -77,7 +77,7 @@ public class SysJobController extends BaseController { return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'rmi'调用"); } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[]{Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS})) { return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'ldap(s)'调用"); - } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[]{Constants.HTTP, Constants.HTTPS})) { + } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[]{Constants.HTTP_PREFIX, Constants.HTTPS_PREFIX})) { return error("新增任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)'调用"); } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) { return error("新增任务'" + job.getJobName() + "'失败,目标字符串存在违规"); @@ -101,7 +101,7 @@ public class SysJobController extends BaseController { return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'rmi'调用"); } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[]{Constants.LOOKUP_LDAP, Constants.LOOKUP_LDAPS})) { return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'ldap(s)'调用"); - } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[]{Constants.HTTP, Constants.HTTPS})) { + } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), new String[]{Constants.HTTP_PREFIX, Constants.HTTPS_PREFIX})) { return error("修改任务'" + job.getJobName() + "'失败,目标字符串不允许'http(s)'调用"); } else if (StringUtils.containsAnyIgnoreCase(job.getInvokeTarget(), Constants.JOB_ERROR_STR)) { return error("修改任务'" + job.getJobName() + "'失败,目标字符串存在违规"); diff --git a/jsowell-system/src/main/java/com/jsowell/system/service/impl/SysMenuServiceImpl.java b/jsowell-system/src/main/java/com/jsowell/system/service/impl/SysMenuServiceImpl.java index aac2f30dd..9b803ed40 100644 --- a/jsowell-system/src/main/java/com/jsowell/system/service/impl/SysMenuServiceImpl.java +++ b/jsowell-system/src/main/java/com/jsowell/system/service/impl/SysMenuServiceImpl.java @@ -451,7 +451,7 @@ public class SysMenuServiceImpl implements SysMenuService { * @return */ public String innerLinkReplaceEach(String path) { - return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS}, + return StringUtils.replaceEach(path, new String[]{Constants.HTTP_PREFIX, Constants.HTTPS_PREFIX}, new String[]{"", ""}); } }