微信企业号下的消息推送接口

一般在微信企业号下做软件开发,基本都会用到消息推送,用户在完成一个操作之后,会在企业号中推送一条消息,这条消息可能是文本、图文等不同类型,在具有审批流程的消息推送中,下一级人员审批完成会给上一级推送一条审批消息,后者可以直接点开推送消息进入审批页面,进行审批。下面是消息推送接口代码:

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;

@Service
public class SendInfoServiceImpl implements SendInfoService {
    @Resource
    private MessageDao messageDao;
    @Resource
    private DetailInfoDao detailInfoDao;

    /**
     * 发送文本卡片消息
     *
     * @param "UserID1|UserID2|UserID3", -> openId
     * @param title                      标题
     * @param url                        审批页面地址
     * @return
     */
    @Override
    public ResultBean sendTextCardInfo(String openId, String title, String url, String content) {
        ResultBean result = new ResultBean();
        JSONObject jSONObject = null;
        String userId = null;
        try {
            //根据url获取userId
            String[] strs = url.split("[\\/]");
            userId = strs[strs.length - 1];
            //查看用户是否打开勿扰模式
            String isOpen = detailInfoDao.getIsOpenByUserId(userId);
            if (!"0".equals(isOpen)) {
                // 调取凭证
                String access_token = QiYeUtil.getAccessToken(Constants.CORPID, Constants.Secret).getToken();
                SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String createTime = tempDate.format(new java.util.Date());
                // 新建文本卡片消息
                TextCard textCard = new TextCard();
                textCard.setTitle(title);
                String description = "
" + createTime + "
" + content + "
"; textCard.setDescription(description); textCard.setUrl(url); textCard.setBtntxt("点击查看:"); // 文本卡片转json String textCardList = JSONObject.fromObject(textCard).toString(); //生成文本卡片消息的json数据 String jsonData = SMessage.textcardMsg(openId, Constants.AGENTID + "", textCardList); //发送模板消息 jSONObject = SMessage.sendMsg(access_token, jsonData); if (jSONObject != null) { if ("0".equals(jSONObject.getString("errcode"))) { Message message = new Message(); message.setId(ApplicationUtils.randomUUID()); message.setUserId(userId); message.setTitle(title); message.setUrl(url); message.setCreateTime(createTime); message.setStatus("0"); messageDao.insert(message); result.setCode(0); result.setData(jSONObject); result.setMsg("消息发送成功"); } else { result.setCode(1); result.setMsg("消息发送失败"); } } } else { result.setCode(1); result.setData(""); result.setMsg("消息已屏蔽"); } } catch (Exception e) { result.setCode(1); result.setMsg("消息发送失败"); } return result; } /** * 发送图文消息 * * @param userId=> openId * @param partyId * @param tagId * @param title 标题 * @param picUrl 图片地址 * @param url 审批页面地址 * @return */ @Override public JSONObject sendNewsInfo(String userId, String partyId, String tagId, String title, String picUrl, String url) { // 调取凭证 String access_token = QiYeUtil.getAccessToken(Constants.CORPID, Constants.Secret).getToken(); // 新建图文 Article article = new Article(); article.setTitle(title); String description = "
2016年9月26日
系统审批提醒
请您尽快审批本次申请
"; article.setDescription(description); article.setPicUrl(picUrl); article.setUrl(url); // 整合图文 List
list = new ArrayList
(); list.add(article); // 图文转json String articlesList = JSONArray.fromObject(list).toString(); //生成news消息的json数据 String jsonData = SMessage.SNewsMsg(userId, partyId, tagId, Constants.AGENTID + "", articlesList); //发送模板消息 JSONObject jSONObject = SMessage.sendMsg(access_token, jsonData); return jSONObject; } }

 

你可能感兴趣的:(随笔)