码迷,mamicode.com
首页 > 微信 > 详细

捷易快信- 通过java程序,给微信发送消息

时间:2020-11-27 11:29:17      阅读:34      评论:0      收藏:0      [点我收藏+]

标签:keyword   erp   用户   set   升级   apach   取数   apache   row   

1. 捷易快信网站地址 http://jy.erpit.cn/

 

代码如下:

package com.xxx.xxx;
 
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
 
import com.alibaba.fastjson.JSONObject;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
 
public class SendWechat {
    public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
 
    /**
     * 单独给用户发消息(新版)- 推荐
     * @param title
     * @param content
     * @param remark
     * @throws Exception
     */
    public static void sendMsg(String title, String content, String remark) {
        // 创建一个httpclient对象
        CloseableHttpClient client = HttpClients.createDefault();
        // 创建一个post对象
        HttpPost post = new HttpPost("http://jy.erpit.cn/api/message/send-user");
        // 创建一个Entity,模拟表单数据
        List<NameValuePair> formList = new ArrayList<NameValuePair>();
        // 添加表单数据
        formList.add(new BasicNameValuePair("secret", "此处是系统分配给您的密钥,在用户中心查看"));
        formList.add(new BasicNameValuePair("uid", "此处是接收消息人员的ID,通过用户列表获得"));
        formList.add(new BasicNameValuePair("template_id", "RV-jBDQSNen0J92hKn5GGE4id6We5Xu2vDgpbXbWe2I"));
 
        JSONObject obj = new JSONObject();
        JSONObject firstObj = new JSONObject();
        firstObj.put("value", title);
        obj.put("first", firstObj);
        JSONObject remarkObj = new JSONObject();
        remarkObj.put("value", "");
        obj.put("remark", remarkObj);
 
        JSONObject keyword1Obj = new JSONObject();
        keyword1Obj.put("value", title);
        obj.put("keyword1", keyword1Obj);
 
        JSONObject keyword2Obj = new JSONObject();
        keyword2Obj.put("value", "QQ空间黄钻");
        obj.put("keyword2", keyword2Obj);
 
        JSONObject keyword3Obj = new JSONObject();
        keyword3Obj.put("value", "腾讯QQ空间客服人员");
        obj.put("keyword3", keyword3Obj);
 
        JSONObject keyword4Obj = new JSONObject();
        keyword4Obj.put("value", content);
        obj.put("keyword4", keyword4Obj);
 
        JSONObject keyword5Obj = new JSONObject();
        keyword5Obj.put("value", LocalDateTime.now().format(DateTimeFormatter.ofPattern(DATETIME_PATTERN)));
        obj.put("keyword5", keyword5Obj);
 
        formList.add(new BasicNameValuePair("data", obj.toString()));
 
        try {
            // 包装成一个Entity对象
            StringEntity entity = new UrlEncodedFormEntity(formList, "utf-8");
            // 设置请求的内容
            post.setEntity(entity);
            // 设置请求的报文头部的编码
            // post.setHeader(new BasicHeader("Content-Type",
            // "application/x-www-form-urlencoded; charset=utf-8"));
            // 设置期望服务端返回的编码
            // post.setHeader(new BasicHeader("Accept",
            // "text/plain;charset=utf-8"));
            // 执行post请求
            CloseableHttpResponse response = client.execute(post);
            // 获取响应码
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                // 获取数据
                String resStr = EntityUtils.toString(response.getEntity());
                // 输出
                System.out.println(resStr);
            } else {
                // 输出
                System.out.println(statusCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
 
    public static void main(String[] args) throws Exception {
        // sendMsg("消息标题", "消息内容", "消息详情");
        sendMsg("黄钻待支付订单提醒", "此接口用于新升级版本的群发消息,新版本中支持更多消息模板,更适合具体的业务场景,推荐使用", "备注");
    }
 
}

参数说明:

参数名称参数类型描述
secret String(必选) 系统分配给您的密钥,在用户中心查看
uid Int(必选) 接收消息人员的ID,通过用户列表获得
template_id String(必选) 消息模板ID
url String(可选) 消息点击跳转链接,用于消息查看详情,可不填
data Json(必选) 这是您的消息内容, 参照消息模板列表中的使用说明中的具体参数

返回说明(返回数据一律为JSON字符串):

返回示例:

{
    "code":200,
    "msg":"Ok",
    "data":[
    ]
}
    

返回数据说明:

参数说明
code 请求状态码,200为成功,其他为错误
msg 状态码对应提示,Ok为成功,其他提示错误消息

返回状态码说明:

    200     成功
    10001   缺少secret 或 appkey
    10002   缺少消息标题或内容
    10003   消息模板ID错误
    10004   secret 或 app_key 错误
    10005   余额不足

 

群发消息及其他接口请查看官方文档 http://jy.erpit.cn/wiki#user-sendmsg

 

文章来源:https://blog.csdn.net/xcxzzx01/article/details/108299813

捷易快信- 通过java程序,给微信发送消息

标签:keyword   erp   用户   set   升级   apach   取数   apache   row   

原文地址:https://www.cnblogs.com/oceanshaw/p/14029360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!