第一次写博客,没有什么经验,文章中如果有什么错误之处,欢迎大家提出批评,小弟虚心求教,废话不多说进入正题。
之前,由于工作需要,需要写一个微信分享,本人小白,看了微信的官方文档后,发现官方写的文档是前端的。后端的很少,查看其他大神的分享文章后发现,比较麻烦。其实后端的工作比较简单,只需要把前端穿过来要分享的页面地址传过来,(分享页面地址必须是当前微信中页面地址,不能自定义页面地址 )。之后就是我们的事情了,在这之前要首先在自己的项目中安装微信公众号的的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里面就是前端所需要的参数,直接返回给前端使用即可(前端给的网址要再返回给前端,前端不能修改分享连接,因为链接已经经过微信签名。不然的话,前端自定义的标题和内容都会没有效果。).文章就不足之处,欢迎指导!谢谢大家。