实现微信自定义分享链接,通常需要通过微信公众平台的 JS-SDK 接口完成。以下是具体实现步骤和注意事项:
一、准备工作
认证公众号
确保你的微信公众号已通过微信认证(服务号或订阅号均可,但未认证的公众号无法使用 JS-SDK)。
域名备案
分享链接的域名必须通过 ICP备案,并在微信公众平台的“公众号设置”中配置为 JS接口安全域名。
获取开发者凭证
在微信公众平台后台获取 AppID 和 AppSecret,用于后续接口调用。
二、后端开发
1. 获取 Access Token
调用微信接口获取 access_token:
复制代码
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET |
access_token 有效期为 2 小时,需缓存以减少请求次数。
2. 获取 JSAPI Ticket
使用 access_token 调用接口获取 jsapi_ticket:
复制代码
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi |
jsapi_ticket 有效期为 7200 秒,同样需缓存。
3. 生成签名
按以下规则生成签名:拼接字符串:
复制代码
jsapi_ticket=YOUR_JSAPI_TICKET&noncestr=RANDOM_STRING×tamp=CURRENT_TIMESTAMP&url=CURRENT_PAGE_URL |
对字符串进行 SHA1 加密,得到签名 signature。
参数说明:
noncestr:随机字符串,需与前端传递的一致。
timestamp:当前时间戳(秒)。
url:当前页面的完整 URL(不包含 # 及其后面的部分)。
三、前端开发
1. 引入微信 JS-SDK
在 HTML 页面中引入微信 JS 文件:
html复制代码
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> |
2. 配置 JS-SDK
通过后端接口获取 appId、timestamp、nonceStr 和 signature,然后调用 wx.config 进行配置:
javascript复制代码
wx.config({ | |
debug: false, // 开启调试模式 | |
appId: 'YOUR_APPID', | |
timestamp: 'CURRENT_TIMESTAMP', | |
nonceStr: 'RANDOM_STRING', | |
signature: 'GENERATED_SIGNATURE', | |
jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'] // 必填,需使用的接口 | |
}); |
3. 设置分享内容
在 wx.ready 回调中设置分享内容:
javascript复制代码
wx.ready(function () { | |
// 分享给朋友 | |
wx.updateAppMessageShareData({ | |
title: '分享标题', // 分享标题 | |
desc: '分享描述', // 分享描述 | |
link: 'https://yourdomain.com/share-page', // 分享链接 | |
imgUrl: 'https://yourdomain.com/share-image.jpg', // 分享图标 | |
success: function () { | |
console.log('分享给朋友配置成功'); | |
} | |
}); | |
// 分享到朋友圈 | |
wx.updateTimelineShareData({ | |
title: '分享标题', // 分享标题 | |
link: 'https://yourdomain.com/share-page', // 分享链接 | |
imgUrl: 'https://yourdomain.com/share-image.jpg', // 分享图标 | |
success: function () { | |
console.log('分享到朋友圈配置成功'); | |
} | |
}); | |
}); |
四、注意事项
URL 必须与 JS接口安全域名一致
分享页面的 URL 必须与微信公众平台配置的 JS接口安全域名 完全匹配,否则签名会失败。
签名 URL 必须为当前页面 URL
生成签名时,url 参数必须是用户当前访问的页面 URL(不包含 # 及其后面的部分)。
缓存 Access Token 和 JSAPI Ticket
为减少接口调用次数,建议将 access_token 和 jsapi_ticket 缓存到服务器,避免频繁请求。
调试工具
使用微信开发者工具或浏览器控制台调试,确保 wx.config 配置成功。
HTTPS 协议
分享链接必须使用 HTTPS 协议,否则无法正常分享。
五、常见问题
签名失败
检查 url 是否与当前页面 URL 完全一致。
确保 jsapi_ticket 和 access_token 有效。
分享内容不生效
确保 wx.ready 回调中正确配置了分享内容。
检查是否调用了正确的分享接口(如 updateAppMessageShareData 和 updateTimelineShareData)。
跨域问题
确保分享页面的域名已配置为 JS接口安全域名。
通过以上步骤,即可实现微信自定义分享链接功能,用户可以分享带有自定义标题、描述和图片的链接到朋友圈或好友。