目录
4)获取当前时间戳,记得除以1000(10位数) 例如:1626139722
一、流程:
1) 前端请求后台接口,传入url
2) 后端接收请求,处理业务逻辑,返回签名等参数
1.获取token
2.拿token获取ticket
3.获取随机字符串(用自带的UUID就行)
4.获取当前时间戳,记得除以1000(10位数) 例如:1626139722
5.拼接参数(url是前端传过来的)
String context = "jsapi_ticket=xxxx&noncestr=xxxx×tamp=xxxx&url=xxxx“
6.参数SHA1加密
7.封装,返回前端
二、分步骤解析:
如果不想了解,直接去最下面Cope完整代码
1)获取token
appid、secret、grant_type这三个值都是固定值
前两个值是微信公众号开发者平台上的凭据,AppId 和 AppSecret
微信公众平台凭据调试工具:微信公众平台接口调试工具
------------------------------------------------------------------------------------------------------------
appid:公众号的id
secret:公众号的秘钥
grant_type:授权码发放类型(固定值:client_credential)
grant_type=client_credential
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
private static JsonParser parse = new JsonParser();
/**
* 获取 token
* @return
*/
public static String getToken() {
// https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxx&secret=xxxx
String url = ACCESS_TOKEN_URL + "?grant_type=" + GRANT_TYPE + "&appid=" + APPID + "&secret=" + SECRET;
//请求链接获取token,这个httpGetForJson()方法去完整代码中找
String response = httpGetForJson(url);
return ((JsonObject) parse.parse(response)).get(ACCESS_TOKEN_KEY).getAsString();
}
2)拿token获取ticket
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
private static JsonParser parse = new JsonParser();
/**
* 获取 ticket
* @param token
* @return
*/
public static String getTicket(String token) {
// https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=xxxx&type=jsapi
String url = TICKET_URL + "?access_token=" + token + "&type=" + TYPE;
//请求链接获取token,这个httpGetForJson()方法去完整代码中找
String response = httpGetForJson(url);
return ((JsonObject) parse.parse(response)).get(TICKET_KEY).getAsString();
}