Skip to content

muzin/wechatapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wechat API

微信公共平台API。

功能列表

Installtion

需手动在项目中加入如下jar:

// 需引入以下 jar 包

// https://mvnrepository.com/artifact/com.google.code.gson/gson
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.2'

// https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.6'

// https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime
compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.6'

组建jar包后,将jar包放入项目下, 在build.gradle的repositoriesdependencies加入如下代码:

repositories {
     flatDir {  dirs 'lib' }     //   lib 代表存放jar包的目录
}

dependencies {
    compile group: 'cn.muzin', name:"wechatapi", version:'1.0.0'
}

组建jar

gradle jar

或者,使用idea中gradle可视化工具组建

Usage

import WechatAPI;

WechatAPI api = new WechatAPI(appid, appsecret);

多进程

当多进程时,token需要全局维护,以下为保存token的接口:

WechatAPI api = new WechatAPI(appid, appsecret, new TokenStorageResolver() {

    /**
     * 获取token
     * 程序内部将通过此方法获取token
     */
    @Override
    public AccessToken getToken() {
        AccessToken token = 从文件、redis等渠道获取保存的accessToken
        return token;
    }
    
    /**
     * 保存token
     * 程序内部每次更新accessToken时,将会通知此方法
     * 在此时将accessToken持久化
     */
    @Override
    public void saveToken(AccessToken accessToken) {
        // code...
        // 保存到文件、redis等渠道
    }
});

或者

// 全局维护 accessToken 和 ticket

WechatAPI api = new WechatAPI(appid, appsecret, 
    new TokenStorageResolver() {
    
        /**
         * 获取token
         * 程序内部将通过此方法获取token
         */
        @Override
        public AccessToken getToken() {
            AccessToken token = 从文件、redis等渠道获取保存的accessToken
            return token;
        }
        
        /**
         * 保存token
         * 程序内部每次更新accessToken时,将会通知此方法
         * 在此时将accessToken持久化
         */
        @Override
        public void saveToken(AccessToken accessToken) {
            // code...
            // 保存到文件、redis等渠道
        }
    },new TicketStorageResolver() {
  
         @Override
         public Ticket getTicket(String s) {
            Ticket ticket = 从文件、redis等渠道获取保存的ticket
            return ticket;
         }

         @Override
         public void saveTicket(String s, Ticket ticket) {
            // code...
            // 保存到文件、redis等渠道
        }

    });