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 ; |
效果图:
上面4步都设置好之后,首先需要把要分享的页面生成二维码(点击页面生成二维码按钮即可),然后用微信扫一扫二维码进入页面后,点击右上角三个点分享给朋友既可看到自定义的卡片效果;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报