/// <summary> 微信文字分享收藏 </summary> public static void SendReqWXShare(WXShare r_Share) { if (r_Share != null) { if (IsAndroid) { string str = JsonUtility.ToJson(r_Share); Android.Current.Call("sendReqWXShare", str); } } }
public ActionResult WxSignature(string url) { try { if (!AccessTokenContainer.CheckRegistered(appid)) //检查是否已经注册 { AccessTokenContainer.Register(appid, secret); //如果没有注册则进行注册 } var tokenResult = HttpRuntimeCache.GetCache("LocalAccessToken") as LocalAccessToken; var useCache = true; if (tokenResult == null || string.IsNullOrWhiteSpace(tokenResult?.access_token) || tokenResult.ExpiresTime == null || System.DateTime.Now > tokenResult.ExpiresTime) //过期 { useCache = false; var result = AccessTokenContainer.GetAccessTokenResult(appid, true); if (!string.IsNullOrWhiteSpace(result?.errmsg)) { return(Json(new { ErrMsg = JsonConvert.SerializeObject(result) }, JsonRequestBehavior.AllowGet)); //return Json(new { data = JsonConvert.SerializeObject(new { appid, secret }), ErrMsg = JsonConvert.SerializeObject(tokenResult) }, JsonRequestBehavior.AllowGet); } tokenResult = new LocalAccessToken(result) { }; HttpRuntimeCache.SetCache("LocalAccessToken", tokenResult, 7260); } var ticket = JsApiTicketContainer.GetJsApiTicket(appid); var model = new WXShare() { appId = appid, timestamp = JSSDKHelper.GetTimestamp(), nonce = JSSDKHelper.GetNoncestr(), url = Server.UrlDecode(url), ticket = ticket, //result = JsonConvert.SerializeObject(tokenResult), useCache = useCache }; model.signature = JSSDKHelper.GetSignature(ticket, model.nonce, model.timestamp, model.url); return(Json(model, JsonRequestBehavior.AllowGet)); } catch (System.Exception ex) { return(Json(new { ErrMsg = ex.Message, StackTrace = JsonConvert.SerializeObject(ex.StackTrace) }, JsonRequestBehavior.AllowGet)); } }