/** * */ package org.hamster.weixinmp.service; import static org.hamster.weixinmp.util.WxUtil.getAccessTokenParams; import static org.hamster.weixinmp.util.WxUtil.sendRequest; import static org.hamster.weixinmp.util.WxUtil.toJsonStringEntity; import java.util.Map; import org.hamster.weixinmp.config.WxConfig; import org.hamster.weixinmp.dao.entity.qr.WxQrEntity; import org.hamster.weixinmp.exception.WxException; import org.hamster.weixinmp.model.qr.WxQrActionInfoJson; import org.hamster.weixinmp.model.qr.WxQrCreateJson; import org.hamster.weixinmp.model.qr.WxQrSceneJson; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Service; /** * @author grossopaforever@gmail.com * @version Jan 4, 2014 * */ @Service public class WxQrService { @Autowired private WxConfig config; public WxQrEntity remoteQrcodeCreate(String accessToken, boolean isTemporary, Long sceneId, Long expire_seconds) throws WxException { Map<String, String> params = getAccessTokenParams(accessToken); WxQrSceneJson scene = new WxQrSceneJson(); scene.setScene_id(sceneId); WxQrActionInfoJson action = new WxQrActionInfoJson(); action.setScene(scene); WxQrCreateJson requestJson = new WxQrCreateJson(); requestJson.setAction_name(isTemporary ? "QR_LIMIT_SCENE" : "QR_SCENE"); requestJson.setAction_info(action); if (isTemporary) { requestJson.setExpire_seconds(expire_seconds); } WxQrEntity result = sendRequest(config.getQrcodeCreateUrl(), HttpMethod.POST, params, toJsonStringEntity(requestJson), WxQrEntity.class); result.setScene(sceneId); return result; } }