第一次寫博客,沒有什么經驗,文章中如果有什么錯誤之處,歡迎大家提出批評,小弟虛心求教,廢話不多說進入正題。
之前,由於工作需要,需要寫一個微信分享,本人小白,看了微信的官方文檔后,發現官方寫的文檔是前端的。后端的很少,查看其他大神的分享文章后發現,比較麻煩。其實后端的工作比較簡單,只需要把前端穿過來要分享的頁面地址傳過來,(分享頁面地址必須是當前微信中頁面地址,不能自定義頁面地址 )。之后就是我們的事情了,在這之前要首先在自己的項目中安裝微信公眾號的的Sdk NuGet 包
之后,就可以開始干啦。在你的接口里面想微信申請分享所需的參數啦! 具體代碼如下。
JSSDKHelper 命名空間為:using Senparc.Weixin.MP.Helpers;
Options.AppId 是微信公眾號應用的AppId Options.AppSecret 是微信公眾號應用的密鑰 這兩個東西都可以在微信公眾平台獲取到,request.Url 就是剛才提到的前端傳過來的需要分享的地址.
調用微信sdk幫助類 就可以得到分享所需的參數.
public DataResponse<DtoUserShareQRCodeResponse> GetWechatShareParameter(DtoGetUserShareUrlRequest request, long userId) {
var resul = JSSDKHelper.GetJsSdkUiPackageAsync(Options.AppId, Options.AppSecret, request.Url).Result;
Logger.LogDebug("用戶分享:---微信請求分享結果:appid:{0}---noncestr:{1}---Signature:{2}----Timestamp:{3}---", resul.AppId, resul.NonceStr, resul.Signature, resul.Timestamp);
Logger.LogDebug("用戶分享---分享連接地址:{0}",request.Url);
Logger.LogDebug("用戶分享---分享圖片地址:{0}",Options.Host_Url+"\\Uploads\\Share\\BackGroundThumb.jpg");
return new DataResponse<DtoUserShareQRCodeResponse> {
Code = 0,
Data = new DtoUserShareQRCodeResponse {
AppId = resul.AppId,
NonceStr = resul.NonceStr,
Signature = resul.Signature,
Timestamp = resul.Timestamp,
ShareImageUrl = $"{Options.Host_Url}\\Uploads\\Share\\BackGroundThumb.jpg",
ShareUrl = $"{request.Url}&shareid={userId}"
}
};
}
由於格式有點亂,第一次弄。所以就在下面放一張源代碼截圖. ShareImageUrl 是服務器返回給前端分享的圖片,這個根據自己的業務自己選擇圖片
resul里面就是前端所需要的參數,直接返回給前端使用即可(前端給的網址要再返回給前端,前端不能修改分享連接,因為鏈接已經經過微信簽名。不然的話,前端自定義的標題和內容都會沒有效果。).文章就不足之處,歡迎指導!謝謝大家。