在Controller中調用YMP-WeChat模塊微信API方法代碼實例

分類:IT技術 時間:2017-07-05
@Controller
public class OAuthController {

	@RequestMapping("/oauth/base")
	public IView oauth_base() throws Exception {
		String _url = WeChat.wxOAuthGetCodeURL(false, "state_str");
		Logs.debug(_url);
		return new RedirectView(_url);
	}

	@RequestMapping("/oauth/info")
	public IView oauth_info() throws Exception {
		String _url = WeChat.wxOAuthGetCodeURL(true, "state_str");
		Logs.debug(_url);
		return new RedirectView(_url);
	}

	@RequestMapping("/oauth/redirect")
	public IView redirect(@RequestParam(required = false) String code, @RequestParam(required = false) String state) throws Exception {
		JSONObject _return = new JSONObject();
		_return.put("code", code);
		_return.put("state", state);
		if (code != null) {
			WxOAuthToken _token = WeChat.wxOAuthGetToken(code);
			_return.put("oauth_token", _token);
			WxOAuthUser _info = WeChat.wxOAuthUserGetInfo(_token.getAccessToken(), _token.getOpenId(), null);
			_return.put("user_info", JSON.toJSON(_info));
		}
		return new JsonView(_return);
	}

	@RequestMapping("/menu/create")
	public IView createMenu() throws Exception {
		WxMenu _menu = WxMenu.create()
				.addItem(WxMenuItem.create().setName("消息測試")
						.addItem(WxMenuItem.create()
								.setName("文本消息")
								.setType(WX_message.EVENT_CLICK)
								.setKey("TEST_MSG_TEXT"))
						.addItem(WxMenuItem.create()
								.setName("圖片消息")
								.setType(WX_MESSAGE.EVENT_CLICK)
								.setKey("TEST_MSG_IMAGE"))
						.addItem(WxMenuItem.create()
								.setName("語音消息")
								.setType(WX_MESSAGE.EVENT_CLICK)
								.setKey("TEST_MSG_VOICE"))
						.addItem(WxMenuItem.create()
								.setName("視頻消息")
								.setType(WX_MESSAGE.EVENT_CLICK)
								.setKey("TEST_MSG_VIDEO")))
				.addItem(WxMenuItem.create().setName("更多消息")
						.addItem(WxMenuItem.create()
								.setName("音樂消息")
								.setType(WX_MESSAGE.EVENT_CLICK)
								.setKey("TEST_MSG_MUSIC"))
						.addItem(WxMenuItem.create()
								.setName("圖文消息")
								.setType(WX_MESSAGE.EVENT_CLICK)
								.setKey("TEST_MSG_NEWS")))
				.addItem(WxMenuItem.create().setName("接口測試")
						.addItem(WxMenuItem.create()
								.setName("用戶基本信息")
								.setType(WX_MESSAGE.EVENT_CLICK)
								.setKey("TEST_API_USERINFO"))
						.addItem(WxMenuItem.create()
								.setName("網頁授權1")
								.setType(WX_MESSAGE.EVENT_VIEW)
								.setUrl("http://localhost/web/oauth/base"))
						.addItem(WxMenuItem.create()
								.setName("網頁授權2")
								.setType(WX_MESSAGE.EVENT_VIEW)
								.setUrl("http://localhost/web/oauth/info"))
						.addItem(WxMenuItem.create()
								.setName("WeixinJS")
								.setType(WX_MESSAGE.EVENT_VIEW)
								.setUrl("http://localhost/web/wxjs"))
						.addItem(WxMenuItem.create()
								.setName("關於")
								.setType(WX_MESSAGE.EVENT_VIEW)
								.setUrl("http://localhost/web/aboutus")));
		//
		Logs.debug("Create New Menu: " + WeChat.wxMenuCreate(_menu));
		return new JsonView(_menu);
	}

	@RequestMapping("/menu/delete")
	public IView deleteMenu() throws Exception {
		Logs.debug("Delete Menu: " + WeChat.wxMenuDelete());
		return new TextView("Delete Success");
	}

	@RequestMapping("/menu/get")
	public IView getMenu() throws Exception {
		WxMenu _menu = WeChat.wxMenuGet();
		return new JsonView(JSON.toJSON(_menu));
	}

	@RequestMapping("/group/get")
	public IView getGroups() throws Exception {
		return new JsonView(WeChat.wxGroupGetList());
	}

	@RequestMapping("/user/get")
	public IView getUser(@RequestParam(required = false) String uid) throws Exception {
		List<WxUser> _results = new ArrayList<WxUser>();
		if (StringUtils.isBlank(uid)) {
			WxFollwersResult _list = WeChat.wxUserGetList("");
			for (String _openId : _list.getOpenIds()) {
				WxUser _u = WeChat.wxUserGetInfo(_openId, null);
				if (_u != null) {
					_results.add(_u);
				}
			}
		} else {
			WxUser _u = WeChat.wxUserGetInfo(uid, null);
			if (_u != null) {
				_results.add(_u);
			}
		}
		return new JsonView(_results);
	}

	@RequestMapping("/message/all")
	public IView sendToAll(@RequestParam String message) throws Exception {
		WxFollwersResult _list = WeChat.wxUserGetList("");
		for (String _openId : _list.getOpenIds()) {
			TextOutMessage _msg = new TextOutMessage(_openId);
			_msg.setContent(message);
			WeChat.wxMessageSendCustom(_msg);
		}
		return new JsonView(_list);
	}

	@RequestMapping("/message/to")
	public IView sendTo(@RequestParam String to, @RequestParam String message) throws Exception {
		TextOutMessage _msg = new TextOutMessage(to);
		_msg.setContent(message);
		return new TextView(WeChat.wxMessageSendCustom(_msg));
	}

	@RequestMapping("/qrcode/create")
	public IView qrcodeCreate(@RequestParam int scene) throws Exception {
		return new JsonView(WeChat.wxQRCodeCreate(scene, 1800));
	}

	@RequestMapping("/qrcode/show")
	public IView qrcodeShow(@RequestParam String ticket) throws Exception {
		return new RedirectView(WeChat.wxQRCodeShowURL(ticket));
	}

	@RequestMapping("/aboutus")
	public IView aboutus() {
		return new JspView("aboutus.jsp");
	}

}




Tags: quot return RequestMapping public Exception String

文章來源:


ads
ads

相關文章
ads

相關文章

ad