前台:微信开发者工具
后台:idea
后台jar包
1.需要的jar包
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
2.java后台请求access_token码
package com.example.demo.demo;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import net.sf.json.JSONObject;
public class AccessToken {
private static final String APPID = "";//微信appid
private static final String APPSECRET = "";//对应的appid的秘钥
//提示要和小程序对应在创建小程序时需要测试号或者开发号
public static String getAccessToken() throws Exception{
String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="
+APPID+ "&secret="+APPSECRET;
System.out.println("URL for getting accessToken accessTokenUrl="+accessTokenUrl);
System.out.println(accessTokenUrl);
URL url = new URL(accessTokenUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.connect();
//获取返回的字符
InputStream inputStream = connection.getInputStream();
int size =inputStream.available();
byte[] bs =new byte[size];
inputStream.read(bs);
String message=new String(bs,"UTF-8");
//获取access_token
JSONObject jsonObject = JSONObject.fromObject(message);
String accessToken = jsonObject.getString("access_token");
String expires_in = jsonObject.getString("expires_in");
System.out.println("accessToken="+accessToken);
System.out.println("expires_in="+expires_in);
return accessToken;
}
public static void main(String[] args){
try {
AccessToken.getAccessToken();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.用一个普通的请求来返回access_token码
//随便创建一个controller类把下面代码加入其中
@RequestMapping("/hc")
public String aabbc() throws Exception {
return AccessToken.getAccessToken();
}
4.前台先写一个button
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">手机号</button>
5.如果请求报错说请求不和法就请按照下面步骤操作
6.在其对应的ts(js)中加入
getPhoneNumber (e) {//获取手机号码需要两个东西1. code前台用户点击确认获取码
//后台java2.access_token
//其中获取access_token码又需要appid也就是用户编号还需要用户秘钥
var tehn=this;
const aa = wx.request({
url: 'http://localhost:8080/hc',
data: {
},
header: {
'content-type': 'application/json'
},
success (res) {//res.dataaccess_token
console.log(res.data);
const requestTask = wx.request({
url: 'https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token='+res.data,
method:"POST",
data: {
code: e.detail.code ,
// access_token:res.data
},
header: {
'content-type': 'application/json'
// 'content-type': 'application/x-www-form-urlencoded'
},
success (res) {
console.log(res.data)
}
})
}
})
}
7.最后它会输出手机号码