这个问题已经纠结很多天了,网上各种方式都试了,微信开发者文档提供的几点检查步骤也都一一对应了, 但是就是没有解决问题,求大神指点!
后台获取签名:
public static Map<String, String> sign(String jsapi_ticket, String url) {
Map<String, String> ret = new HashMap<String, String>();
String nonce_str = create_nonce_str();
String timestamp = create_timestamp();
String string1;
String signature = "";
//注意这里参数名必须全部小写,且必须有序
string1 = "jsapi_ticket=" + jsapi_ticket +
"&noncestr=" + nonce_str +
"×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()).toLowerCase();
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
ret.put("url", url);
ret.put("jsapi_ticket", jsapi_ticket);
ret.put("nonceStr", nonce_str);
ret.put("timestamp", timestamp);
ret.put("signature", signature);
return ret;
}
前台js$(function(){
initWeixinInfo();
});
function initWeixinInfo() {
var url = "http://localhost:8081/yblapp/mpbweb/html/about/share_register.html?code=98563579";
$.ajax({
type : 'POST',
dataType : 'json',
data : {url:url},
url :SERVICES_URL+'/wxuser/initWeixinInfo',
success : function(data) {
// 微信配置
wx.config({
debug: true,
appId: "wxd9c3b7609f1d50be",
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline'] // 功能列表,我们要使用JS-SDK的什么功能
});
var imgUrl = "http://www.pptfans.cn/wp-content/themes/pptfans3.0/images/share-logo.jpg";
var lineLink = data.url;
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在 页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready 函数中。
// 2. 分享接口
wx.ready(function(){
// 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口
document.querySelector('#onMenuShareAppMessage').onclick = function () {
wx.onMenuShareAppMessage({
title: '互联网之子 方倍工作室',
desc: '在长大的过程中,我才慢慢发现,我身边的所有事,别人跟我说的所有事,那些所谓本来如此,注定如此的事,它们其实没有非得如此,事情是可以改变的。更重要的是,有些事既然错了,那就该做出改变。',
link: lineLink,
imgUrl: imgUrl,
trigger: function (res) {
alert('用户点击发送给朋友');
},
success: function (res) {
alert('已分享');
},
cancel: function (res) {
alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
alert('已注册获取“发送给朋友”状态事件');
};
// 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
document.querySelector('#onMenuShareTimeline').onclick = function () {
wx.onMenuShareTimeline({
title: '分享标题', // 分享标题
link: lineLink,
imgUrl: imgUrl, // 分享图标
type: 'link',// 分享类型,music、video或link,不填默认为link
trigger: function (res) {
alert('用户点击发送给朋友圈');
},
success: function (res) {
alert('已分享');
},
cancel: function (res) {
alert('已取消');
},
fail: function (res) {
alert(JSON.stringify(res));
}
});
alert('已注册获取“发送朋友圈”状态事件');
};
}
});
}
报错的具体信息是什么呢? 另外检查下你绑定的域名是否已备案, 且通过腾讯的检测。