C#.net一键上传小程序

 /// 
        /// 一键上传小程序代码
        /// 
        /// 第三方appid
        /// 小程序版本号
        /// 商家名称
        /// 商家网址
        /// 调用签名
        /// 时间戳
        /// 是否是微信回调
        /// 微信回调授权码
        /// 微信回调时间搓
        /// 
        [HttpGet]
        public ActionResult Get(string comAppid = "", string authorizer_appid = "", string user_version = "", string smallAppName = "", string mainSiteUrl = "",string supplierId="", string sign = "", string dateNumber = "", string guid = "", string auth_code = "", int expires_in = 0)
        {
           
            string msg = string.Empty;
            //0:授权链接,1:上传代码失败,2:配置链接失败,3:提交审核失败,4:提交审核成功,5:已审核成功,string.Empty:错误
            string flag = string.Empty;
            //从缓存、数据库中获取token
            if (!string.IsNullOrEmpty(guid) ||(!string.IsNullOrEmpty(comAppid) && !string.IsNullOrEmpty(authorizer_appid)))
            {
               
     
                Tuple accessToken_msg = sendRequset.GetAKeyTokenEntity(comAppid);
               
                if (accessToken_msg != null && accessToken_msg.Item1 != null)
                {
                    string authorizer_access_token = string.Empty;
                    string component_access_token = string.Empty;
                    component_access_token = accessToken_msg.Item1.component_access_token;
                    authorizer_access_tokenFresh _authToken = sendRequset.GetAuthAccess_Token(authorizer_appid, comAppid, component_access_token);
                    authorizer_access_token = _authToken.authorizer_access_token;
             
                    //判断是否存在token
                    if (!string.IsNullOrEmpty(authorizer_access_token) && !string.IsNullOrEmpty(component_access_token))
                    {
                        //直接上传小程序,并提交审核
                     
                        Tuple tuplemsg =sendRequset.AkeyUpLoadXCXAudit(comAppid, smallAppName, supplierId, authorizer_access_token, mainSiteUrl, user_version, component_access_token);
                        flag = tuplemsg.Item1;
                        msg = tuplemsg.Item2;
                   
                    }
                    else
                    {
                        //判断是否是扫码微信跳转过来
                        if (!string.IsNullOrEmpty(guid))
                        {
                      
                            //获取微信跳转前存储的信息
                            string datajson = _Cache.Get(guid + "_comAppid");
                            if (!string.IsNullOrEmpty(datajson))
                            {
                             
                                SessionPreAuthCode sessionPreAuthCode = JsonConvert.DeserializeObject(datajson);
                                comAppid = sessionPreAuthCode.comAppid;
                                user_version = sessionPreAuthCode.user_version;
                                smallAppName = sessionPreAuthCode.smallAppName;
                                mainSiteUrl = sessionPreAuthCode.mainSiteUrl;
                                supplierId = sessionPreAuthCode.supplierId;
                                if (string.IsNullOrEmpty(auth_code)) auth_code = sessionPreAuthCode.auth_code;

                                //获取第三方token
                                component_access_tokenEntity component_Access_Token = sendRequset.GetTokenEntity(comAppid);
                                if (component_Access_Token == null)
                                {

                                    msg = "获取accessToken异常,请联系管理员查看日志";
                                }
                                else
                                {
                         
                                    //获取经销商信息,这里包括经销商的token
                                    authorization_infoEntity authorization_Info = sendRequset.AuthorizationSend(component_Access_Token.component_access_token, comAppid, auth_code);
                                    if (authorization_Info == null)
                                    {
                                        msg = "获取授权信息失败";
                                    }
                                    else
                                    {
                           
                                        // 将授权信息存入数据库
                                        int count = new DBHelper().WxOpenContextEditOrAdd(authorization_Info, comAppid);
                                        if (count > 0)
                                        {
                               
                                            //将经销商的token存入缓存
                                            _Cache.Set(comAppid + authorization_Info.authorization_info.authorizer_appid + "_AuthToken"
                                           , authorization_Info.authorization_info.authorizer_access_token, TimeSpan.FromSeconds(expires_in));
                                        }
                                        // 获取经销商授权的令牌
                                        var authToken = sendRequset.GetAuthAccess_Token(authorization_Info.authorization_info.authorizer_appid, comAppid, component_Access_Token.component_access_token);
                                        //上传小程序,并提交审核
                                       
                                        Tuple tuplemsg=  sendRequset.AkeyUpLoadXCXAudit(comAppid, smallAppName, supplierId, authToken.authorizer_access_token, mainSiteUrl, user_version, component_access_token);
                                        flag=tuplemsg.Item1;
                                        msg = tuplemsg.Item2;
                                     

                                    }
                                }
                            }
                            else
                            {
                                msg = "微信跳转缓存数据错误!";

                            }
                        }
                        else
                        {
                            //获取授权链接
                         
                            bool signErrorFlag = true;
                            // 获取是否需要验签
                            if (GetConfigJson.GetIsDecode())
                            {
           
                                // 获取私钥
                                string temp = GetConfigJson.GetSecretKey() + dateNumber + "&" + comAppid + GetConfigJson.GetSecretKey();
                                string aTemp = new Helper().Md5(temp);
                                if (aTemp != sign)
                                {
                 
                                    signErrorFlag = false;
                                    msg = "签名错误";
                                }
                            }
                            if (signErrorFlag)
                            {
                                if (!string.IsNullOrEmpty(comAppid))
                                {
                     
                                    component_access_tokenEntity component_Access_Token = sendRequset.GetTokenEntity(comAppid);//票据对象
                                    if (component_Access_Token == null)
                                    {
                           
                                        msg = "获取accessToken异常,请联系管理员查看日志";
                                    }
                                    else
                                    {
           
                                        //获取授权码
                                        pre_auth_codeEntity pre_Auth_Code = sendRequset.GetPreAuthCode(component_Access_Token, comAppid);

                                        if (pre_Auth_Code == null)
                                        {
                                     
                                            msg = "获取accessToken异常,请联系管理员查看日志";
                                        }
                                        else
                                        {
                                         

                                            var appid = GetConfigJson.GetAppid();

                                            SessionPreAuthCode sessionPreAuthCode = new SessionPreAuthCode()
                                            {
                                                comAppid = comAppid,
                                                user_version = string.IsNullOrEmpty(user_version) ? "1.0" : user_version,
                                                smallAppName = smallAppName,
                                                supplierId= supplierId,
                                                mainSiteUrl = mainSiteUrl,
                                                auth_code = pre_Auth_Code.pre_auth_code
                                            };
                                            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);

                                            guid = Guid.NewGuid().ToString() + Convert.ToInt64(ts.TotalSeconds).ToString();

                                            _Cache.Set(guid + "_comAppid", JsonConvert.SerializeObject(sessionPreAuthCode), TimeSpan.FromSeconds(1800));

                                            string url = "http://***********.**/api/AKeyUploadXCX?guid=" + guid;

                                            msg = new Helper().GetAuthorizaLink(appid, pre_Auth_Code.pre_auth_code, url);
                                            flag = "0";
                                           
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else {
                    msg = accessToken_msg.Item2;
                }
            }
           
   
            return JsonConvert.SerializeObject(new
            {
                flag = flag,
                msg = msg
            });
        }

你可能感兴趣的:(C#基础,c#)