wx.config配置问题 {"errMsg":"config:fail"}

待得春暖花开时丶 2015-12-16 05:02:33
JSP中代码

<%
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;

}


生成的signature 和 开发文档中检测出来的一样,但是,一请求就是报 {"errMsg":"config:fail"} 我的是Apple 手机 ,

后面的获取地理位置 {"errMsg":"getLocation:invalid appid"}

莫名其妙,卡好几天了,唉。。。。。
...全文
7292 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
oxygen007 2019-03-20
引用 4 楼 weixin_44293158 的回复:
你配置的url是否正确?有没有把http去掉呢?

正确 URL:hzwxgzh.s2.natapp.cc

错误 URL:http://hzwxgzh.s2.natapp.cc


到底需要http:// 吗???
回复
xiaoaweichai 2019-01-22
注意 nonceStr noncestr 前后端不一样的。 后端签名要用 noncestr,前端要用nonceStr。 你后端 request.setAttribute("noncestr", noncestr); 前端用${nonceStr} 是拿不到值的。 这是微信的一个坑。 至于url 里 有没有 http, 我没有验证过,微信官网的例子就是带http的
回复
weixin_44293158 2018-12-27
你配置的url是否正确?有没有把http去掉呢? 正确 URL:hzwxgzh.s2.natapp.cc 错误 URL:http://hzwxgzh.s2.natapp.cc
回复
墨小兽 2017-05-22
LZ求解决方法 我发现在同时调起 分享和支付接口时就报错 fail 我是.net
回复
Swen程序员 2017-01-13
微信的js导入了?
回复
dream新世界 2017-01-12
楼主,你是怎么解决的?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-12-16 05:02
社区公告
暂无公告