微信服务号调用扫一扫接口和拍照上传接口

一.引入js

 <script type="text/javascript" src="${path}/wechat/js/jweixin-1.2.0.js"></script>

二.java后端发送授权参数

//1、时间戳和随机字符串  
String noncestr = UUID.randomUUID().toString().replace("-", "").substring(0, 16);//随机字符串  
String timestamp = String.valueOf(System.currentTimeMillis() / 1000);//时间戳 
//2、获取url  
String rurl = request.getRequestURL().toString();
if (StringUtils.isNotEmpty(request.getQueryString()))
    rurl += "?" + request.getQueryString();
//3、获取jsapiTicket
String jsapiTicket = super.getJsapiTicket();
//4、将参数排序并拼接字符串  
String str = "jsapi_ticket="+jsapiTicket+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+rurl;  
//5、将字符串进行sha1加密  
String signature =super.SHA1(str);  
mav.addObject("signature", signature);
mav.addObject("nonceStr", noncestr);
mav.addObject("timestamp", timestamp);
mav.addObject("appId",getCorpId());

三.配置需要用到的功能

$(function(){
    doConfig();//配置功能
});
function doConfig(){
    	var timestamp = $("#timestamp").val();//时间戳
		var nonceStr = $("#nonceStr").val();//随机串
		var signature = $("#signature").val();//签名
		var appId = $("#appId").val();//公众号的唯一标识
		wx.config({
		      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
		      appId: appId+'', // 必填,公众号的唯一标识
		      timestamp: timestamp, // 必填,生成签名的时间戳
		      nonceStr: nonceStr+'', // 必填,生成签名的随机串
		      signature: signature+'',// 必填,签名,见附录1
		      jsApiList: [	
			        //扫码权限
		      		'scanQRCode' ,
                    //拍照权限
		      		'chooseImage', 
                    //预览图片权限
					'previewImage',  
                    //上传图片权限
					'uploadImage',  
                    //下载图片权限
					'downloadImage'
		      ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
		  });
	  	  wx.error(function(res){
			  configSuccess = false;
		      // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
		  });
		  // 执行了doConfi之后执行的回调函数,进行定位
		  wx.ready(function(){
			  configSuccess = true;
			  // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
		  });
    }

三.在需要用到的地方调用

    function takeScanQRCode(){
    	wx.scanQRCode({
    		needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
    		scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
    		success: function (res) {
    			var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
    			var qrcode=result.split(",");
    			$("#barCode").val(qrcode[1]);
    		}
    	});
    }

	function upload(id,obj){
		wx.uploadImage({
		    localId: id, // 需要上传的图片的本地ID,由chooseImage接口获得
		    isShowProgressTips: 0, // 默认为1,显示进度提示
		    success: function (res) {
		        var serverId = res.serverId; // 返回图片的服务器端ID
		        saveToFtp(obj,serverId);
		    }
		});
	}

	function previewImage(){
		//微信预览
        var imgsurl=[];
	    var nowurl='';  
	    var imgObj=$("#photo img");
	    for(var i=0;i<imgObj.length;i++){
	    	if(imgObj[i].name=='2'){
	    		imgsurl[i]=imgObj[i].src;  
	    	}else{
	    		imgsurl[i]=imgObj[i].name;  
	    	}
	       
	        imgObj[i].onclick=function(){  
	           
	            if(this.name=='2'){
	            	 nowurl=this.src;
	            }else{
	            	 nowurl=this.name;
	            }
	            wx.previewImage({  
	                current: nowurl,  
	                urls: imgsurl  
	            });               
	        }  
	    } 	  
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值