| 插件名稱 | 微信系統(tǒng) V5.41 |
| 插件作者 | 迅睿官方團隊 |
| 最近更新 | 2025-09-09 09:24:33 |
| 增加自定義通知類別的寫法 優(yōu)化賬號創(chuàng)建機制 |
微信分享,PC能分享出去,移動端分享就是報錯。

把defug打開,顯示


<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<?php \Phpcmf\Service::C()->init_file('weixin');$signPackage=\Phpcmf\Service::L('jssdk','weixin')->GetSignPackage();?>
<?php $imgUrl = $thumb ? dr_get_file($thumb,400,400) : SITE_URL.'logo.png'; ?>
<?php $title = $title; ?>
<script>
wx.config({
// debug: true,
appId: '<?php echo $signPackage["appId"];?>',
timestamp: <?php echo $signPackage["timestamp"];?>,
nonceStr: '<?php echo $signPackage["nonceStr"];?>',
signature: '<?php echo $signPackage["signature"];?>',
jsApiList: ['onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareQZone', 'onMenuShareAppMessage','updateAppMessageShareData','updateTimelineShareData']
});
wx.ready(function () {
// 在這里調(diào)用 API
wx.updateAppMessageShareData({
title: '{$title}', // 分享標題
desc: '{$description}', // 分享描述
link: '{dr_now_url()}', // 分享鏈接
imgUrl: '{$imgUrl}', // 分享圖標
success: function () {
// 設(shè)置成功
}
});
插件版權(quán):官方插件
插件名稱:微信系統(tǒng)
從數(shù)據(jù)上說它是權(quán)限不夠,你去微信公眾號平臺把移動端的域名也添加進去白名單。
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-陳老師 公眾號IP白名單 我們加了IP ,現(xiàn)在還要加英文域名的意思嗎?
對,子域名,主域名都要加白名單
參考文檔:《Jssdk類》
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
我們ip白名單 121.199.20.212也加上去了的
安全域名啥的 JS域名也都加了的
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
加了的哦。這個肯定都加的哈,最基本的JS分享
我們手機端和PC段是用一個域名
https://tc.xdmrz.com/index.php?s=zz&c=show&id=54
同一個域名肯定不會這種情況 了,分享是按域名來的,都一樣了,說明權(quán)限也是一樣了,等一天觀察觀察看看是不是微信那邊的問題
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-陳老師
陳老師 ,網(wǎng)址是https://tc.xdmrz.com/index.php?s=zz&c=show&id=54 這個你可以打開看下。
可以,我分享沒有提示錯誤,手機分享
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-陳老師
我把debug取消了的。分享出去沒有顯示摘要和縮略圖。只有網(wǎng)址
如果debug打開,頁面是報錯的狀態(tài) 就是上圖發(fā)的報錯。
圖片不顯示可能是圖片url是遠程url,需要把圖片url的域名加入白名單
感覺是簽名函數(shù)的問題哈。
https://tc.xdmrz.com/aa.php
直接能輸出 token
/** * 通過URL獲取頁面信息 * @param $url 地址 * @return mixed 返回頁面信息 */ function get_url($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); //設(shè)置訪問的url地址 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不輸出內(nèi)容 $result = curl_exec($ch); curl_close ($ch); return $result; } $file_contents = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=修改ID&secret=自己的秘鑰'; $res =get_url($file_contents); // $res =httpRequest($url,$data); $json_array = json_decode($res,true); $data=$json_array['access_token']; echo $data;上面的APPID 我修改了的。
問題是,PC能分享,移動端不能分享哈。PC端 微信瀏覽器分享是正常的。移動端就是不行,主要是這個問題。
這個問題不太好排查,關(guān)鍵是你域名都一樣,
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-陳老師
是的?,F(xiàn)在的問題就是 我pc分享正常,移動端微信分享不正常。要么你就兩個不正常。所以 我感覺是移動端的簽名是不是哪兒有問題。同一個域名下,移動端分享。
簽名理論上應(yīng)該不會有問題,程序沒變,域名沒變,理論上簽名也就沒變化。你可以嘗試用用微信自帶的demo程序試一試
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-陳老師
會不會是因為我windows服務(wù)器的原因???然后代碼里面有嚴格模式,
現(xiàn)在發(fā)現(xiàn)的問題是,cache/temp/這個文件夾 沒有access_token.php和jsapi_ticket.php這兩個緩存文件的寫入 會不會是這個原因??
<?php \Phpcmf\Service::C()->init_file('weixin');$signPackage=\Phpcmf\Service::L('jssdk','weixin')->GetSignPackage();?>這個寫入出現(xiàn)的JS明面上的分享代碼都正常
wx.config({ // debug: , appId: 'wxacaea66d3f229416', timestamp: 1633571764, nonceStr: 'ZHJ03TjZ5PAM99zE', signature: '9756099bc2f88400674212f90a6e850ec27b2594',提示的是 php提示簽名報錯
可以對比下html模式下的值是否一樣的
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-陳老師
https://tc.xdmrz.com/index.php?s=zz&c=show&id=27
這個網(wǎng)站麻煩陳老師 你微信打開看看,報錯是這些信息,是分享接口沒有獲取到哈,我把debug打開了
老師也判斷不出來原因了 ??
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
手機上會彈出{"errmsg":"config invalid signature"}
這個百度了下 基本上都是說簽名錯誤的問題 ??
理論上簽名也不會有變化
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
找到了問題,官方JSSDK問題
微信JS-SDK 分享朋友圈時報:signature 錯誤
/dayrui/App/Weixin/Libraries/Jssdk.php
103 104
找到下面兩行代碼:
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
然后將true改為false
原因:通過查詢curl用法我們可以看到上面兩行代碼是配置curl是否使用ssl的帶證書(https協(xié)議)訪問,一般我們是沒有安裝證書的(http協(xié)議),所以將true改為false就好!
一般來說 我們都是https的,它還搞個驗證。
簡單點 我感覺就是網(wǎng)站如果是泛域名ssl證書的話 ,二級站點分享都需要把這個改成false
收到,沒有想到前綴問題,一般網(wǎng)站都是https模式,下次提醒一下用戶https
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!