大概流程:1.根据appId和appSecret获取access_token(使用凭证)进入微信公众平台扫码登录测试号公众号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?tsandbox/loginpublicstaticJSONObjectgetTokenTool(StringappId,StringappSecret){Stringurl"https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credentialappid"+appId+"secret"+appSecret;System.out.println(HttpRequestUtil.httpRequest(url,"GET",""));returnHttpRequestUtil.httpRequest(url,"GET","");}这是测试号获取access_token的接口,普通公众号接口地址请查看微信官方文档。2.根据access_token获取jsapi_ticketpublicstaticJSONObjectgetTicketTool(Stringaccess_token){Stringurl"https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token"+access_token+"typejsapi";System.out.println(HttpRequestUtil.httpRequest(url,"GET",""));returnHttpRequestUtil.httpRequest(url,"GET","");}3.在微信获取签名算法(具体如下)publicstaticMapString,Stringsign(Stringurl){StringappId"wxcc42f613dbf7299f";StringappSecret"e59e10c74c70b1c042b5ecaf454052ac";Stringaccess_tokengetTokenTool(appId,appSecret).getString("access_token");JSONObjectticketJsongetTicketTool(access_token);System.out.println(ticketJson.toString());Stringjsapi_ticketticketJson.getString("ticket");MapString,StringretnewHashMapString,String();//这里的jsapi_ticket是获取的jsapi_ticket。Stringnonce_strcreate_nonce_str();Stringtimestampcreate_timestamp();Stringstring1;Stringsignature"";System.out.println(2);//注意这里参数名必须全部小写,且必须有序string1"jsapi_ticket"+jsapi_ticket+"noncestr"+nonce_str+"timestamp"+timestamp+"url"+url;try{MessageDigestcryptMessageDigest.getInstance("SHA-1");crypt.reset();crypt.update(string1.getBytes("UTF-8"));signaturebyteToHex(crypt.digest());System.out.println("crypt"+crypt.toString());System.out.println("string1"+string1);System.out.println("signature"+signature);}catch(NoSuchAlgorithmExceptione){e.printStackTrace();}catch(UnsupportedEncodingExceptione){e.printStackTrace();}ret.put("url",url);ret.put("jsapi_ticket",jsapi_ticket);ret.put("nonceStr",nonce_str);ret.put("timestamp",timestamp);ret.put("signature",signature);returnret;}privatestaticStringbyteToHex(finalbyte[]hash){FormatterformatternewFormatter();for(byteb:hash){formatter.format("%02x",b);}Stringresultformatter.toString();formatter.close();returnresult;}privatestaticStringcreate_nonce_str(){returnUUID.randomUUID().toString();}privatestaticStringcreate_timestamp(){returnLong.toString(System.currentTimeMillis()/1000);}4.获取一个js安全域名接口(如:gstz.imwork.net)一般使用花生壳进行内网穿透,使内网地址映射到一个花生壳提供的公网的地址,适合用来测试,花生壳内网穿透如何使用可到花生壳官网查看。5.把域名和action的地址拼接起来成url,放入签名方法中(如签名算法的action:https://gstz.imwork.net:8080/Weixin/weixin/getSign.do)@Controller@SuppressWarnings("serial")publicclassWeixinAction{/***获取签名算法*/@RequestMapping("getSign")@ResponseBodypublicJSONObjectgetSign(){JSONObjectjsonObjectnewJSONObject();Stringurl"http://17j62137x0.imwork.net/ssm_d1/index.jsp";MapString,StringretWxJSUtil.sign(url);System.out.println("map"+ret.toString());jsonObject.put("weixin",ret);System.out.println("json"+jsonObject.toString());returnjsonObject;}}6.在JSP页面初始化时异步获取签名action传来3个参数,JSP内容如下%@pagelanguage"java"contentType"text/html;charsetUTF-8"pageEncoding"UTF-8"%!DOCTYPEhtmlheadmetahttp-equiv"Content-Type"content"text/html;charsetUTF-8"title微信扫一扫/titlescriptsrc"http://res.wx.qq.com/open/js/jweixin-1.0.0.js"/scriptscripttype"text/javascript"src"js/jquery-3.2.1.min.js"/scriptscripttype"text/javascript"src"js/weixin.js"/script/headbodyinputid"timestamp"type"hidden"value"${timestamp}"/inputid"noncestr"type"hidden"value"${nonceStr}"/inputid"signature"type"hidden"value"${signature}"/inputid"id_securityCode_input"buttonid"scanQRCode"οnclick"getWeixinResult()"扫码/button/bodyscripttype"text/javascript"/script/html7.通过签名算法获取wx.config的4个重要参数:jsapi_ticket、noncestr、timestamp、urlwx.config({debug:true,//开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId:'',//必填,公众号的唯一标识timestamp:,//必填,生成签名的时间戳nonceStr:'',//必填,生成签名的随机串signature:'',//必填,签名,见附录1jsApiList:[]//必填,需要使用的JS接口列表,所有JS接口列表见附录2});8.告诉微信选择调用的接口名称9.把获取的结果result进行处理getWeixinResultCallBack(param)10.给按钮添加getWeixinResult事件,就可以通过按钮调用扫一扫功能。(记得用微信浏览器点开)这是DEMO的下载地址(博主本想免费分享这个资源的,无奈CSDN最少也要2点资源分才能下载):下载DEMO
微信开放实战扫一扫功能详细-微信扫一扫开发-微信小程序扫一扫功能
浏览量:2116
时间:
来源:ricky73999
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










