引言
一、准备工作
1.1 注册微信开放平台
- 访问微信开放平台,注册账号。
- 创建一个新的移动应用,填写应用信息,包括应用名称、描述、包名和签名等。
- 缴纳300元/年的费用,完成应用创建。
1.2 配置JS接口安全域名
- 登录微信公众平台,进入“公众号设置” -> “功能设置”。
- 在“JS接口安全域名”中填写你的应用域名。
二、引入微信JS-SDK
2.1 引入JS文件
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
如果你使用的是HTTPS协议,请确保引入HTTPS版本的JS文件:
<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
2.2 配置微信JS-SDK
2.2.1 获取access_token
在服务端,使用以下代码获取access_token
:
const axios = require('axios');
const getAppAccessToken = async () => {
const appId = '你的AppID';
const appSecret = '你的AppSecret';
const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${appSecret}`;
try {
const response = await axios.get(url);
return response.data.access_token;
} catch (error) {
console.error('获取access_token失败', error);
}
};
2.2.2 获取jsapi_ticket
使用获取到的access_token
,进一步获取jsapi_ticket
:
const getJsapiTicket = async (accessToken) => {
const url = `https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${accessToken}&type=jsapi`;
try {
const response = await axios.get(url);
return response.data.ticket;
} catch (error) {
console.error('获取jsapi_ticket失败', error);
}
};
2.2.3 配置微信JS-SDK
在React组件中,使用获取到的jsapi_ticket
进行配置:
import React, { useEffect } from 'react';
import axios from 'axios';
const WeChatShare = () => {
useEffect(() => {
const initWeChatSDK = async () => {
const accessToken = await getAppAccessToken();
const jsapiTicket = await getJsapiTicket(accessToken);
const url = window.location.href.split('#')[0];
const timestamp = parseInt(new Date().getTime() / 1000);
const nonceStr = Math.random().toString(36).substr(2, 15);
const string = `jsapi_ticket=${jsapiTicket}&noncestr=${nonceStr}×tamp=${timestamp}&url=${url}`;
const signature = sha1(string);
wx.config({
debug: true, // 开启调试模式
appId: '你的AppID',
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature,
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 需要使用的JS接口列表
});
wx.ready(() => {
wx.onMenuShareTimeline({
title: '分享到朋友圈的标题',
link: url,
imgUrl: '分享图片的URL',
success: function () {
console.log('分享到朋友圈成功');
},
cancel: function () {
console.log('取消分享');
}
});
wx.onMenuShareAppMessage({
title: '分享给朋友的标题',
desc: '分享描述',
link: url,
imgUrl: '分享图片的URL',
type: 'link', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
console.log('分享给朋友成功');
},
cancel: function () {
console.log('取消分享');
}
});
});
wx.error((res) => {
console.error('微信配置失败', res);
});
};
initWeChatSDK();
}, []);
return (
<div>
<h1>微信分享示例</h1>
<p>点击右上角分享按钮进行分享</p>
</div>
);
};
export default WeChatShare;
三、注意事项
- 域名配置:确保你的应用域名已经配置在微信公众平台的JS接口安全域名中。
- HTTPS协议:如果使用HTTPS协议,务必引入HTTPS版本的微信JS文件。
- 权限验证:确保服务端正确获取和缓存
access_token
和jsapi_ticket
,并且在前端正确配置微信JS-SDK。 - 调试模式:在开发过程中,可以开启调试模式(
debug: true
),以便查看详细的调试信息。