Java调用微信客服消息实现发货通知的方法详解

所属分类: 软件编程 / java 阅读数: 22
收藏 0 赞 0 分享

本文实例讲述了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

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java字符与字符串操作技巧总结》、《Java数组操作技巧总结》、《Java数学运算技巧总结》、《Java编码操作技巧总结》和《Java数据结构与算法教程

希望本文所述对大家java程序设计有所帮助。

更多精彩内容其他人还在看

Java的面向对象编程基本概念学习笔记整理

这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
收藏 0 赞 0 分享

Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法

这篇文章主要介绍了Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Java实现杨辉三角 LeetCode Pascal's Triangle

这篇文章主要介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中Spring获取bean方法小结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

如何计算Java对象占用了多少空间?

在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小,需要的朋友可以参考下
收藏 0 赞 0 分享

剖析Java中的事件处理与异常处理机制

这篇文章主要介绍了Java中的事件处理与异常处理机制,讲解Java是如何对事件或者异常作出响应以及定义异常的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Java的Struts2框架的结构及其数据转移方式

这篇文章主要介绍了详解Java的Struts2框架的结构及其数据转移方式,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

Java封装好的mail包发送电子邮件的类

本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
收藏 0 赞 0 分享

在Java的Struts中判断是否调用AJAX及用拦截器对其优化

这篇文章主要介绍了在Java的Struts中判断是否调用AJAX及用拦截器对其优化的方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

java多线程Future和Callable类示例分享

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们就来研究下Future和Callab
收藏 0 赞 0 分享
查看更多