凌峰创科服务平台

网站如何添加微信分享代码?

要在网站中添加微信分享功能,需要通过微信官方提供的JS-SDK实现,主要步骤包括获取访问权限、引入JS文件、调用分享接口等,以下是详细操作流程和注意事项:

网站如何添加微信分享代码?-图1
(图片来源网络,侵删)

准备工作

  1. 注册微信开放平台账号:登录微信开放平台,创建网站应用并获取AppIDAppSecret,需确保网站已完成ICP备案,且域名已添加到开发者平台的“网页授权域名”列表中。
  2. 生成access_token:通过服务器调用微信接口获取access_token(有效期2小时,需缓存避免频繁请求),接口地址为:
    GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
  3. 获取jsapi_ticket:使用access_token进一步获取jsapi_ticket(有效期2小时,同样需缓存),接口地址为:
    GET https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

前端代码实现

  1. 引入微信JS-SDK:在HTML页面中通过CDN引入微信JS-SDK文件:

    <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
  2. 配置签名参数:通过后端生成签名所需的参数,包括:

    • noncestr:随机字符串(长度建议32位)
    • timestamp:当前时间戳(10位)
    • url:当前页面的完整路径(需包含之后的内容)
    • jsapi_ticket:步骤3中获取的票据

    签名算法为:sha1(noncestr + timestamp + url + jsapi_ticket),需在服务器端完成以确保安全性。

  3. 调用分享接口:在页面加载完成后初始化JS-SDK并调用分享接口:

    网站如何添加微信分享代码?-图2
    (图片来源网络,侵删)
    wx.config({
        debug: false, // 开启调试模式
        appId: '你的AppID',
        timestamp: 生成的时间戳,
        nonceStr: '生成的随机字符串',
        signature: '服务器返回的签名',
        jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline'] // 需要调用的JS接口列表
    });
    wx.ready(function() {
        // 分享给朋友
        wx.onMenuShareAppMessage({
            title: '分享标题',
            desc: '分享描述',
            link: 'https://www.yourdomain.com/share-page', // 分享链接
            imgUrl: 'https://www.yourdomain.com/share-logo.png', // 分享图标
            success: function() {
                alert('分享成功');
            },
            cancel: function() {
                alert('分享取消');
            }
        });
        // 分享到朋友圈
        wx.onMenuShareTimeline({
            title: '朋友圈分享标题',
            link: 'https://www.yourdomain.com/share-page',
            imgUrl: 'https://www.yourdomain.com/share-logo.png',
            success: function() {
                alert('分享成功');
            },
            cancel: function() {
                alert('分享取消');
            }
        });
    });

后端签名生成示例(以Node.js为例)

const crypto = require('crypto');
const axios = require('axios');
async function getSignature(url) {
    const accessToken = await getAccessToken();
    const ticket = await getJsapiTicket(accessToken);
    const noncestr = generateNonceStr();
    const timestamp = Math.floor(Date.now() / 1000);
    const string = `jsapi_ticket=${ticket}&noncestr=${noncestr}&timestamp=${timestamp}&url=${url}`;
    return crypto.createHash('sha1').update(string, 'utf8').digest('hex');
}
function generateNonceStr() {
    return Math.random().toString(36).substr(2, 32);
}

常见问题与解决方案

  1. 签名错误:检查url是否与当前页面完全一致(包括后的参数),确保jsapi_ticket未过期。
  2. 分享无响应:确认是否已正确调用wx.ready,且jsApiList中包含所需接口。

相关问答FAQs

Q1: 为什么分享链接在微信内打开显示空白?
A1: 可能是微信缓存问题,尝试在链接后添加随机参数(如?t=时间戳)避免缓存;同时检查页面是否在微信浏览器中正常加载。

Q2: 如何自定义分享图标?
A2: 通过imgUrl参数指定图片链接,建议使用JPG或PNG格式,尺寸建议为300x300像素,且图片需可公开访问(避免防盗链)。

通过以上步骤,即可实现网站在微信内的分享功能,需要注意的是,微信JS-SDK对域名有严格限制,确保所有配置的域名与实际访问的域名完全一致,包括协议(http/https)和端口号。

网站如何添加微信分享代码?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