php微信自定义分享链接,标题,描述,缩略图配置步骤

微信公众号开发,自定义分享链接,标题,描述,缩略图接口
 
1、文件目录结构
 

 

2、后台代码:

wxshare.php  注意:使用此代码,只需要把wxshare.php文件下面的appid和secret换成自己的即可,appid对应的微信公众号必须有对应接口权限才能设置成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
header("Content-Type:text/html;charset=utf8");
header("Access-Control-Allow-Origin: *"); //解决跨域
header('Access-Control-Allow-Methods:POST'); // 响应类型
header('Access-Control-Allow-Headers:*'); // 响应头设置
 
$data = array();
$data['time'] = time();
$data['appid'] = 'XXX'; //appid
$data['secret'] = 'XXX'; //secret
$res = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$data['appid']."&secret=".$data['secret']); //获得access_token
$ress = json_decode($res,True);
$access_token = $ress['access_token'];// 取出 至于存储代码就不列举了
$js = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$access_token."&type=jsapi");
$jss = json_decode($js,True);
$jsapi_ticket = $jss['ticket'];// 取出JS凭证, 至于存储代码就不列举了
 
//开始签名算法了
$sign = array();
$sign['noncestr'] = 'W99WZY08z0wzcjjkl'; //随意字符串 一会要传到JS里去.要求一致
$sign['jsapi_ticket'] = $jsapi_ticket;
$sign['timestamp'] = $data['time'];
$sign['url'] = $_POST['url'];//获取URL
ksort($sign);
$signature = '';
foreach($sign as $k => $v){
    $signature .= $k.'='.$v.'&';
}
$signature = substr($signature, 0, strlen($signature)-1);
$data['signature'] = sha1($signature);// 必填,签名,见附录1
 
$data['nonceStr'] = $sign['noncestr'];
$response = array('code' => 0, 'message' => '请求成功', 'data' => $data);
echo json_encode($response);

 

3、前端代码:

share.html   使用此代码,需要把自定义的标题、描述、连接(链接域名需要在微信公众号后台添加安全域名才会生效,否则会失败)、缩略图设置自己的即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>分享页面标题XXX</title>
    <script src='https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js'></script>
    <script src="http://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
</head>
<body>
    <button onclick="create_code()">生成二维码</button>
    <img id="code" src="" alt="" style="display: none;">
    <script type="text/javascript">
      $(document).ready(function(){
        $.ajax({
          type:"POST",
          url:'wxshare.php',
          data: {url: window.location.href},
          success:function(result){
            var result = JSON.parse(result);
            // console.log(result);
            // 检测是否拥有权限
            // wx.checkJsApi({
            //  jsApiList: ['updateAppMessageShareData'], // 需要检测的 JS 接口列表,所有 JS 接口列表见附录2,
            //  success: function(res) {
            //      alert(JSON.stringify(res));
            //  }
            // });
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: result.data.appid, // 必填,公众号的唯一标识
                timestamp: result.data.time, // 必填,生成签名的时间戳
                nonceStr: result.data.nonceStr, // 必填,生成签名的随机串
                signature: result.data.signature,// 必填,签名,见附录1
                jsApiList: ['updateAppMessageShareData'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
            });
            wx.ready(function(){
                wx.updateAppMessageShareData({
                    title: '分享页面标题XXX', // 分享标题
                    desc: '分享页面描述XXX', // 分享描述
                    link: 'http://www.域名.com/xs/index.html', // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致
                    imgUrl: 'http://www.域名.com/xs/static/logo.png', // 分享图标
                    // success: function () {
                    //  alert('分享成功');
                    // },
                    // cancel: function () {
                    //  alert('取消分享了');
                    // }
                });
            });
          }
        });
      });
      // 生成二维码
      function create_code(){
        $.ajax({
          type:"POST",
          url:'create_code.php',
          data: {url: window.location.href},
          success:function(result){
            $('#code').attr('src',result);
            $('#code').show();
          }
        });
      }
    </script>
    <script>
    </script>
</body>
</html>
 
4、生成二维码:
create_code.php   使用此代码,需要把域名更换为自己的即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
header("Content-Type:text/html;charset=utf8");
header("Access-Control-Allow-Origin: *"); //解决跨域
header('Access-Control-Allow-Methods:POST'); // 响应类型
header('Access-Control-Allow-Headers:*'); // 响应头设置
 
include 'phpqrcode/phpqrcode.php'
$value = $_POST['url']; //二维码内容
$errorCorrectionLevel = 'L';//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
$filename = 'phpqrcode/qrcodeimgs/'.time().'.png';
QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
echo 'http://www.域名.com/xs/'.$filename;

phpqrcode下载

效果图:

 

 上面4步都设置好之后,首先需要把要分享的页面生成二维码(点击页面生成二维码按钮即可),然后用微信扫一扫二维码进入页面后,点击右上角三个点分享给朋友既可看到自定义的卡片效果;

posted @   小风筝666  阅读(1451)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示