https://github.com/wechat-php/wechat-php-sdk 或微信官方提供的 jssdk.php。ThinkPHP/Library/Vendor/Wechat/JSSDK.php。Application/Common/Conf/config.php
return [
'WECHAT_APPID' => 'wx_your_appid',
'WECHAT_SECRET' => 'your_appsecret',
];
Application/Common/Common/function.php
function getSignPackage() {
vendor('Wechat.JSSDK'); // 載入 JSSDK 類
$jssdk = new \JSSDK(C('WECHAT_APPID'), C('WECHAT_SECRET'));
return $jssdk->GetSignPackage(); // 回傳含 appId、nonceStr、timestamp、signature 等陣列
}
public function index() {
$sign = getSignPackage();
$this->assign('signPackage', $sign);
// 自定義分享資料
$share = [
'title' => '自訂分享標題',
'desc' => '自訂分享描述內容,吸引使用者點擊',
'link' => 'https://yourdomain.com/share/page', // 分享後落地頁
'imgUrl' => 'https://yourdomain.com/images/share.jpg', // 300x300 建議
];
$this->assign('shareData', $share);
$this->display();
}
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>
wx.config({
debug: false,
appId: '{$signPackage.appId}',
timestamp: {$signPackage.timestamp},
nonceStr: '{$signPackage.nonceStr}',
signature: '{$signPackage.signature}',
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'updateAppMessageShareData', // 1.4.0+ 新介面
'updateTimelineShareData'
]
});
wx.ready(function() {
var data = {
title: '{$shareData.title}',
desc: '{$shareData.desc}',
link: '{$shareData.link}',
imgUrl: '{$shareData.imgUrl}',
success: function() { console.log('分享設定成功'); },
cancel: function() { console.log('使用者取消分享'); }
};
// 新版介面(優先)
wx.updateAppMessageShareData(data);
wx.updateTimelineShareData(data);
// 舊版相容
wx.onMenuShareAppMessage(data);
wx.onMenuShareTimeline(data);
});
</script>
| 未自訂 | 自訂後 |
|---|---|
![]() |
![]() |
GetSignPackage() 依賴 access_token 與 jsapi_ticket,需快取 7200 秒,頻繁請求會被限流。imgUrl 建議使用絕對 HTTPS 路徑,相對路徑在某些客戶端會失效。