调用微信扫一扫&获取JS-SDK使用权限签名
程序员文章站
2024-01-24 08:59:34
...
依赖条件
- 微信测试公众号即可,不需要正式服务号之类的,测试公众号地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index。
- 一个域名,域名咋弄?natapp了解一下,花生壳了解一下,直接穿透内网,本地开发。
- 公众号上配置好域名,开发中复制公众号上的appid,秘钥啥的。
开发步骤
- 获取access_token,微信开发文档写的很清楚
获取access_token: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
2、获取jsapi_ticket
用第一步拿到的access_token 采用httpGET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存
jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
3、签名
public String bean2Sign(JSSDKPreSign jssdkPreSign) throws IllegalAccessException {
Class<JSSDKPreSign> cls = (Class<JSSDKPreSign>) jssdkPreSign.getClass();
List<String> fieldNames = new ArrayList<>();
Map<String, Object> fieldMap = new HashMap<>();
Field[] fields = cls.getFields();
for (Field field : fields) {
if (null == field.get(jssdkPreSign)) {
continue;
}
fieldMap.put(field.getName(), field.get(jssdkPreSign));
fieldNames.add(field.getName());
}
Collections.sort(fieldNames);
StringBuilder sb = new StringBuilder();
for (String s : fieldNames) {
Object o = fieldMap.get(s);
sb.append(s + "=" + o.toString() + "&");
}
String content = sb.toString();
String result = content.substring(0, content.lastIndexOf("&") - 1);
return result;
}
4、注意点 前端请求的url如 http://www.bai.com/ 使用URLEncoder解码会忽略末尾的 “/”,想办法比如自己手动加上.
推荐阅读
-
调用微信扫一扫&获取JS-SDK使用权限签名
-
PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片
-
javascript - 微信JS-SDK使用权限签名算法的疑问
-
javascript - 微信JS-SDK使用权限签名算法的疑问
-
微信小程序如何使用webview调用微信扫一扫的功能
-
PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片
-
微信小程序如何使用webview调用微信扫一扫的功能