微信扫一扫

原创 2017年01月03日 14:31:09
jsp页面
                                                      <div class="weui-cell__ft">
								<img id="ttSao" class="weui-vcode-img"
									src="${ctxStatic}/wx/images/sao.jpg"> <input
									id="rootpath" name="rootpath" type="hidden"
									value="${pageContext.request.contextPath}" />
							</div>
js代码

var title;
var contentstr;
var imgstr;
var contentId;
var rootpath;
var codeType;

$(function(){
	//初始化加载列表
	$("#wxSao").on("click",function(){
		getJsSdkParam(1);
	});
	
	$("#ttSao").on("click",function(){
		getJsSdkParam(2);
	});
	$("#sbSao").on("click",function(){
		getJsSdkParam(3);
	});
	
});
function getJsSdkParam(t){//1为云开票抬头扫码,2为添加抬头扫码//3为我的设备扫
	codeType=t;
	//window.location.host; //返回url 的主机部分,例如:www.xxx.com  
	//window.location.hostname; //返回www.xxx.com  
	var url=window.location.href; //返回整个url字符串(在浏览器中就是完整的地址栏),例如:www.xxx.com/index.php?class_id=3&id=2  
	//window.location.pathname; //返回/a/index.php或者/index.php  
	//window.location.protocol; //返回url 的协议部分,例如: http:,ftp:,maito:等等。  
	//window.location.port; //url 的端口部分,如果采用默认的80端口,那么返回值并不是默认的80而是空字符  
	rootpath=$("#rootpath").val();
	$.ajax({
		type : "post",
		url : rootpath+"/jsApiSdk/getParam",
		data : {
			"url":url
		},
		success : function(result){
			var code=result.code;
			if(code==200){
				verification(result.appId,result.timestamp,result.nonceStr,result.signature);
			}else{
				$.WebUI.toast("获取参数失败","warning");
			}
		},
		error : function(result){
			$.WebUI.toast("获取参数失败","warning");
		}
	});
}
function verification( appId1, timestamp1,nonceStr,signature){
	wx.config({
	    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
	    appId: appId1, // 必填,公众号的唯一标识
	    timestamp:timestamp1, // 必填,生成签名的时间戳
	    nonceStr: nonceStr, // 必填,生成签名的随机串
	    signature:signature,// 必填,签名,见附录1
	    jsApiList: [
	                /*'onMenuShareTimeline',
	                'onMenuShareAppMessage',
	                'onMenuShareQQ',
	                'onMenuShareWeibo',
	                'previewImage',
	                'getLocation'*/
	                'scanQRCode'
	                ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
	});
	
	wx.ready(function () {
		wx.checkJsApi({
	        jsApiList: [
	         /*'onMenuShareTimeline',
	         'onMenuShareAppMessage',
	         'onMenuShareQQ',
	         'onMenuShareWeibo',
	         'previewImage',
	         'getLocation'*/
	         'scanQRCode'
	        ],
	        success: function (res) {
	        	
	        	//alert("验证成功"+res)
	        	 
	        }, error: function (res) {
	        	//alert("验证失败"+res)
	        }
	    });

		wx.scanQRCode({
		    needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
		    scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
		    success: function (res) {
			    var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
			    if(codeType==1||codeType==2){
			    	$.ajax({
						type : "get",
						url : rootpath+"/w/wxfptt/detail",
						data : {
							"id":result
						},
						success : function(result){
							var code=result.code;
							if(code==200){
								if(codeType==1){
									$("#ghdwmc").val(result.tt);
					            	$("#ghdwdm").val(result.nsrsbh);
								}else if(codeType==2){
									$("#taitou").val(result.tt);
									var z=result.zd;
									if(z==1){
										document.getElementById('zd').checked='on';
									}
									var a=result.yhlx;
									if(a==0){
										$("input[type='radio'][name='yhlx']").attr("checked",false);//所有单选按钮都不选中
										$("input[type='radio'][name='yhlx']").get(0).checked = true;//选中第一个
									}else{
										$("input[type='radio'][name='yhlx']").attr("checked",false);//所有单选按钮都不选中
										$("input[type='radio'][name='yhlx']").get(1).checked = true;//选中第一个
										$("#sum").css("display","block");
										$("#shuihao").val(result.nsrsbh);	
										$("#dizhi").val(result.dw);
										$("#yinhang").val(result.yh);
										$("#yhkh").val(result.zh);
									}
									$("#moblie").val(result.dh);
								}else{
									$.WebUI.toast("没有获得信息 请手动输入","warning");
								}
								
							}else{
								$.WebUI.toast("获取抬头信息失败","warning");
							}
						},
						error : function(result){
							$.WebUI.toast("获取参数失败","warning");
						}
					});
			    }
			    if(codeType==3){
                              result是扫描出来的  编号
                           window.location.href = rootpath+"/w/mysb/sao?id="+result;	
			    }
			}
		});
	});
}






控制器
/**
	 * 根据ID查询一个抬头的信息
	 * 
	 * @param id
	 * @param modelMap
	 * @return
	 */
	@RequestMapping(value = "/detail")
	@ResponseBody
	private Object detail(String id, ModelMap modelMap) {
		JSONObject json = new JSONObject();
		json.put("code", 201);
		try {
			Wxfptt wxfptt = wxfpttService.get(id);
			json.put("id", wxfptt.getId());
			json.put("tt", wxfptt.getTt());
			json.put("yhlx", wxfptt.getYhlx());
			json.put("nsrsbh", wxfptt.getNsrsbh());
			json.put("dw", wxfptt.getDw());
			json.put("dh", wxfptt.getDh());
			json.put("yh", wxfptt.getYh());
			json.put("zh", wxfptt.getZh());
			json.put("zd", wxfptt.getZd());
			json.put("code", 200);
		} catch (Exception e) {
			log.error("根据ID查询一个抬头的信息", e);
		}
		return json;
	}


相关文章推荐

微信公众号与HTML 5混合模式揭秘4——jssdk调用微信扫一扫

在JSSDK中,为开发者提供了一个扫一扫API服务
  • kgsew
  • kgsew
  • 2015年11月24日 14:16
  • 2812

在VS环境下使用SVN

由于我和同事要合作做一个小程序,所以需要一个源代码管理的工具。在工作的时候我们由于是VS进行.net开发所以一般是使用TFS进行项目管理。但是我们在不同的项目组,工作地点不一样,而且现有的TFS服务器...
  • studyzy
  • studyzy
  • 2013年09月10日 14:20
  • 2368

微信JS-SDK扫一扫_DEMO

  • 2017年11月21日 09:02
  • 34KB
  • 下载

微信扫一扫智能判断IOS和Android

  • 2016年07月21日 16:23
  • 257KB
  • 下载

【寻找最佳小程序】03期:摩拜单车小程序——联合微信团队打造,实现不换码一扫即用

【寻找最佳小程序】系列访谈第03期,由CSDN和知晓程序联合推出,为大家介绍摩拜单车微信小程序。该小程序由微信和摩拜共同研发完成。在不更改车身上二维码的情况下,用户只需通过微信“扫一扫”即可直达小程序...

Android高仿微信扫一扫

  • 2015年07月12日 10:07
  • 16.48MB
  • 下载

微信开发调用JSSDK 扫一扫功能

调用扫一扫功能有几个步骤 简单而言: 1 获取accesstoken 2  获取jsapi_ticket 3 生成签名signature 调用wx.config     wx.ready     wx...

C# ASP .NET 二维码 微信 扫一扫

  • 2016年11月10日 13:42
  • 2.23MB
  • 下载

ASP.NET生成二维码微信扫一扫

  • 2016年11月11日 10:12
  • 2.23MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:微信扫一扫
举报原因:
原因补充:

(最多只允许输入30个字)