微信公众号调用摄像头拍照和打开本地相册上传图片至服务器

一、主体实现流程

1.引入Jquery和微信公众号JS-SDK

2.调用【获取临时素材】downloadImage()接口(参数mediaId),拿到返回的图片文件流(或其他格式的多媒体文件流),保存到自己的服务器。

二、具体实现步骤

1.绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

如果暂时没有认证过的公众号,可以通过这个微信链接去注册一个测试公众账号,并配置JS接口安全域名,注意这里配置的JS接口安全域名不带http和www,格式比如 42du.net

测试公众账号申请地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

微信公众号调用摄像头拍照和打开本地相册上传图片至服务器

在本页面还要配置一下微信认证网页授权,注意授权回调页面域名不带http和www,格式比如 42du.net

微信公众号调用摄像头拍照和打开本地相册上传图片至服务器

2.在需要调用摄像头的页面,引入JS文件

<!-- jquery 非必须 -->

<script src="/common/js/jquery-2.2.4.min.js"></script><script src="/common/js/bootstrap.min.js"></script><script src="/common/js/bootstrap-select.min.js"></script><script src="/common/js/i18n/defaults-zh_CN.min.js"></script><script src="/common/js/ajax.js"></script><script src="/common/js/jquery.form.min.js"></script><!--需要调用摄像头--><script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

注意:微信官网给到的 是jweixin-1.4.0.js不稳定,亲测不能用,jweixin-1.2.0.js可用

3.通过config接口注入权限验证配置

<script type="text/javascript"> wx.config({ debug: true, appId:res.appId, // 必填,公众号的唯一标识 timestamp: res.timestamp, // 必填,生成签名的时间戳 nonceStr: res.noncestr, // 必填,生成签名的随机串 signature: res.signature,// 必填,签名,见附录1 jsApiList: ['chooseImage','uploadImage','previewImage','downloadImage']// 必填 }); </script>

4.JS-SDK使用权限签名算法,生成第三步中 config接口所需参数

注意:java代码使用springmvc框架,使用到的缓存、参数获取等语法,开发者自适应修改。

获取access_token(官方:有效期7200秒,开发者必须在自己的服务全局缓存access_token)、jsapi_ticket、签名sign

/**

* create by guo bin hui in 2018-09-28

* 获取jsp页面调用微信公众号js-sdk上传图片的config接口所需参数

*/

@RequestMapping(value = "/getWxConfig")

@ResponseBody

public Map getWxConfig(HttpSession seesion, HttpServletRequest request) throws IOException {

Map <String,String> map = new HashMap <String,String> ();

UserInfo user = (UserInfo)request.getSession().getAttribute("user");

String ticket = WeiXinUtil.getJsapiTicket(TEMP_ACCESS_TOKEN);

map.put("jsapi_ticket

查看原文 >>
相关文章