欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

微信模板消息發(fā)送

整個(gè)開(kāi)發(fā)流程,我在“簡(jiǎn)書(shū)” 上看到了一個(gè)完整的開(kāi)發(fā)流程。

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為當(dāng)涂等服務(wù)建站,當(dāng)涂等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為當(dāng)涂企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

https://www.jianshu.com/p/eb0e9c4dcdfe

微信官方接口為:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

自己開(kāi)發(fā)中總結(jié)了一下,如下,方便后續(xù)備查:

①微信的模板消息,其實(shí)是微信公眾號(hào)上推送給用戶(hù)的一條消息記錄。

在開(kāi)發(fā)的時(shí)候,需要獲取到用戶(hù)的openId(用戶(hù)關(guān)注公眾號(hào)就會(huì)產(chǎn)生一個(gè)唯一的openId),然后通過(guò)openId 推送給對(duì)應(yīng)的用戶(hù),這樣用戶(hù)就能收到這條消息了。

②訂閱號(hào)必須升級(jí)為服務(wù)號(hào)才能獲取“模板消息” 的接口權(quán)限,并且必須通過(guò)認(rèn)證。(服務(wù)號(hào)接功能更多,但是群發(fā)消息由訂閱號(hào)的每天一條變成了一個(gè)月4條。)

③開(kāi)通模板消息的時(shí)候會(huì)讓我們選擇2個(gè)行業(yè),并且每月只能修改一次。我們可以搜索模板,直接使用通用模板。如果我們需要自定義模板,那么就需要自己申請(qǐng)。

④微信公眾號(hào)的tokenId,有效期只有2個(gè)小時(shí),所以我們需要采用定時(shí)器每一個(gè)小時(shí)50分鐘去獲取一次,同時(shí),在程序啟動(dòng)完成之后要獲取一次。

⑤系統(tǒng)用戶(hù)登錄的時(shí)候我們就判斷是否有openId,如果沒(méi)有,那么就去獲取openId 。(我們OA系統(tǒng)是開(kāi)發(fā)在微信公眾號(hào)里面的,所以用戶(hù)登錄系統(tǒng)前就已經(jīng)關(guān)注了公眾號(hào))

登錄接口調(diào)用成功后,調(diào)用首頁(yè)接口,接口中判斷如果沒(méi)有openId,那么就跳轉(zhuǎn)到A接口(微信需要的接口去獲取openId,然后存入表中),A接口最后再次請(qǐng)求首頁(yè),這時(shí)已經(jīng)有OpenId了,那么直接展示首頁(yè)內(nèi)容。

微信模板消息開(kāi)發(fā)流程:
①微信用戶(hù)點(diǎn)擊登錄調(diào)用loginController中的login_login_wechat
成功后調(diào)用weixin_index

 /**訪問(wèn)系統(tǒng)首頁(yè)·微信版
	 * @param changeMenu:切換菜單參數(shù)
	 * @return
	 */
	@RequestMapping(value="/weixin_index")
	public ModelAndView login_weixin_index(HttpServletRequest request,HttpServletResponse response){
		ModelAndView mv = this.getModelAndView();
		PageData pd = new PageData();
		pd = this.getPageData();
		try{
			Session session = Jurisdiction.getSession();
			User user = (User)session.getAttribute(Const.sessionUser);				//讀取session中的用戶(hù)信息(單獨(dú)用戶(hù)信息)
			if (user != null && user.getRole()!=null && !user.getRole().getRights().trim().equals("")) {
				session.setAttribute(Const.sessionUserName, user.getUserName());				//放入用戶(hù)名到session
				this.getRemortIP(user.getUserName());	//更新登錄IP
				mv.setViewName("weixin/index/main");
				mv.addObject("user", user);
				
				/*
				 * 登錄后,如果openId為空,則保存openId到用戶(hù)表中 TODO
				 */
//				String weixinOpenId = user.getWeixinOpenId();
//				if(Tools.isEmpty(weixinOpenId)){
//					String ssString = WechatUtils.getUserAuthURL(true,
//							weixinConstant.wReturnPrefix + request.getContextPath()
//							+ "/wechatLoginNoOpenId.do","0");
//					response.sendRedirect(ssString);
//				}
				
				// 我的待辦·待審核數(shù)量
				String userId = user.getId();
				List<DBTodo> todoList  = new ArrayList<>();
				//登錄人待辦
 				
			}else {
				mv.setViewName("weixin/index/login");//session失效后跳轉(zhuǎn)登錄頁(yè)面
			}
		} catch(Exception e){
			mv.setViewName("weixin/index/login");
			logger.error(e.getMessage(), e);
		}
		
		mv.addObject("pd",pd);
		return mv;
	}



