在登录此网站后,会得到如图所示的页面。
appID和appsecret是之后进行微信开发调用微信接口必须的信息。
接口配置信息是需要你服务器地址/项目名/servlet名(方法一:云服务器,方法二内网穿刺工具,我后续开发都是内网穿刺工具ngrok,教程下文见)
Token是随便填的。要配置成功,需要写一点代码。
JS接口安全域名填的是服务器地址去掉http://,是不能写http://这样的网站。
编码能力强的童鞋可以直接面向文档编程。
微信开发者文档
其他童鞋可以在B站看颜群老师的微信开发的课,有一说一,颜群老师的课是真的好,讲的知识比较全,最重要是幽默,听得会聚精会神。
课程地址
建议听一下,后续如果要用JS接口就可以自己写出代码了,流程都是那个流程,看文档就行。
如果心急的话,直接拿源码,是eclipse编写的。
链接:https://pan.baidu.com/s/1hGZtVMVhDI3s5W2gA7lipQ
提取码:5az5
复制这段内容后打开百度网盘手机App,操作更方便哦
内网穿刺工具是可以将自己的电脑变成一台可以随时随地被别人访问的服务器,前提是此工具是处于运行状态的。
ngrok的登录地址:登录网站
直接用免费隧道,毕竟网络精神的精髓是能白嫖就不用花钱。
natapp此内网穿刺工具免费的用户体验不好,他的网址会一直变化,到时候用着会很麻烦,ngrok生成本机地址是不会变的。
创建按钮的主函数:
package util;
import com.alibaba.fastjson.JSONObject;
import Service.WxService;
import entity.Button;
import entity.ClickButton;
import entity.ViewButton;
public class CreateMenu {
public static void main(String[] args) {
Button btn = new Button();
btn.getButton().add(new ViewButton("进入考勤系统","https://open.weixin.qq.com/connect/oauth2/authorize?appid=你自己的appid&redirect_uri=你自己想要跳转的网站&response_type=code&scope=snsapi_userinfo#wechat_redirect"));
JSONObject jsonObj = (JSONObject) JSONObject.toJSON(btn);
System.out.println(jsonObj.toString());
//地址
String url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";
url = url.replace("ACCESS_TOKEN",WxService.getAccessToken());
Util util = new Util();
String result = util.post(url,jsonObj.toString());
System.out.println("创建菜单的结果:"+result);
}
}
WxService.getAccessToken():
private static void getToken() {
String url = Get_Token_Url.replace("APPID",appID).replace("APPSECRET",appsecret);
String tokenStr = Util.get(url);
System.out.println(tokenStr);
JSONObject jsonObj = JSONObject.parseObject(tokenStr);
String token = jsonObj.getString("access_token");
String expireIn = jsonObj.getString("expires_in");
at = new AccessToken(token,expireIn);
}
public static String getAccessToken() {
if(at == null || at.isExpired()) {
getToken();
}
return at.getAccessToken();
}
util.post:
public static String post(String url,String data) {
try {
URL urlObj = new URL(url);
URLConnection conn = urlObj.openConnection();
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
os.write(data.getBytes());
os.close();
InputStream is = conn.getInputStream();
byte[] b = new byte[1024];
int len;
StringBuilder sb = new StringBuilder();
while((len=is.read(b))!=-1) {
sb.append(new String(b,0,len));
}
return sb.toString();
}catch(Exception e) {
e.printStackTrace();
}
return null;
}