SendMessageUtil.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. package com.iamberry.wechat.utils;
  2. import java.util.HashMap;
  3. import org.springframework.stereotype.Component;
  4. import com.iamberry.wechat.tools.NameUtils;
  5. import com.iamberry.wechat.tools.ResultInfo;
  6. import com.iamberry.wechat.tools.WeixinUtil;
  7. @Component
  8. public class SendMessageUtil {
  9. //快递公司列表
  10. public static HashMap<String, String> hashmap = new HashMap<String, String>();
  11. //正式环境
  12. {
  13. hashmap.put("sto", "申通快递");
  14. hashmap.put("yto", "圆通快递");
  15. hashmap.put("sf", "顺丰快递");
  16. hashmap.put("longbanwuliu", "龙邦快递");
  17. hashmap.put("ems", "邮政EMS");
  18. hashmap.put("zto", "中通快递");
  19. hashmap.put("zjs", "宅急送");
  20. hashmap.put("yunda", "韵达快递");
  21. hashmap.put("cces", "cces快递");
  22. hashmap.put("pick", "上门提货");
  23. hashmap.put("htky", "汇通快递");
  24. hashmap.put("ttkdex", "天天快递");
  25. hashmap.put("stars", "邮政EMS");
  26. hashmap.put("jd", "星晨急便");
  27. hashmap.put("01", "其他");
  28. hashmap.put("02", "上门送货");
  29. }
  30. /**
  31. * 发送模板通知给用户
  32. * @param date data 日期
  33. * @param openId 接受的用户id
  34. * @param url 点击打开的url
  35. * @param type 发送类型 1,收益成功通知 2,发货提醒通知 3、收入提醒通知,4、订单未支付通知 5、试用进度提醒
  36. * @return
  37. */
  38. public boolean sendTemplateMessageToOpenid(String date,String openId, String url,Integer type) {
  39. boolean result = false;
  40. switch (type) {
  41. case 1: //1,收益成功通知
  42. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId,ResultInfo.rewards_template_id, date, url);
  43. break;
  44. case 2: // 2,发货提醒通知
  45. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.Shipment_template_id, date, url);
  46. break;
  47. case 3: //3、收入提醒通知
  48. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.Income_template_id, date, url);
  49. break;
  50. case 4: //4、订单未支付通知
  51. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.Order_template_id, date, url);
  52. break;
  53. case 5: //5、试用进度提醒
  54. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.trial_progress_remind, date, url);
  55. break;
  56. case 6: //6、试用申请通知
  57. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.probation_apply_notice, date, url);
  58. break;
  59. case 7: //7、试用申请成功通知
  60. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.probation_apply_success, date, url);
  61. break;
  62. case 8: //8、订单支付成功
  63. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.probation_pay_success, date, url);
  64. break;
  65. case 9: //9、订单关闭成功
  66. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.probation_shut_down, date, url);
  67. break;
  68. case 10: //10、奖品领取通知
  69. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.prize_receive_push, date, url);
  70. break;
  71. case 11: //11、更换电动牙刷通知
  72. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.update_tooth_hint, date, url);
  73. break;
  74. case 12: //12、用户申请退款提醒
  75. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.order_apply_refund, date, url);
  76. break;
  77. case 13: //13、用户 申请退货 提醒
  78. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.order_apply_return, date, url);
  79. break;
  80. case 14: //14、用户 申请换货 提醒
  81. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.order_apply_barter, date, url);
  82. break;
  83. case 15: //15、发货后 提醒
  84. WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.order_send_success, date, url);
  85. break;
  86. default:
  87. break;
  88. }
  89. result = true;
  90. return result;
  91. }
  92. public static void main(String[] args) {
  93. String date = "{'first':{'color':'#173177', 'value':'尊敬的客户您好~您的订单已发货~'}, 'order_id':{'color':'#173177','value':'1009145345B11792L'}, 'package_id':{'color':'#173177','value':'yuantong:34234234'}, 'remark':{'color':'#173177', 'value':'点击进入商城查看-->>'}}";
  94. String openId = "o-icas0dRzE7WYAEAmcX4BQCUyFo";
  95. String appId = "wxd995fb95b97ece1b";// 应用ID
  96. String appSecret = "34922854462fba23cf54ce859349fcf4";// 应用密钥
  97. WeixinUtil.sendTemplateMessage(appId, appSecret, openId, "744KA1PdB1I5PzRcjtxqbEz5t2bp8vdsi4I2ytW1rbE", date, "xx");
  98. System.out.println("发送成功");
  99. }
  100. /**
  101. * 试用进度提醒推送
  102. * @param first 标题
  103. * @param keyword1 商品名称
  104. * @param keyword2 订单编号
  105. * @param keyword3 申请时间
  106. * @param keyword4 截止时间
  107. * @param remark 全部内容
  108. * @param openId 用户openid
  109. * @param url 地址
  110. */
  111. public void probationPush(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
  112. String temp = ResultInfo.PROBATIONPUSH;
  113. temp = temp.replaceFirst("firstValueIamberry", first)
  114. .replaceFirst("keyword1Value",keyword1)
  115. .replaceFirst("keyword2Value",keyword2)
  116. .replaceFirst("keyword3Value",keyword3)
  117. .replaceFirst("keyword4Value",keyword4)
  118. .replaceFirst("remarkValue",remark);
  119. sendTemplateMessageToOpenid(temp, openId, url,5);
  120. temp = ResultInfo.PROBATIONPUSH;
  121. }
  122. /**
  123. * 试用开始通知
  124. * @param first 标题
  125. * @param keyword1 商品信息
  126. * @param keyword2 申请时间
  127. * @param remark 全部内容
  128. * @param openId 用户openid
  129. * @param url 地址
  130. */
  131. public void probationApplyNotice(String first,String keyword1,String keyword2,String remark,String openId,String url){
  132. String temp = ResultInfo.PROBATIONAPPLYNOTICE;
  133. temp = temp.replaceFirst("firstValueIamberry", first)
  134. .replaceFirst("keyword1Value",keyword1)
  135. .replaceFirst("keyword2Value",keyword2)
  136. .replaceFirst("remarkValue",remark);
  137. sendTemplateMessageToOpenid(temp, openId, url,6);
  138. }
  139. /**
  140. * 派送成功通知
  141. * @param first 标题
  142. * @param keyword1 申请单号
  143. * @param keyword2 申请时间
  144. * @param keyword3 应付金额
  145. * @param keyword4 应付积分
  146. * @param keyword5 支付方式
  147. * @param remark 全部内容
  148. * @param openId 用户openid
  149. * @param url 地址
  150. */
  151. public void probationApplySuccess(String first,String keyword1,String keyword2,String keyword3,String keyword4,String keyword5,String remark,String openId,String url){
  152. String temp = ResultInfo.PROBATIONAPPLYSUCCESS;
  153. temp = temp.replaceFirst("firstValueIamberry", first)
  154. .replaceFirst("keyword1Value",keyword1)
  155. .replaceFirst("keyword2Value",keyword2)
  156. .replaceFirst("keyword3Value",keyword3)
  157. .replaceFirst("keyword4Value",keyword4)
  158. .replaceFirst("keyword5Value",keyword5)
  159. .replaceFirst("remarkValue",remark);
  160. sendTemplateMessageToOpenid(temp, openId, url,7);
  161. }
  162. /**
  163. * 试用订单支付成功
  164. * @param first 标题
  165. * @param keyword1 支付金额
  166. * @param keyword2 商品信息
  167. * @param remark 全部内容
  168. * @param openId 用户openid
  169. * @param url 地址
  170. */
  171. public void probationPaySuccess(String first,String keyword1,String keyword2,String remark,String openId,String url){
  172. String temp = ResultInfo.PROBATIONPAYSUCCESS;
  173. temp = temp.replaceFirst("firstValueIamberry", first)
  174. .replaceFirst("orderMoneySumValue",keyword1)
  175. .replaceFirst("orderProductNameValue",keyword2)
  176. .replaceFirst("remarkValue",remark);
  177. sendTemplateMessageToOpenid(temp, openId, url,8);
  178. }
  179. /**
  180. * 试用订单关闭成功
  181. * @param first 标题
  182. * @param keyword1 支付金额
  183. * @param keyword2 商品信息
  184. * @param remark 全部内容
  185. * @param openId 用户openid
  186. * @param url 地址
  187. */
  188. public void probationShutDown(String first,String transid,String fee,String pay_time,String remark,String openId,String url){
  189. String temp = ResultInfo.PROBATIONSHUTDOWN;
  190. temp = temp.replaceFirst("firstValueIamberry", first)
  191. .replaceFirst("transidValue",transid)
  192. .replaceFirst("feeValue",fee)
  193. .replaceFirst("pay_timeValue",pay_time)
  194. .replaceFirst("remarkValue",remark);
  195. sendTemplateMessageToOpenid(temp, openId, url,9);
  196. }
  197. /**
  198. * 推荐人领取通知
  199. * @param first 标题
  200. * @param keyword1 被推荐人
  201. * @param keyword2 消费商家
  202. * @param keyword3 消费金额
  203. * @param keyword4 消费时间
  204. * @param keyword4 推荐奖励
  205. * @param remark 全部内容
  206. * @param openId 用户openid
  207. * @param url 跳转地址
  208. */
  209. public void prizeReceivePush(String first,String keyword1,String keyword2,String keyword3,String keyword4,String keyword5,String remark,String openId,String url){
  210. String temp = ResultInfo.PRIZERECEIVEPUSH;
  211. temp = temp.replaceFirst("firstValueIamberry", first)
  212. .replaceFirst("keyword1Value",keyword1)
  213. .replaceFirst("keyword2Value",keyword2)
  214. .replaceFirst("keyword3Value",keyword3)
  215. .replaceFirst("keyword4Value",keyword4)
  216. .replaceFirst("keyword5Value",keyword5)
  217. .replaceFirst("remarkValue",remark);
  218. sendTemplateMessageToOpenid(temp, openId, url,10);
  219. }
  220. /**
  221. * 更换牙刷刷头提示信息
  222. * @param first
  223. * @param keyword1
  224. * @param keyword2
  225. * @param remark
  226. * @param openId
  227. * @param url
  228. */
  229. public void updateToothHint(String first,String keyword1,String keyword2,String remark,String openId,String url){
  230. String temp = ResultInfo.UPDATETOOTHHINT;
  231. temp = temp.replaceFirst("firstValueIamberry", first)
  232. .replaceFirst("keyword1Value",keyword1)
  233. .replaceFirst("keyword2Value",keyword2)
  234. .replaceFirst("remarkValue",remark);
  235. sendTemplateMessageToOpenid(temp, openId, url,11);
  236. }
  237. /**
  238. * 换货提醒信息
  239. * @param first
  240. * @param keyword1
  241. * @param keyword2
  242. * @param remark
  243. * @param openId
  244. * @param url
  245. */
  246. public void orderApplyBarter(String first,String keyword1,String keyword2,String remark,String openId,String url){
  247. String temp = ResultInfo.APPLYBARTER;
  248. temp = temp.replaceFirst("firstValueIamberry", first)
  249. .replaceFirst("keyword1Value",keyword1)
  250. .replaceFirst("keyword2Value",keyword2)
  251. .replaceFirst("colorValue","#1C86EE")
  252. .replaceFirst("remarkValue",remark);
  253. sendTemplateMessageToOpenid(temp, openId, url,14);
  254. }
  255. /**
  256. * 退款提醒信息
  257. * @param first
  258. * @param keyword1
  259. * @param keyword2
  260. * @param remark
  261. * @param openId
  262. * @param url
  263. */
  264. public void orderApplyRefund(String first,String keyword1,String keyword2,String keyword3,String remark,String openId,String url){
  265. String temp = ResultInfo.APPLYREFUND;
  266. temp = temp.replaceFirst("firstValueIamberry", first)
  267. .replaceFirst("keyword1Value",keyword1)
  268. .replaceFirst("keyword2Value",keyword2)
  269. .replaceFirst("keyword3Value",keyword3)
  270. .replaceFirst("colorValue","#1C86EE")
  271. .replaceFirst("remarkValue",remark);
  272. sendTemplateMessageToOpenid(temp, openId, url,12);
  273. }
  274. /**
  275. * 退货提醒信息
  276. * @param first
  277. * @param keyword1
  278. * @param keyword2
  279. * @param remark
  280. * @param openId
  281. * @param url
  282. */
  283. public void orderApplyReturn(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
  284. String temp = ResultInfo.APPLYRETURN;
  285. temp = temp.replaceFirst("firstValueIamberry", first)
  286. .replaceFirst("keyword1Value",keyword1)
  287. .replaceFirst("keyword2Value",keyword2)
  288. .replaceFirst("keyword3Value",keyword3)
  289. .replaceFirst("keyword4Value",keyword4)
  290. .replaceFirst("colorValue","#1C86EE")
  291. .replaceFirst("remarkValue",remark);
  292. sendTemplateMessageToOpenid(temp, openId, url,13);
  293. }
  294. /**
  295. * 发货提醒信息
  296. * @param first
  297. * @param keyword1
  298. * @param keyword2
  299. * @param remark
  300. * @param openId
  301. * @param url
  302. */
  303. public void orderSendSuccess(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
  304. String temp = ResultInfo.SENDSUCCESS;
  305. temp = temp.replaceFirst("firstValueIamberry", first)
  306. .replaceFirst("keyword1Value",keyword1)
  307. .replaceFirst("keyword2Value",keyword2)
  308. .replaceFirst("keyword3Value",keyword3)
  309. .replaceFirst("keyword4Value",keyword4)
  310. .replaceFirst("colorValue","#1C86EE")
  311. .replaceFirst("remarkValue",remark);
  312. sendTemplateMessageToOpenid(temp, openId, url,15);
  313. }
  314. }