微信小店接口必须经过微信认证的服务号才可以有权限调用,订阅号无权限。
微信小店跳转微信商品页接口
wx.openproductspecificview({
productid: '', // 商品id
viewtype: '' // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页
});
第一、新建jsp页面,并引入js库
fd5b22aca86680e7d35b0cdc1220512f 2cacc6d41bbb37262a98f745aa00fbf0
1e6ae4be7540622a805f6b7df21a42db2cacc6d41bbb37262a98f745aa00fbf0
jweixin-1.1.0.js是调用微信jsapi的库,所以必须引入,第二行是本案例使用了jquery,所以引入的是jquery库第二、引入界面样式,由于几节界面案例样式太难看,所以这次案例美化了一下界面。
08bf946e82aaa5d21c5fe1a71c03a7bf
第三、6c04bd5ca3fcae76e30b72ad730ca86d36cc49f0c466276486e50c850b7e4956之间的html代码
<center><h3>欢迎来到微信jsapi测试界面-v型知识库</h3></center>
<p class="lbox_close wxapi_form">
<h3 id="menu-shopping">微信小店接口</h3>
<span class="desc">跳转微信商品页接口</span>
<button class="btn btn_primary" id="openproductspecificview">openproductspecificview</button>
</p>
第四、<script></script>之间初始化微信jsapi库添加接口函数
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appid: '${appid}', // 必填,公众号的唯一标识
timestamp: '${ timestamp}' , // 必填,生成签名的时间戳
noncestr: '${ noncestr}', // 必填,生成签名的随机串
signature: '${ signature}',// 必填,签名,见附录1
jsapilist: ['checkjsapi',
'chooseimage',
'previewimage',
'uploadimage',
'downloadimage',
'getnetworktype',//网络状态接口
'openlocation',//使用微信内置地图查看地理位置接口
'getlocation', //获取地理位置接口
'hideoptionmenu',//界面操作接口1
'showoptionmenu',//界面操作接口2
'closewindow' , ////界面操作接口3
'hidemenuitems',////界面操作接口4
'showmenuitems',////界面操作接口5
'hideallnonbasemenuitem',////界面操作接口6
'showallnonbasemenuitem',////界面操作接口7
'scanqrcode',// 微信扫一扫接口
'openproductspecificview'//微信小店
] // 必填,需要使用的js接口列表,所有js接口列表见附录2
});
jsapilist数组中,最后一项就是我们调用微信小店接口的函数,此函数必须在jsapi库中初始化,否则微信小店跳转微信商品页功能无法调起。
第六、完整的jsp页面代码,读者可直接复制运行
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<%
string path = request.getcontextpath();
string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";
%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<base href="<%=basepath%>">
<!-- www.vxzsk.com原创 -->
<title>微信jsapi测试-v型知识库</title>
<meta name="viewport" content="width=320.1,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
<link rel="stylesheet" href="http://203.195.235.76/jssdk/css/style.css"/>
<script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"> </script>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
<style type="text/css">
.desc{
color: red;
}
</style>
</head>
<body>
<center><h3>欢迎来到微信jsapi测试界面-v型知识库</h3></center>
<p class="lbox_close wxapi_form">
<h3 id="menu-shopping">微信小店接口</h3>
<span class="desc">跳转微信商品页接口</span>
<button class="btn btn_primary" id="openproductspecificview">openproductspecificview</button>
</p>
<p style="display: none;">
<h3 id="menu-scan">微信扫一扫</h3>
<span class="desc">调起微信扫一扫接口</span>
<button class="btn btn_primary" id="scanqrcode0">scanqrcode(微信处理结果)</button>
<button class="btn btn_primary" id="scanqrcode1">scanqrcode(直接返回结果)</button>
<h3 id="menu-webview">界面操作接口</h3><br>
<span class="desc" >隐藏右上角菜单接口</span><br>
<button class="btn btn_primary" id="hideoptionmenu">hideoptionmenu</button><br>
<span class="desc">显示右上角菜单接口</span><br>
<button class="btn btn_primary" id="showoptionmenu">showoptionmenu</button><br>
<span class="desc">关闭当前网页窗口接口</span><br>
<button class="btn btn_primary" id="closewindow">closewindow</button><br>
<span class="desc">批量隐藏功能按钮接口</span><br>
<button class="btn btn_primary" id="hidemenuitems">hidemenuitems</button><br>
<span class="desc">批量显示功能按钮接口</span><br>
<button class="btn btn_primary" id="showmenuitems">showmenuitems</button><br>
<span class="desc">隐藏所有非基础按钮接口</span><br>
<button class="btn btn_primary" id="hideallnonbasemenuitem">hideallnonbasemenuitem</button><br>
<span class="desc">显示所有功能按钮接口</span><br>
<button class="btn btn_primary" id="showallnonbasemenuitem">showallnonbasemenuitem</button><br>
<p>基础接口之判断当前客户端是否支持指定的js接口</p>
<input type="button" value="checkjsapi" id="checkjsapi"><br>
<span class="desc" style="color: red">地理位置接口-使用微信内置地图查看位置接口</span><br>
<button class="btn btn_primary" id="openlocation">openlocation</button><br>
<span class="desc" style="color: red">地理位置接口-获取地理位置接口</span><br>
<button class="btn btn_primary" id="getlocation">getlocation</button><br>
<span class="desc" style="color: red">获取网络状态接口</span><br>
<button class="btn btn_primary" id="getnetworktype">getnetworktype</button><br>
<h3 id="menu-image">图像接口</h3>
<span class="desc">拍照或从手机相册中选图接口</span><br>
<button class="btn btn_primary" id="chooseimage">chooseimage</button><br>
<span class="desc">预览图片接口</span><br>
<button class="btn btn_primary" id="previewimage">previewimage</button><br>
<span class="desc">上传图片接口</span><br>
<button class="btn btn_primary" id="uploadimage">uploadimage</button><br>
<span class="desc">下载图片接口</span><br>
<button class="btn btn_primary" id="downloadimage">downloadimage</button><br>
<br>
显示图片<img alt="" src="" id="faceimg">
</p>
<script type="text/javascript">
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appid: '${appid}', // 必填,公众号的唯一标识
timestamp: '${ timestamp}' , // 必填,生成签名的时间戳
noncestr: '${ noncestr}', // 必填,生成签名的随机串
signature: '${ signature}',// 必填,签名,见附录1
jsapilist: ['checkjsapi',
'chooseimage',
'previewimage',
'uploadimage',
'downloadimage',
'getnetworktype',//网络状态接口
'openlocation',//使用微信内置地图查看地理位置接口
'getlocation', //获取地理位置接口
'hideoptionmenu',//界面操作接口1
'showoptionmenu',//界面操作接口2
'closewindow' , ////界面操作接口3
'hidemenuitems',////界面操作接口4
'showmenuitems',////界面操作接口5
'hideallnonbasemenuitem',////界面操作接口6
'showallnonbasemenuitem',////界面操作接口7
'scanqrcode',// 微信扫一扫接口
'openproductspecificview'//微信小店
] // 必填,需要使用的js接口列表,所有js接口列表见附录2
});
wx.ready(function(){
// 5 图片接口
// 5.1 拍照、本地选图
var images = {
localid: [],
serverid: []
};
document.queryselector('#chooseimage').onclick = function () {
wx.chooseimage({
success: function (res) {
images.localid = res.localids;
alert('已选择 ' + res.localids.length + ' 张图片');
$("#faceimg").attr("src", res.localids[0]);//显示图片到页面上
}
});
};
// 5.2 图片预览
document.queryselector('#previewimage').onclick = function () {
wx.previewimage({
current: 'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',
urls: [
'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',
'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg',
'http://www.vxzsk.com/upload//bf04c9b5-5699-421d-900e-3b68bbe58a8920160816.jpg'
]
});
};
// 5.3 上传图片
document.queryselector('#uploadimage').onclick = function () {
if (images.localid.length == 0) {
alert('请先使用 chooseimage 接口选择图片');
return;
}
var i = 0, length = images.localid.length;
images.serverid = [];
function upload() {
wx.uploadimage({
localid: images.localid[i],
success: function (res) {
i++;
//alert('已上传:' + i + '/' + length);
images.serverid.push(res.serverid);
if (i < length) {
upload();
}
},
fail: function (res) {
alert(json.stringify(res));
}
});
}
upload();
};
// 5.4 下载图片
document.queryselector('#downloadimage').onclick = function () {
if (images.serverid.length === 0) {
alert('请先使用 uploadimage 上传图片');
return;
}
var i = 0, length = images.serverid.length;
images.localid = [];
function download() {
wx.downloadimage({
serverid: images.serverid[i],
success: function (res) {
i++;
alert('已下载:' + i + '/' + length);
images.localid.push(res.localid);
if (i < length) {
download();
}
}
});
}
download();
};
// 6 设备信息接口
// 6.1 获取当前网络状态
document.queryselector('#getnetworktype').onclick = function () {
wx.getnetworktype({
success: function (res) {
alert(res.networktype);
},
fail: function (res) {
alert(json.stringify(res));
}
});
};
//网络接口结束
// 7 地理位置接口 开始
// 7.1 查看地理位置
document.queryselector('#openlocation').onclick = function () {
wx.openlocation({
latitude: 23.099994,
longitude: 113.324520,
name: 'tit 创意园',
address: '广州市海珠区新港中路 397 号',
scale: 14,
infourl: 'http://weixin.qq.com'
});
};
// 7.2 获取当前地理位置
document.queryselector('#getlocation').onclick = function () {
wx.getlocation({
success: function (res) {
alert(json.stringify(res));
},
cancel: function (res) {
alert('用户拒绝授权获取地理位置');
}
});
};
// 7 地理位置接口 结束
// 8 界面操作接口 开始-----------
// 8.1 隐藏右上角菜单
document.queryselector('#hideoptionmenu').onclick = function () {
wx.hideoptionmenu();
};
// 8.2 显示右上角菜单
document.queryselector('#showoptionmenu').onclick = function () {
wx.showoptionmenu();
};
// 8.3 批量隐藏菜单项
document.queryselector('#hidemenuitems').onclick = function () {
wx.hidemenuitems({
menulist: [
'menuitem:readmode', // 阅读模式
'menuitem:share:timeline', // 分享到朋友圈
'menuitem:copyurl' // 复制链接
],
success: function (res) {
alert('已隐藏“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
},
fail: function (res) {
alert(json.stringify(res));
}
});
};
// 8.4 批量显示菜单项
document.queryselector('#showmenuitems').onclick = function () {
wx.showmenuitems({
menulist: [
'menuitem:readmode', // 阅读模式
'menuitem:share:timeline', // 分享到朋友圈
'menuitem:copyurl' // 复制链接
],
success: function (res) {
alert('已显示“阅读模式”,“分享到朋友圈”,“复制链接”等按钮');
},
fail: function (res) {
alert(json.stringify(res));
}
});
};
// 8.5 隐藏所有非基本菜单项
document.queryselector('#hideallnonbasemenuitem').onclick = function () {
wx.hideallnonbasemenuitem({
success: function () {
alert('已隐藏所有非基本菜单项');
}
});
};
// 8.6 显示所有被隐藏的非基本菜单项
document.queryselector('#showallnonbasemenuitem').onclick = function () {
wx.showallnonbasemenuitem({
success: function () {
alert('已显示所有非基本菜单项');
}
});
};
// 8.7 关闭当前窗口
document.queryselector('#closewindow').onclick = function () {
wx.closewindow();
};
// 8 界面操作接口 结束------------------------------------------
// 9 微信原生接口 开始---------------------
// 9.1.1 扫描二维码并返回结果
document.queryselector('#scanqrcode0').onclick = function () {
wx.scanqrcode();
};
// 9.1.2 扫描二维码并返回结果
document.queryselector('#scanqrcode1').onclick = function () {
wx.scanqrcode({
needresult: 1,
desc: 'scanqrcode desc',
success: function (res) {
alert(json.stringify(res));
}
});
};
// 9 微信原生接口 结束---------------------
// 11.3 跳转微信商品页 开始--------------
document.queryselector('#openproductspecificview').onclick = function () {
wx.openproductspecificview({
productid: 'pdf3iy_m2m7eq5ekkkwd95kaxfnw',
extinfo: '123'
});
};
// 11.3 跳转微信商品页 结束--------------
});
//初始化jsapi接口 状态
wx.error(function (res) {
alert("调用微信jsapi返回的状态:"+res.errmsg);
});
</script>
</body>
</html>
上述jsp代码中有四个参数,这四个参数是成功调用微信jsapi的凭证,分别为appid(必填,公众号的唯一标识),timestamp(必填,生成签名的时间戳),
noncestr(必填,生成签名的随机串) ,signature(必填,签名),关于如何生成这四个参数,如果不知道的读者,请查看本页面左上角的菜单,里面有详细介绍,在这里不在累述。
以上就是微信开发小店跳转微信商品页接口的方法的详细内容。