81,122
社区成员




<%
String sign = ConfigUtil.createShareSign(request);
%>
<script type="text/javascript" >
$(function () {
//通过config接口注入权限验证配置
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
appId: "${appId}", // 必填,公众号的唯一标识
timestamp: "${timestamp}", // 必填,生成签名的时间戳
nonceStr: "${nonceStr}", // 必填,生成签名的随机串
signature: "${signature}",// 必填,签名,见附录1
jsApiList: [
'getLocation',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ'
] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
//通过error接口处理失败验证
wx.error(function (res) {
$.scojs_message(res.errMsg, $.scojs_message.TYPE_ERROR);
});
wx.ready(function(){
wx.getLocation({
type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
var longitude = res.longitude ; // 经度,浮点数,范围为180 ~ -180。
var speed = res.speed; // 速度,以米/每秒计
var accuracy = res.accuracy; // 位置精度
alert(latitude+"---"+longitude);
}
});
});
});
</script>
public static String createShareSign(HttpServletRequest request) throws Exception
{
//根据token获取jsapi
String jsapiUrl = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=ACCESS_TOKEN";
jsapiUrl = jsapiUrl.replace("ACCESS_TOKEN", WeixinUtil.getAccessToken());
//调用jsapi接口获取jsapi_ticket
JSONObject jsonObject = WeixinUtil.httpRequest(jsapiUrl, "GET", null);
System.out.println(jsonObject);
String jsapiTicket = jsonObject.getString("ticket");
String string1="";
String signature="";
String url = request.getRequestURL().toString();
//url = url.contains("?") ? url + "&state" : url + "?state";
String noncestr=getNonceStr();
String timestamp=getTimestamp();
string1 = "jsapi_ticket=" + jsapiTicket +
"&noncestr=" + noncestr +
"×tamp=" + timestamp +
"&url=" + url;
System.out.println(string1);
try
{
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(string1.getBytes("UTF-8"));
signature = byteToHex(crypt.digest());
}
catch (Exception e)
{
e.printStackTrace();
}
request.setAttribute("appId", appId);
request.setAttribute("noncestr", noncestr);
request.setAttribute("timestamp", timestamp);
request.setAttribute("signature", signature);
System.out.println("签名1:"+signature);
return signature;
}