java调用微信客服消息(发货通知)

微信文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140547&token=&lang=zh_CN

个人说明:这是一个样例,微信客户消息有很多种,我现在用的是公众号发送消息。样子如下图。
这里写图片描述
说明:下面开始代码部分了。
1.首先看微信文档。这里才是我们需要的
这里写图片描述
这里是说发消息要POST请求这个接口:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
但是这个接口后面需要带一个参数ACCESS_TOKEN。
下面先获取ACCESS_TOKEN。

//这里的WeixinUtil.getAccess_token()方法,放在下面。
String aToken = WeixinUtil.getAccess_token("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+你的appId+"&secret="+你的appSecret+"");  
        System.out.println("这里是aToken"+aToken);
        String[] tokenOne = aToken.split(":");
        String[] token = tokenOne[1].split(",");
        char [] stringArr = token[0].toCharArray();
        String token3 = "" ;
        for(int i=1;i<stringArr.length-1;i++){
            String token2 = String.valueOf(stringArr[i]);
            token3 += token2;
        }
        System.out.println("这里是ACCESS_TOKEN"+token3);

获取到一个ACCESS_TOKEN,然后就可以加入到微信请求中

//这里就是一个微信请求,首先用String放着
String tokenurl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token3;
//首先确定是发送文字消息,还是图文消息,这里是手写的json数据.
//发送文字消息,无连接
String json = "{\"touser\":\"这里是Openid\",\"msgtype\":\"text\",\"text\":{\"content\":\"Hello World\"}}";     
//图文消息,有链接连接
String jsonpic = "{\"touser\":\""+这里是Openid+"\","+ "\"msgtype\":\"news\",\"news\":{\"articles\":["+ "{\"title\":\"HelloWorld\",\"url\":\"要跳转的链接"}]}}";
System.out.println("这里是json"+jsonpic);
//请求方法,然后放回OK 成功,否则错误。这里这个请求方法在下边
String xmlStr = HttpKit.post(tokenurl,jsonpic);
System.out.println("这里是xmlStr"+xmlStr);

说明:WeixinUtil.getAccess_token()方法。我放整个类了。改包名,只需要导入两个包

package com.uitrs.weixin;
import java.net.HttpURLConnection;
import java.net.URL;
public class WeixinUtil {
    //传入URL
       public static  String getAccess_token(String url) {
           String accessToken = null;
           try {
               URL urlGet = new URL(url);
               HttpURLConnection http = (HttpURLConnection) urlGet
                       .openConnection();
               http.setRequestMethod("GET"); // 必须是get方式请求
               http.setRequestProperty("Content-Type",
                       "application/x-www-form-urlencoded");
               http.setDoOutput(true);
               http.setDoInput(true);
               System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
               System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
               http.connect();
               InputStream is = http.getInputStream();
               int size = is.available();
               byte[] jsonBytes = new byte[size];
               is.read(jsonBytes);
               accessToken = new String(jsonBytes, "UTF-8");
               System.out.println(accessToken);
               is.close();
           } catch (Exception e) {

               e.printStackTrace();

           }

           return accessToken;

       }
}

说明:HttpKit.post();方法,我放整个类了。这个类我用的是导入
import com.jfinal.kit.HttpKit;
这个包到了jfinal的包。出自下面三个包当中,具体我也不清楚了
1.jfinal-2.2.jar (应该是这个)
2.jfinal-2.2-bin-with-src.jar
3.jfinal-weixin-1.7-bin-with-src.jar

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值