引用自:微信Java SDK开发文档
weixin-java-tools 是一款开源的微信 Java SDK 工具,对微信接口封装的比较全,简单配置即可使用,正式版的更新频率是两个月,是 Java 开发微信项目的利器。此文主要介绍使用过程中遇到的的一些 wiki 中没有详细介绍的地方。
CP_如何调用未支持的接口
CP_如何调用未支持的接口
使用 wxCpService.get(url, queryParam)
和 wxCpService.post(url, postData)
方法时 url 和 queryParam 不用附带 accessToken 参数,因为该参数在实际调用微信接口时已经封装在 url 的 queryParam 里了。post 方法中的 postData 是 stringify 处理之后的 JSON 字符串 而不是 JSON 对象。
MP_js_api
MP_js_api
微信企业号服务获取JS-SDK需要的证书信息可以调用 wxCpService.createJsapiSignature(url)
,其中 url 必须是调用 JS-SDK 页面的全路径(包括?后的 queryString)中第一个#之前的字符串。例如当前的页面全路径是 http://www.yupaits.com/hello?text=world&next=config#wechat
,则 url 应该是 http://www.yupaits.com/hello?text=world&next=config
。
页面上可以通过config接口注入权限验证配置。
1 2 3 4 5 6 7 8
| wx.config({ debug: true, appId: '', timestamp: , nonceStr: '', signature: '', jsApiList: [] });
|
两者结合的实例。点击页面上的“扫码”按钮,调用 js 中的 scan()
方法。
1 2 3 4 5 6 7 8 9 10
| @RequestMapping(value = "/jssdk", method = RequestMethod.GET) public String jsSdkPage(HttpServletRequest request, Model model) { try { String url = request.getRequestURL().append(StringUtils.isNotBlank(HttpUtil.getRequest().getQueryString()) ? "?" + HttpUtil.getRequest().getQueryString() : "").toString(); model.addAttribute("jsApiSignature", JSON.toJSONString(wxCpService.createJsapiSignature(url))); } catch (WxErrorException e) { logger.error("获取JS-API的签名出错,{}", e.getMessage()); } return "weixin/jssdk"; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| var jsapisignature = JSON.parse('${jsApiSignature}'); function scan() { wx.config({ debug: false, appId: jsapisignature.appid, timestamp: jsapisignature.timestamp, nonceStr: jsapisignature.noncestr, signature: jsapisignature.signature, jsApiList: [ 'scanQRCode' ] });
wx.ready(function () { wx.scanQRCode({ needResult: 1, success: function (res) { alert('恭喜你'); }, error: function (res) { if(res.errMsg.indexOf('function_not_exist') > 0){ alert('版本过低请升级'); } } }); });
wx.error(function (res) { alert('微信JS接口验证失败,无法调用相关接口'); }); }
|