java - 微信JSSDK,config执行的时候报错

 顾旭东-夏天 发布于 2022-11-05 13:22

这个问题已经纠结很多天了,网上各种方式都试了,微信开发者文档提供的几点检查步骤也都一一对应了, 但是就是没有解决问题,求大神指点!

后台获取签名:
    

public static Map sign(String jsapi_ticket, String url) {
        Map ret = new HashMap();
        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('已注册获取“发送朋友圈”状态事件');
                  };
        }
    });
}
1 个回答
  • 报错的具体信息是什么呢? 另外检查下你绑定的域名是否已备案, 且通过腾讯的检测。

    2022-11-10 00:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有