コード例 #1
0
 /// <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);
         }
     }
 }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: thomerson/Woyaopao
        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));
            }
        }