/**
	 * 微信登錄,沒(méi)有openId
	 * @return
	 */
	@RequestMapping(value="/wechatLoginNoOpenId")
	@ResponseBody
	public void wechatLoginNoOpenId(HttpServletRequest request,HttpServletResponse response){
		try {
			String code = ServletRequestUtils.getStringParameter(request, "code");
			String result = WechatUtils.getUserOpenId(code);
			if (result != null) {
				JSONObject jSONObject = JSONObject.fromObject(result);
				String openId = jSONObject.getString("openid");
				System.err.println("======================當(dāng)前登錄用戶(hù)登錄微信openId:"+openId);
				User user =(User)Jurisdiction.getSession().getAttribute(Const.sessionUser);
				user.setWeixinOpenId(openId);
				userService.editU(user);
				//再次請(qǐng)求微信首頁(yè),這次openId已經(jīng)有值了直接進(jìn)入首頁(yè)
				response.sendRedirect(weixinConstant.wReturnPrefix + request.getContextPath()
				+ "/weixin_index.do");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

web.xml 中
系統(tǒng)系統(tǒng)完成后獲取一次微信的tokenId。

  <!-- 程序啟動(dòng)完成執(zhí)行-->
  <!-- <servlet>  
    <servlet-name>init</servlet-name>  
    <servlet-class>com.kentra.listener.WebAppInitListener</servlet-class>  
    <load-on-startup>3</load-on-startup>
  </servlet> -->


模板消息的發(fā)送示例,請(qǐng)參考 InformController.java 中的goSend方法

或WechatUtils.java 中的main方法。

將所有的 逗號(hào),替換為 分號(hào)

"lijianbo,yangmi,li".replace(/,/g, ";" );

當(dāng)前標(biāo)題:微信模板消息發(fā)送
鏈接分享:http://aaarwkj.com/article40/jjgeho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、品牌網(wǎng)站制作、域名注冊(cè)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
91在线视频麻豆国产| 国产又粗又硬又长又爽在线观看 | 国产三级尤物在线观看 | 中文字幕国产精品一二区| 小草少妇视频免费看视频| 黄色日韩欧美在线观看| 亚洲精品第一国产综合| 黄色国产一区二区三区| 精品人妻一区二区三区不卡| 伊人久久大香线蕉av色婷婷色 | 亚洲综合国产中文字幕| 一区二区三区视频观看在线| 午夜福利主播一区二区| 91极品气质女神长腿翘臀| 久草免费福利视频资源站| 色琪琪原网另类欧美日韩| 日本色小姐美国青青草原| 亚洲精品中的亚洲精品| 日本成人午夜福利在线观看| 日韩精品免费一区二区三区| 日本精品一区二区三区免费| 黄片视频免费观看一起草| 人人爽久久爱夜夜躁一区| 午夜看片福利欧美熟女| 国产精品视频一区二区噜| 未满十八禁止在线观看av| 欧美久久精品在线观看| 日韩一区二区三区四区精品| 亚洲激情欧美激情在线| 一区二区三区熟妇人妻视频| 在线观看免费在线观看免费| 亚洲巨人精品福利导航| 久久东京热日韩精品一区| 国产亚洲一区二区视频| 亚洲av日韩高清在线观看| 美女午夜精品国产福利| 激情图区亚洲一区二区| 国产粉嫩一区二区三区在线观看| 国产日产亚洲综合一区| 粉嫩一区二区三区av| 日韩中文字幕免费一区二区|