您的位置 首页 java

爱尚实训解析:JAVAEE开发接入微信公众号接口初解(1)

这篇文章是个人对微信的理解,如果有错误的地方,希望大家能够指正出来

微信开发是针对前端提供的服务,然而并不能阻止我们一个 java 程序员对它封装的决心!!!

正文开始:

在开发前,我们要知道,微信开发可以做些什么。

微信开发:

基于微信所提供的服务,我们可以依赖于一个特殊的账号(例如公众号),

将用户发送给微信端的消息发送至我们的服务器上,进行业务逻辑判断,做出相应的回应。

还可以通过用户在微信的授权,在不泄露用户资料的情况下,访问用户所授权的资源。

依赖微信服务器提供的服务资源进行功能拓展等。

准备事项:

1.一个公众号,开发者可以申请一个测试用的测试公众号

2.微信接口调试工具

3.微信官方API文档

当我们申请下来公众号之后,进入测试公众号(以下简称公众号),这时会

拿到一个APPID和appsecret,相当于你的公众号的用户名和密码。

我们首先进行一些基本的操作

通过微信接口生成access_Token(公众号临时令牌)

https请求方式:

GET

我们把APPID和APPSECRET这两个 字符串 替换成我们公众号的appid和 appsecret

微信会给我们返回一个 json 字符串

{“access_token”:”ACCESS_TOKEN”,”expires_in”:7200}

我们只需要access_token,后面的参数指明这个口令有效时间长度为两个小时

我们有了这个口令,就可以基本不用appid和APPsecret来操作微信了。

至于怎么access_token有什么用,我们下期进行详细说明。

不说了 上代码

[java] view plain copy

1.import java. io .BufferedReader;

2.import java.io.IOException;

3.import java.io. InputStream ;

4.import java.io.InputStreamReader;

5.import java.net.MalformedURLException;

6.import java.net.URL;

7.import java.nio. charset .Charset;

8.

9.public class TokenTest {

10.public static void main(String[] args) throws MalformedURLException, IOException {“white-space: pre ;”>

11.String url = “这里换成你测试用的appid&secret=这里换成你测试用的appsecret”;

12.

13.InputStream io = new URL(url).openStream();

14.

15.InputStreamReader inputStreamReader = new InputStreamReader(io, Charset.forName(“UTF-8”));

16.

17.BufferedReader br = new BufferedReader(inputStreamReader);

18.

19.String token = readAll(br);

20.

21.System.out.println(token);

22.

23.

24.}

25.

26.

27.

28.public static String readAll(BufferedReader br) throws IOException{

29.int len = 0;

30.char[] ch = new char[1024];

31.StringBuilder sb = new StringBuilder();

32.while((len = br.read(ch)) != -1){

33.sb. append (ch,0,len);

34.}

35.return sb. toString ();

36.}

37.

38.}

控制台输出

[javascript] view plain copy

1.{“access_token”:”5_y7aRyAn1To2hW1fvquTmLNldl3I-YqILa_kZDVJOQCGtwClB9z3UHXfmRN9NBYJMu17G9wq9pLDCQcqmbirbhL95JvHxepIbO6-3NH7RhtGerDFW5iorio4ZNTayYE4qXBAM5cybEYM8hlkqITXcAFAUFJ”,”expires_in”:7200}

若appid和secret错误,则会报

[javascript] view plain copy

1.{“errcode”:40013,”errmsg”:”invalid appid”}

根据errcode我们参考官方文档,便可以找到错误(后面会详细说明)

通过这次操作,我们发现,作为开发不过是通过地址栏访问改网址,获取json数据而继续我们的逻辑操作,很像从数据库读取数据。那么我们可以将这些操作封装成工具方法

[java] view plain copy

1.”white-space:pre;”> import java.io.BufferedReader;

2.import java.io.IOException;

3.import java.io.InputStream;

4.import java.io.InputStreamReader;

5.import java.io.Reader;

6.import java.net.MalformedURLException;

7.import java.net.URL;

8.import java.net.URLConnection;

9.import java.nio.charset.Charset;

10.

11.

12.import org.json.JSONException;

13.import org.json.JSONObject;

14.

15.

16.

17.

18.public class UrlJsonParam public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {

19.InputStream is = new URL(url).openStream();

20.try {

21.BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName(“UTF-8”)));

22.String jsonText = readAll(rd);

23.System.out.println(jsonText);

24.JSONObject json = new JSONObject(jsonText);

25.return json;

26.} finally {

27.is.close();

28.}

29.} private static String readAll(Reader rd) throws IOException {

30.StringBuilder sb = new StringBuilder();

31.int cp;

32.while ((cp = rd.read()) != -1) {

33.sb.append((char) cp);

34.}

35.return sb.toString();

36.}

37.}

我们将字符串直接转换成JSONObject对象,便可以对json进行快速读取了。

其实微信开发不过是访问网页,读取字符串,转换成我们需要的数据,进行业务逻辑拼装,

如果大家感兴趣,我会持续更新的

更新预告:对微信的信息简单封装整理。

文章来源:智云一二三科技

文章标题:爱尚实训解析:JAVAEE开发接入微信公众号接口初解(1)

文章地址:https://www.zhihuclub.com/181088.shtml

关于作者: 智云科技

热门文章

网站地图