WeChatMessageHelperTest.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.huimv.env.device.config;
  2. import cn.binarywang.wx.miniapp.api.WxMaService;
  3. import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
  4. import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
  5. import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
  6. import org.springframework.stereotype.Component;
  7. import java.util.ArrayList;
  8. import java.util.logging.Logger;
  9. @Component
  10. public class WeChatMessageHelperTest {
  11. private static WxMaService wxMaService = new WxMaServiceImpl();
  12. /**
  13. * 发送小程序订阅消息
  14. * @param appletsSubType 小程序类型(developer为开发版、trial为体验版、formal为正式版)
  15. * @param appSubTempId 订阅消息模板id
  16. * @param appSubPagePath 跳转小程序地址
  17. * @param appletsAppid 小程序appId
  18. * @param appletsSecret 小程序secret
  19. * @param appletsSubToken 小程序token
  20. * @param appletsSubAesKey 小程序EncodingAESKey
  21. * @param appletsSubDataFormat 数据格式
  22. * @param wxMaSubMsgList 消息列表
  23. * @param userIds 接收用户id
  24. * @return void
  25. * @version V1.0
  26. * modify history
  27. */
  28. public static void sendWechatAppSubMessage(String appletsSubType, String appSubTempId, String appSubPagePath, String appletsAppid, String appletsSecret, String appletsSubToken, String appletsSubAesKey, String appletsSubDataFormat, ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubMsgList, String... userIds) throws Exception {
  29. /*
  30. // wxMaSubMsgList组装示例,在业务里组装好,再调用系统消息发送工具,系统消息判断是否需要发送小程序订阅消息进行分发,此处不做展示
  31. ArrayList<WxMaSubscribeMessage.MsgData> wxMaSubscribeData = new ArrayList<>();
  32. WxMaSubscribeMessage.MsgData characterString1 = new WxMaSubscribeMessage.MsgData();
  33. characterString1.setName("character_string1");
  34. characterString1.setValue("DR15325419846198615651");
  35. wxMaSubscribeData.add(characterString1);
  36. WxMaSubscribeMessage.MsgData thing3 = new WxMaSubscribeMessage.MsgData();
  37. thing3.setName("thing3");
  38. thing3.setValue("请XXXXXXXX");
  39. wxMaSubscribeData.add(thing3);
  40. WxMaSubscribeMessage.MsgData time5 = new WxMaSubscribeMessage.MsgData();
  41. time5.setName("time5");
  42. time5.setValue(DateUtil.format(new Date(),DateUtil.DATE_TIME_FORMAT));
  43. wxMaSubscribeData.add(time5);
  44. */
  45. WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
  46. // 小程序appId
  47. config.setAppid(appletsAppid);
  48. // 小程序secret
  49. config.setSecret(appletsSecret);
  50. // 小程序token
  51. config.setToken(appletsSubToken);
  52. // 小程序EncodingAESKey
  53. config.setAesKey(appletsSubAesKey);
  54. // 数据格式
  55. config.setMsgDataFormat(appletsSubDataFormat);
  56. wxMaService.setWxMaConfig(config);
  57. for (String userId : userIds) {
  58. // TODO:根据用户id获取OpenId,测试时写死
  59. WxMaSubscribeMessage subscribeMessage = new WxMaSubscribeMessage();
  60. // 要推送的用户openid
  61. subscribeMessage.setToUser("openId");
  62. // 小程序类型(developer为开发版、trial为体验版、formal为正式版),默认为formal(正式版)
  63. subscribeMessage.setMiniprogramState(appletsSubType);
  64. // 订阅消息模板id
  65. subscribeMessage.setTemplateId(appSubTempId);
  66. // 跳转小程序地址
  67. subscribeMessage.setPage(appSubPagePath);
  68. // 消息列表(组装示例请看方法开始注释部分)
  69. subscribeMessage.setData(wxMaSubMsgList);
  70. try {
  71. // 发送订阅消息
  72. wxMaService.getMsgService().sendSubscribeMsg(subscribeMessage);
  73. } catch (Exception e) {
  74. System.out.println("微信小程序订阅消息推送失败,接收userId: " + userId+" "+ e);
  75. }
  76. }
  77. }
  78. }