JS 调用微信扫一扫功能
网络编程 2021-07-04 19:19www.168986.cn编程入门
这篇文章主要介绍了JS 调用微信扫一扫功能,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下吧
1.第一步:
设置调用微信js安全域名,就可以在该域名下调用微信的js接口
2.第二步:
将狼蚁网站SEO优化的js附在需要调用微信扫一扫的页面上,前提是需要引入微信的js[]
3.第三步:
参考官方文档
通过后台获取js权限签名jsapi_ticket【参考文档:】
后台获取签名代码:
package .epoch.wap.mon; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Formatter; import java.util.HashMap; import java.util.Map; import java.util.UUID; import .apache.http.HttpResponse; import .apache.http.client.ClientProtocolException; import .apache.http.client.methods.HttpGet; import .apache.http.impl.client.HttpClients; import .apache.http.util.EntityUtils; import .epoch.mon.utils.JsonUtil; /** * 官方给的使用js的验证工具 * @author Administrator * */ public class JsSignUtil { public static String aessToken = null; public static Map<String, Object> sign(String url) { String sendUrl = "https://api.weixin.qq./cgi-bin/token?grant_type=client_credential&appid=**appid**&secret= **secret**"; String result = getHttpResult(sendUrl); Object aessResult = JsonUtil.getValueFromJson(result, "aess_token"); String signUrl = "https://api.weixin.qq./cgi-bin/ticket/getticket?aess_token="+aessResult.toString()+"&type=jsapi"; String resultSign = getHttpResult(signUrl); Object ticket = JsonUtil.getValueFromJson(resultSign, "ticket"); Map<String, Object> ret = new HashMap<String, Object>(); String nonce_str = create_nonce_str(); String timestamp = create_timestamp(); String string1; String signature = ""; //注意这里参数名必须全部小写,且必须有序 string1 = "jsapi_ticket=" + ticket + "&noncestr=" + nonce_str + "×tamp=" + timestamp + "&url=" + url; try { MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset(); crypt.update(string1.getBytes("UTF-8")); signature = byteToHex(crypt.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } ret.put("url", url); ret.put("nonceStr", nonce_str); ret.put("timestamp", timestamp); ret.put("signature", signature); ret.put("jsapi_ticket", ticket); ret.put("appId", "wx154f74654ae04891"); return ret; } /** * 随机加密 * @param hash * @return */ private static String byteToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } /* * 获取访问地址链接返回值 */ private static String getHttpResult(String url) { String result = ""; HttpGet httpRequest = new HttpGet(url); try { HttpResponse httpResponse = HttpClients.createDefault().execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode() == 200) { result = EntityUtils.toString(httpResponse.getEntity()); } } catch (ClientProtocolException e) { e.printStackTrace(); result = e.getMessage().toString(); } catch (IOException e) { e.printStackTrace(); result = e.getMessage().toString(); } return result; } /** * 产生随机串--由程序自己随机产生 * @return */ private static String create_nonce_str() { return UUID.randomUUID().toString(); } /** * 由程序自己获取当前时间 * @return */ private static String create_timestamp() { return Long.toString(System.currentTimeMillis() / 1000); } }
官方文档示例:
参考以下文档获取aess_token(有效期7200秒,开发者必须在自己的服务全局缓存aess_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html
用第一步拿到的aess_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):
4 第四步:
前台进入页面:`
@RequestMapping(value = "/tiaoma") public String tiaoma( HttpServletRequest request,GoodsVO goods) throws Exception { String Url=request.getRequestURL()+"?"+request.getQueryString().toString();; Map<String, Object> resMap = new HashMap<String, Object>(); resMap = JsSignUtil.sign(Url); request.setAttribute("nonceStr", resMap.get("nonceStr")); request.setAttribute("timestamp", resMap.get("timestamp")); request.setAttribute("signature", resMap.get("signature")); request.setAttribute("appId", resMap.get("appId")); request.setAttribute("url", resMap.get("url")); request.setAttribute("jsapi_ticket", resMap.get("jsapi_ticket")); return "index/tiaoma"; }`
以上所述是长沙网络推广给大家介绍的JS 调用微信扫一扫功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
上一篇:jQuery实现两个select控件的互移操作
下一篇:Vue实现双向绑定的方法
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程