這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助

測驗環境好好地功能,上了生產,莫名其妙報錯,開始以為是沒有設定Js安全介面域名,結果讓相應人員一查,已經設定了相應的域名,再看下公眾號內的介面權限部分,相關js權限也都是已授權,沒辦法,只能按照微信檔案上的常見錯誤及解決方法,設定debug: true,然后測驗出現如下錯誤提示:

網上按realAuthUrl搜了下,居然沒搜到任何這方面的內容,奇了怪了,然后再按invalid signature搜索,這次搜到的內容就比較多了,但所有的內容都在描述一件事情:這東西只能猜!!
既然只能猜,而且后端有沒有對簽名這個程序做日志,生產也不能反復發布,那就猜吧,因為提示內容里有Url,js的簽名也需要Url,所以是不是這個地址不對呢?讓用戶將微信網頁的地址共享出來,結果發現地址沒錯,的確是正確的地址,那是不是后端的簽名的地址與前端的地址不一致呢?因為專案是MVC專案,后端用于獲取請求地址的代碼如下:
public static string GetJsSdkSignatureUrl(string url = null)
{
if (string.IsNullOrWhiteSpace(url))
{
url = HttpContext.Current.Request.Url.ToString();
}
var idx = url.IndexOf('#');
if (idx > 0)
{
return url.Substring(0, idx);
}
return url;
}
代碼在默認呼叫時,都是沒有傳遞引數進來,所以懷疑是不是請求地址發生了變化,想了下生產環境有可能是通過路由進行了轉發,所以HttpContext.Current.Request.Url有可能與前端的地址不一致,于是在呼叫的代碼上,額外再封裝了一次,通過域名和路徑來獲取請求地址,域名從組態檔讀取(當前應用是.Net Framework,不是.Net Core)
private string GetRequestUrl(string path)
{
string url = null;
var host = ConfigurationManager.AppSettings["Host.Local"];
if (!string.IsNullOrWhiteSpace(path) && !string.IsNullOrWhiteSpace(host))
{
url = $"{host}{path}";
}
return JSSDKLocalHelper.GetJsSdkSignatureUrl(url);
}
測驗環境測驗了下沒問題,然后又故意將測驗環境的域名配置寫成了錯誤的配置,測驗環境也報了和生產環境類似的錯誤,于是將代碼發到生產,果然該生產頁面可以正確訪問了,但過了一會,又有新的問題過來說另外一個頁面也不對!查了下代碼,因為GetJsSdkSignatureUrl是基礎的公用方法,參考有好多個,不可能每個頁面都自己組織地址,于是調整了下方法代碼,當未傳入請求地址且配置了本地域名時,用本地域名替換請求地址的域名
public static string GetJsSdkSignatureUrl(string url = null)
{
if (string.IsNullOrWhiteSpace(url))
{
var host = ConfigurationManager.AppSettings["Host.Local"];
if (!string.IsNullOrWhiteSpace(host))
{
url = $"{host}{HttpContext.Current.Request.Url.PathAndQuery}";
}
else
{
url = HttpContext.Current.Request.Url.ToString();
}
}
var idx = url.IndexOf('#');
if (idx > 0)
{
return url.Substring(0, idx);
}
return url;
}
測驗無誤后,再發布到生產,問題順利解決,再想想如果是前后端分離的專案,那頁面請求地址應該是只能由前端傳遞到后端,這樣估計也就沒這篇博客的問題了,
微信公眾號-分享報錯invalid url domain的解決方法
微信公眾號開發-自定義分享報錯顯示“invalid url domain”
前端微信公眾號中的wx.config中開啟除錯模式,前端彈出資訊“errMsg:config:invalid url domain”,出現這種錯誤的原因可能是:
1、前端域名沒有授權
部署微信前端頁面的服務器的域名要在在公眾平臺授權,

下載一個txt檔案進行驗證,修改JS介面安全域名后,再次呼叫公眾號的分享,即可彈出config:ok的訊息
目前還有一個疑惑:使用H5寫的微信公眾號,重寫了分享功能,頁面上定義了分享按鈕,點擊分享按鈕,只會彈出config:ok訊息,并未彈出到分享的頁面;但使用公眾號右上角的三個小點進行分享,已重寫了分享的方法,

本文轉載于:
https://blog.csdn.net/weixin_44934104/article/details/122457423
https://blog.csdn.net/starfd/article/details/122985269
如果對您有所幫助,歡迎您點個關注,我會定時更新技術檔案,大家一起討論學習,一起進步,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/541696.html
標籤:其他
