ios 微信分享显示 config:fail,安卓是 config:ok,开发者工具也是 config:ok

2019-07-07 21:48:55 +08:00
 pytth

ios 微信分享显示 config:fail,安卓是 config:ok,开发者工具也是 config:ok,应该是 ios 系统原因,有微信分享开发经验的人吗,有没有遇到过这个问题,晚上尝试了很多方法都不行。

尝试了下面的方法: 1、url 为自动获取(微信官方 demo 要求) 2、link 的 url 使用 encodeURIComponent()对 URI 进行编码 3、img 图片大小小于 32kb 4、通过 location.protocol,location.host 来拼接 url

都是没办法,特此请教各位有经验的人。

我已经把很多东西写死了,都不行。(写死的那些都是在有效期内测试)

<?php
// 获取微信 access_token
$access_token = "填写 access_token";

// 获取 jsapi_ticket
$jsapiTicket = "填写 ticket";

// 默认生成 16 位随机数
$md5str = MD5(time());
$str = substr($str, 0,16);

// 获取要排序的 signature
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

$timestamp = time();
$nonceStr = $str;

// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string1 = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
$signature = sha1($string1);

//URL 转码
// $shareurl = encodeURIComponent($url);
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>微信自定义分享</title>
</head>
<body>
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
  wx.config({
    debug: true,
    appId: 'wx92538fd0586e8250',
    timestamp: <?php echo $timestamp;?>,
    nonceStr: '<?php echo $str;?>',
    signature: '<?php echo $signature;?>',
    jsApiList: [
      // 所有要调用的 API 都要加到这个列表中
      'onMenuShareTimeline',
      'chooseImage'
    ]
  });
  wx.ready(function () {
      wx.onMenuShareTimeline({
        title: 'JSSDK 微信分享测试',
        link: location.protocol+'//'+location.host+'/'+'share/',
        imgUrl: location.protocol+'//'+location.host+'/'+'share/'+'1520566472.png',
        success: function (res) {
          alert('已分享');
        },
        cancel: function (res) {
          alert('已取消');
        },
        fail: function (res) {
          alert(JSON.stringify(res));
        }
      })
  });
</script>
</html>

3208 次点击
所在节点    程序员
13 条回复
pytth
2019-07-07 21:51:00 +08:00
imydou
2019-07-07 22:06:57 +08:00
有没有试过升级下引入的 jweixn
imydou
2019-07-07 22:09:01 +08:00
https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&announce_id=11526372695t90Dn&version=&lang=zh_CN&token=

请注意,原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。请尽快迁移使用客户端 6.7.2 及 JSSDK 1.4.0 以上版本支持的 wx.updateAppMessageShareData、updateTimelineShareData 接口。

不知道和这个有没有关系
qqjt
2019-07-07 22:11:25 +08:00
你应该在微信开发者工具里看,有调试信息;我看报 Error: invalid signature,还有 nonceStr 是空的,不是这么搞的
gam2046
2019-07-07 22:35:50 +08:00
不做微信开发,但是听说有这么个事情,你看看和你有关系么

https://open.weixin.qq.com/cgi-bin/announce?spm=a311a.9588098.0.0&action=getannouncement&key=11534138374cE6li
sufaith
2019-07-07 22:40:53 +08:00
IOS 微信浏览器在验证微信 jssdk 签名时,需要的 URL 是第一次进入该应用时的 URL, 并不是当前页面的 URL
ODD10
2019-07-07 22:59:52 +08:00
@sufaith #6
PHP 也会吗?是单页面 history 模式才会吧
ODD10
2019-07-07 23:03:47 +08:00
建议楼主使用校验工具排查问题
pytth
2019-07-08 00:24:49 +08:00
@ODD10 检验工具没有任何报错,没法找到原因
pytth
2019-07-08 00:27:43 +08:00
@imydou 可能是,我得尝试下新的策略
pytth
2019-07-08 00:28:45 +08:00
@gam2046 这只是分享回调取消了,我这个是连分享都没成功接入。
annielong
2019-07-08 09:14:59 +08:00
会不会多拼接了‘/’,多的话也会报错
tutou
2019-07-08 15:42:53 +08:00
上周五刚调试玩上线,坑真的多。不过你的问题没遇到,建议你看看开发者工具有没有注册成功

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/580810

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX