From ddef5f214669f9b67fbefcb421faf530468cef2a Mon Sep 17 00:00:00 2001 From: menxipeng Date: Mon, 25 Aug 2025 22:11:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B6=88=E6=81=AF=E5=8A=9F?= =?UTF-8?q?=E8=83=BDkey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 4 ++ .../ruoyi/common/constant/AliKeyConfig.java | 11 ++++ .../core/domain/entity/PushMsgInfo.java | 14 +++++ .../com/ruoyi/system/config/UmengConfig.java | 57 +++++++++++++++---- 4 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/PushMsgInfo.java diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 473c65e..825e7af 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -142,5 +142,9 @@ ali: umApp: appAliKey: 204918113 appAliSecret: v4UrIhhLZlo0adpmevyCfvThGFbrRer0 + androidSecret: vxq4qfnb3jbb3jahrcxpbtpjgcuu7dtm androidKey: 68a9988ce563686f4288e26d IOSKey: 68a99a66ec2b5b6f8825b8b1 + IOSSecret: tjbflqx0eoqjixtyrtbh0zgijawmvxfe +# androidKey: 687b2df479267e0210b79b6f +# IOSKey: 687b2e1679267e0210b79b70 \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/AliKeyConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/AliKeyConfig.java index 39f2118..26b60f5 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/AliKeyConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/AliKeyConfig.java @@ -33,6 +33,11 @@ public class AliKeyConfig implements InitializingBean { @Value("${umApp.IOSKey}") public String umAppIOSKey; + @Value("${umApp.androidSecret}") + public String androidSecret; + + @Value("${umApp.IOSSecret}") + public String IOSSecret; // 终端ID public static String ACCESS_KEY_ID; @@ -47,6 +52,10 @@ public class AliKeyConfig implements InitializingBean { public static String UMApp_AliSecret; + public static String Android_SECRET; + + public static String IOS_SECRET; + @Override public void afterPropertiesSet() { ACCESS_KEY_ID = this.accessKeyId; @@ -55,6 +64,8 @@ public class AliKeyConfig implements InitializingBean { UMApp_IOS_Key = this.umAppIOSKey; UMApp_AliKey = this.umAppAliKey; UMApp_AliSecret = this.umAppAliSecret; + Android_SECRET = this.androidSecret; + IOS_SECRET = this.IOSSecret; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/PushMsgInfo.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/PushMsgInfo.java new file mode 100644 index 0000000..a858519 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/PushMsgInfo.java @@ -0,0 +1,14 @@ +package com.ruoyi.common.core.domain.entity; + +import lombok.Data; + +@Data +public class PushMsgInfo { + + private String alias; + private String alias_type = "phone"; + private String title; + private String text; + private String ticker; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/config/UmengConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/config/UmengConfig.java index c13aa93..fef5c6a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/config/UmengConfig.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/config/UmengConfig.java @@ -4,11 +4,13 @@ import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.constant.AliKeyConfig; import com.ruoyi.common.core.domain.UmResp; +import com.ruoyi.common.core.domain.entity.PushMsgInfo; import com.ruoyi.common.enums.DeviceTypeEnum; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.system.config.push.AndroidNotification; import com.ruoyi.system.config.push.PushClient; import com.ruoyi.system.config.push.android.AndroidCustomizedcast; +import com.ruoyi.system.config.push.ios.IOSCustomizedcast; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.DigestUtils; import org.apache.http.Header; @@ -37,7 +39,7 @@ public class UmengConfig { private static final Logger log = LoggerFactory.getLogger(UmengConfig.class); - private PushClient client = new PushClient(); + private final PushClient client = new PushClient(); public UmResp send(String token,String deviceTypeUp){ String umAppkey = null; @@ -53,7 +55,7 @@ public class UmengConfig { // // } // //687b2df479267e0210b79b6f -// String umAppkey = "687b2e1679267e0210b79b70"; +// String umAppkey = "68a99a66ec2b5b6f8825b8b1"; // String appKey = "204918113"; // String appSecret = "v4UrIhhLZlo0adpmevyCfvThGFbrRer0"; // 下面的url要和阿里云云市场购买的商品对应 @@ -103,6 +105,7 @@ public class UmengConfig { try { log.info("发送数据:{}",httpPost); CloseableHttpResponse response = httpclient.execute(httpPost); + log.info("返回数据1:{}",response); String respStr = EntityUtils.toString(response.getEntity()); log.info("返回数据:{}",respStr); return JSONUtil.toBean(respStr, UmResp.class); @@ -113,36 +116,66 @@ public class UmengConfig { } - public void sendAndroidCustomizedcast() throws Exception { - AndroidCustomizedcast customizedcast = new AndroidCustomizedcast(AliKeyConfig.UMApp_AliKey,AliKeyConfig.UMApp_AliSecret); + public void sendAndroidCustomizedcast(PushMsgInfo pushMsgInfo) throws Exception { +// appAliKey: 204918113 +// appAliSecret: v4UrIhhLZlo0adpmevyCfvThGFbrRer0 +// AndroidCustomizedcast customizedcast = new AndroidCustomizedcast("68a9988ce563686f4288e26d","vxq4qfnb3jbb3jahrcxpbtpjgcuu7dtm"); + AndroidCustomizedcast customizedcast = new AndroidCustomizedcast(AliKeyConfig.UMApp_Android_Key,AliKeyConfig.Android_SECRET); // TODO Set your alias here, and use comma to split them if there are multiple alias. // And if you have many alias, you can also upload a file containing these alias, then // use file_id to send customized notification. - customizedcast.setAlias("alias", "alias_type"); - customizedcast.setTicker( "Android customizedcast ticker"); - customizedcast.setTitle( "中文的title"); - customizedcast.setText( "Android customizedcast text"); + customizedcast.setAlias(pushMsgInfo.getAlias(), pushMsgInfo.getAlias_type()); + customizedcast.setTicker(pushMsgInfo.getTicker()); + customizedcast.setTitle(pushMsgInfo.getTitle()); + customizedcast.setText(pushMsgInfo.getText()); customizedcast.goAppAfterOpen(); customizedcast.setDisplayType(AndroidNotification.DisplayType.NOTIFICATION); // TODO Set 'production_mode' to 'false' if it's a test device. // For how to register a test device, please see the developer doc. customizedcast.setProductionMode(); //厂商通道相关参数 - customizedcast.setChannelActivity("your channel activity"); - customizedcast.setChannelProperties("abc"); +// customizedcast.setChannelActivity("your channel activity"); +// customizedcast.setChannelProperties("abc"); + client.send(customizedcast); + } + + public void sendIOSCustomizedcast(PushMsgInfo pushMsgInfo) throws Exception { + //App Key:68a99a66ec2b5b6f8825b8b1 + //App Master Secret:tjbflqx0eoqjixtyrtbh0zgijawmvxfe + //IOSCustomizedcast customizedcast = new IOSCustomizedcast("68a99a66ec2b5b6f8825b8b1","tjbflqx0eoqjixtyrtbh0zgijawmvxfe"); + IOSCustomizedcast customizedcast = new IOSCustomizedcast(AliKeyConfig.UMApp_IOS_Key,AliKeyConfig.IOS_SECRET); + // TODO Set your alias and alias_type here, and use comma to split them if there are multiple alias. + // And if you have many alias, you can also upload a file containing these alias, then + // use file_id to send customized notification. + customizedcast.setAlias(pushMsgInfo.getAlias(), pushMsgInfo.getAlias_type()); + //customizedcast.setAlert("IOS 个性化测试"); + //alert的值设置为字典 + customizedcast.setAlert(pushMsgInfo.getTitle() , "" , pushMsgInfo.getText()); + customizedcast.setBadge( 0); + customizedcast.setSound( "default"); + // TODO set 'production_mode' to 'true' if your app is under production mode + customizedcast.setTestMode(); client.send(customizedcast); } - public static void main(String[] args) { + public static void main(String[] args) throws Exception { + UmengConfig umengConfig = new UmengConfig(); // System.out.println(DeviceTypeEnum.ANDROID.name()); -// UmResp sss1 = send("eyJvIjoiaU9TIiwiayI6ImJNSGJwMktVdjhVaE5zOW1wQWhwYlwvWCtVRTlqcnZKeXhjb091N3BDdVlqcHNEc2RKM3A2M0pJZ056U0JrdlY5UlFPSHo3U25ZMmNcL3ZpbUI3ZHN2THFwQXlkbmRJeDB4NHhLSytFR2pvVEF4eU1oUnpUVHlrNHYzZThCSjNIajJOamJoK0VPdUtRTXV3N2pnS0dIdHJoT3FJRFF4QXJ0NisrUTI1ODhhQWdEVnp5TUVZdmxpTFhKeDUwS1wvZWI5VjdSb1VoNkMzc2E5Mm1xcHI1S3FxMm9KZHk3THoyYkVPQUVnM1hvWHJWVlwvcmtOMFluV1AyMVBZb0xrVFgxXC84TWZhVXZJRkY2aWJldDVaYkNzMVNhZU9LVU1rcnlicVpINHBMNlF5TzBFRjkrUHljT01hOGlVTjZabVZ6dm1HOFJHK3BjQjF1amVpSVpRN2N5bDRPOGxnPT0iLCJjIjoiSW02VTJVV3IxYTlDTkpmN29WR2FpRGxCZ3RSamQ5djUwaENCajJMWXd5N2Y3dzV2SndnWHFSXC8zeTlWYzFpSDFITnFHN1wvcUZpN2cxXC94cGQ5RGNsVjE0SXFKYmsxSHppZkNcL0JSU0NaeGpFTm5qWndTR3l1K1VnR3luajhnMWlHbkFhOHRmVWRUN0lGNWdrOGpVSVlteTZBNllkXC92Z2RXXC9wa1krcE9pczVWZEUrTjhXMjhEXC9idXhjQm1Wbm5obHpMWmdzRHUrdWcwQ0FMY2M0V3JybWdGdFcyOWN4Mkh5SGNNZ3AwY2xuOW5GQnNaS20zbDV3QWZIeUd2WkRpU1R3Q0lpSjFHUzNXUm1oZFVVdXo4NHRqMnBhWHZ1Y01Sa0tnNGt6Mk9cLyt4QmMrRzJ1VGpETXNtcW1nVUdBSWFoMlNyaGs5MEJMZWlKSFRLY0diTjlZbmN2cjZlMTBlZE1nSDR3QTB5K0lnTzlXd2t5OVAwb1FUbEZpUHd1Tm9PMm1OUEFpTDVwb3ZkZEp0QmY4TDZmb3B1NWl4a0FnVzBUdFM2OHN3Y3BaeWhuT25zRks0dXI2OHc3YWIySWJPNWpZMnhLTHZvb1NjMmRcLzhcL2JSTmxFM0txUUFLcDRGQUpxdWJ2bjhQRzdPcGN2bXhuSkF4bTJYNTFkQUZtaTdsSjZuZlc0MlJSNDRZWDBtMlhkczAwY3hZa2s5Q29zeVdWVUdGUkVDMjdjUUFURU9PMWp2TzdlMHEwOTRLZjdnaEx2UFJadlo2bFIxSUxmTTJxeWlQc0V5dmRiSUJyaG1yVEtJOWdqRW5Qc3U2dEZPc1RiZ0oxaVwvNGZBRFBKWDhOczF1Ym9taVl2KzZnVGsyNzlZTmQ3WU9OT21mMzlTOG05RktrNEN3Uk1QT1wvcVVSMGRJN25HbER4U1wvWEFFbWNHU0wxcDllczN0U0lsVUIrbHNcL3luWWZFNWNicDIwRE9NV3ZcL0xLa0I2cXA5RkVtaXV6eDY2MWYzZE9hZnk2WUJ2V2dsQnljU05TSkdDNkpYeTZnWHEwR1wvNE9XTkRPdjFhakIxMnhGRk9PK1dhbUVKcG9Takxic0FFV0V5eEtDb3pXaU9meG0ydEJ0bHdoM2hwXC9Vb3RyRCtIbkY2Z1NOOGtCblVtYnJRU3FzYUdsM2g3WDZSZUREbXdRSmMzSzY0QkxNcCJ9", "ios"); +// UmResp sss1 = umengConfig.send("eyJvIjoiaU9TIiwiayI6ImJNSGJwMktVdjhVaE5zOW1wQWhwYlwvWCtVRTlqcnZKeXhjb091N3BDdVlqcHNEc2RKM3A2M0pJZ056U0JrdlY5UlFPSHo3U25ZMmNcL3ZpbUI3ZHN2THFwQXlkbmRJeDB4NHhLSytFR2pvVEF4eU1oUnpUVHlrNHYzZThCSjNIajJOamJoK0VPdUtRTXV3N2pnS0dIdHJoT3FJRFF4QXJ0NisrUTI1ODhhQWdEVnp5TUVZdmxpTFhKeDUwS1wvZWI5VjdSb1VoNkMzc2E5Mm1xcHI1S3FxMm9KZHk3THoyYkVPQUVnM1hvWHJWVlwvcmtOMFluV1AyMVBZb0xrVFgxXC84TWZhVXZJRkY2aWJldDVaYkNzMVNhZU9LVU1rcnlicVpINHBMNlF5TzBFRjkrUHljT01hOGlVTjZabVZ6dm1HOFJHK3BjQjF1amVpSVpRN2N5bDRPOGxnPT0iLCJjIjoiSW02VTJVV3IxYTlDTkpmN29WR2FpRGxCZ3RSamQ5djUwaENCajJMWXd5N2Y3dzV2SndnWHFSXC8zeTlWYzFpSDFITnFHN1wvcUZpN2cxXC94cGQ5RGNsVjE0SXFKYmsxSHppZkNcL0JSU0NaeGpFTm5qWndTR3l1K1VnR3luajhnMWlHbkFhOHRmVWRUN0lGNWdrOGpVSVlteTZBNllkXC92Z2RXXC9wa1krcE9pczVWZEUrTjhXMjhEXC9idXhjQm1Wbm5obHpMWmdzRHUrdWcwQ0FMY2M0V3JybWdGdFcyOWN4Mkh5SGNNZ3AwY2xuOW5GQnNaS20zbDV3QWZIeUd2WkRpU1R3Q0lpSjFHUzNXUm1oZFVVdXo4NHRqMnBhWHZ1Y01Sa0tnNGt6Mk9cLyt4QmMrRzJ1VGpETXNtcW1nVUdBSWFoMlNyaGs5MEJMZWlKSFRLY0diTjlZbmN2cjZlMTBlZE1nSDR3QTB5K0lnTzlXd2t5OVAwb1FUbEZpUHd1Tm9PMm1OUEFpTDVwb3ZkZEp0QmY4TDZmb3B1NWl4a0FnVzBUdFM2OHN3Y3BaeWhuT25zRks0dXI2OHc3YWIySWJPNWpZMnhLTHZvb1NjMmRcLzhcL2JSTmxFM0txUUFLcDRGQUpxdWJ2bjhQRzdPcGN2bXhuSkF4bTJYNTFkQUZtaTdsSjZuZlc0MlJSNDRZWDBtMlhkczAwY3hZa2s5Q29zeVdWVUdGUkVDMjdjUUFURU9PMWp2TzdlMHEwOTRLZjdnaEx2UFJadlo2bFIxSUxmTTJxeWlQc0V5dmRiSUJyaG1yVEtJOWdqRW5Qc3U2dEZPc1RiZ0oxaVwvNGZBRFBKWDhOczF1Ym9taVl2KzZnVGsyNzlZTmQ3WU9OT21mMzlTOG05RktrNEN3Uk1QT1wvcVVSMGRJN25HbER4U1wvWEFFbWNHU0wxcDllczN0U0lsVUIrbHNcL3luWWZFNWNicDIwRE9NV3ZcL0xLa0I2cXA5RkVtaXV6eDY2MWYzZE9hZnk2WUJ2V2dsQnljU05TSkdDNkpYeTZnWHEwR1wvNE9XTkRPdjFhakIxMnhGRk9PK1dhbUVKcG9Takxic0FFV0V5eEtDb3pXaU9meG0ydEJ0bHdoM2hwXC9Vb3RyRCtIbkY2Z1NOOGtCblVtYnJRU3FzYUdsM2g3WDZSZUREbXdRSmMzSzY0QkxNcCJ9", "ios"); // String sss; // // sss = "{\"success\":true,\"data\":{\"mobile\":\"18518753918\",\"score\":null,\"activeScore\":null,\"aesEncryptKey\":null},\"code\":2001,\"message\":\"gain mobile's result success\",\"requestId\":\"0E87E249-42A0-42C0-94D3-7424D45E571E\"}\n"; // // UmResp ss = JSONUtil.toBean(sss, UmResp.class); // System.out.println(ss); + //UmengConfig umengConfig = new UmengConfig(); +// PushMsgInfo pushMsgInfo = new PushMsgInfo(); +// pushMsgInfo.setText("test"); +// pushMsgInfo.setTitle("title"); +// pushMsgInfo.setAlias("13943965645"); +// //umengConfig.sendAndroidCustomizedcast(pushMsgInfo); +// umengConfig.sendIOSCustomizedcast(pushMsgInfo); }