微信文章默認分享格式是標題,摘要,和一個圖片。公眾號文章分享是類似這個格式。

但非公眾號網頁,比如自己的H5網頁,則要寫一定的代碼才能實現
<script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js" type="text/javascript"></script>
<script type="text/javascript">
wx.config({
debug: true, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。
appId: '<%=appid%>', // 必填,公眾號的唯一標識
timestamp: '<%=timestamp%>', // 必填,生成簽名的時間戳
nonceStr: '<%=nonceStr%>', // 必填,生成簽名的隨機串
signature: '<%=signature%>', // 必填,簽名,見附錄1
jsApiList: ['checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
});
var url = document.URL;
if (url.indexOf("&openid") != -1)
url = url.substring(0, url.indexOf("&openid"));
var title = "我正在參加¥19.9看電影的活動,請你送我一條錦鯉!";
var desc = "幫 <%=owner_nickname %> 助力,抽免費電影票!";
var imgUrl = "http://xxx.cn/wx/images/fish.jpg";
wx.ready(function () {
wx.onMenuShareTimeline({
title: title, // 分享標題
desc: desc,
imgUrl: imgUrl,
link: url, // 分享鏈接
success: function () {
// 用戶確認分享后執行的回調函數
},
cancel: function () {
// 用戶取消分享后執行的回調函數
}
});
wx.onMenuShareAppMessage({
title: title, // 分享標題
desc: desc,
imgUrl: imgUrl,
link: url, // 分享鏈接
success: function () {
// 用戶確認分享后執行的回調函數
},
cancel: function () {
// 用戶取消分享后執行的回調函數
}
});
});
</script>
調試時,要把wx.config({ debug: true}} 打開,不然你找不到錯誤。
后台代碼生成timestamp,nonceStr,signature:
public long CreatenTimestamp() { return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; } public string CreatenNonce_str() { string[] strs = new string[] { "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z" }; Random r = new Random(); var sb = new StringBuilder(); var length = strs.Length; for (int i = 0; i < 15; i++) { sb.Append(strs[r.Next(length - 1)]); } return sb.ToString(); } public string GetSignature(string jsapi_ticket, string timestamp, string nonce, string url) { url = url.IndexOf("#") >= 0 ? url.Substring(0, url.IndexOf("#")) : url; string tmpStr = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + nonce + "×tamp=" + timestamp + "&url=" + url; tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1").ToLower(); return tmpStr; }
寫完之后,假如你沒有在公眾號后台設置,一定會碰到這個錯誤。
調試返回參數:
{ "errMsg": "config:invalid url domain" }
截圖:

環境:
微信測試號,非正式的公共號
說明:
需要在公眾號設置=》 功能設置里配置

