Exemplo n.º 1
0
        //活动中心
        public ActionResult AppstoreActivity()
        {
            OpenApiV3 sdk = new OpenApiV3(1, "appkey");

            sdk.SetServerName("server_name");
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("openid", Request["openid"]);
            param.Add("openkey", Request["openkey"]);
            param.Add("pf", Request["pf"]);
            param.Add("pfkey", Request["pfkey"]);
            param.Add("ts", DateTime.Now.ToString());
            param.Add("payitem", Request["payitem"]);
            param.Add("goodsmeta", Request["goodsmeta"]);
            param.Add("goodsurl", Request["goodsurl"]);
            param.Add("zoneid", "0");

            param.Add("appmode", "1");//暂时有问题,对比以前查看

            string script_name = "/v3/pay/buy_goods";

            RstArray arr = sdk.Api(script_name, param);

            return(Json(arr));
        }
Exemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int    appid       = 100651351;
        string appkey      = "e358f5d6c4c5cd822419911c13a18e73";
        string server_name = "openapi.tencentyun.com";//"119.147.19.43";
        string openid      = Request.QueryString["openid"];
        string openkey     = Request.QueryString["openkey"];
        string pf          = Request.QueryString["pf"];

        OpenApiV3 sdk = new OpenApiV3(appid, appkey);

        sdk.SetServerName(server_name);
        RstArray result = new RstArray();

        //get_info接口
        result = UserHelper.GetUserInfo(sdk, openid, openkey, pf);

        //测试
        //Response.Write("<br>ret = " + result.Ret + "<br>msg = " + result.Msg);
        //Response.End();

        string      jsonString = result.Msg;
        QQInfoClass qq         = JsonHelper.JsonDeserialize <QQInfoClass>(jsonString);

        string u            = "qz";
        string oId          = openid;
        string aToken       = openkey;
        string userNickName = HttpUtility.UrlEncode(qq.nickname);
        string userImage    = HttpUtility.UrlEncode(qq.figureurl);

        Response.Redirect("OAuth.aspx?u=" + u + "&openId=" + oId + "&accessToken=" + aToken + "&name=" + userNickName + "&image=" + userImage);
    }
Exemplo n.º 3
0
        public ActionResult Index(Dictionary <string, string> queryvalues)
        {
            bool   firstLogin = false;
            string invkey     = queryvalues.ContainsKey("invkey") ? queryvalues["invkey"].ToString() : "0";
            string iopenid    = queryvalues.ContainsKey("iopenid") ? queryvalues["iopenid"].ToString() : "0";
            string itime      = queryvalues.ContainsKey("itime") ? queryvalues["itime"].ToString() : "0";
            string pfkey      = queryvalues.ContainsKey("pfkey") ? queryvalues["pfkey"].ToString() : "";
            string vertime    = queryvalues.ContainsKey("VERTIME") ? queryvalues["VERTIME"].ToString() : "";
            string via        = queryvalues.ContainsKey("via") ? queryvalues["via"].ToString() : "0";

            if (!string.IsNullOrEmpty(invkey))
            {
                firstLogin = true;
            }
            string openid  = queryvalues.ContainsKey("openid") ? queryvalues["openid"].ToString() : "";
            string openkey = queryvalues.ContainsKey("openkey") ? queryvalues["openkey"].ToString() : "";
            string pf      = queryvalues.ContainsKey("pf") ? queryvalues["pf"].ToString() : "";

            //
            string sessionStr = "";

            OpenApiV3 sdk = new OpenApiV3(1, "appkey");

            sdk.SetServerName("server_name");
            RstArray result = new RstArray();

            return(View());
        }
Exemplo n.º 4
0
        public int BuyPlayzoneItem(string openId, string openKey, string pf, int appId, string appKey, string itemId, string zoneType, ref string orderId, ref int cost)
        {
            try
            {
                OpenApiV3 sdk = new OpenApiV3(openId, openKey, appId, pf, appKey, UAFactory.Instance.OpenUALog);
                sdk.SetUserIp(UAHelper.GetRealIP());
                RstArray result = buyPlayzoneItem(sdk, itemId, zoneType);
                if (result.Ret == 0)
                {
                    var json = JsonConvert.DeserializeObject(result.Msg) as JObject;
                    if (json == null)
                    {
                        return(1);
                    }
                    var code = ConvertHelper.ConvertToInt(JsonUtil.GetJsonValue(json, "code"));  //订单号
                    if (code != 0)
                    {
                        switch (code)
                        {
                        case 1002:     //用户没有登录态
                            return((int)MessageCode.UserNotLogin);

                            break;

                        case 1003:     //账户被冻结
                            return((int)MessageCode.UserFreeze);

                            break;

                        case 1004:     //账户余额不足
                            return((int)MessageCode.TxNotSufficientFunds);

                            break;

                        default:
                            return((int)MessageCode.TxBuyPointFail);

                            break;
                        }
                    }
                    var data = json["data"];
                    if (data == null)
                    {
                        return(1);
                    }
                    orderId = JsonUtil.GetJsonValue(data[0], "billno").ToLower();                 //订单号
                    cost    = ConvertHelper.ConvertToInt(JsonUtil.GetJsonValue(data[0], "cost")); //消耗积分
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("腾讯充", ex);
                return(-1);
            }
            return(0);
        }
Exemplo n.º 5
0
        public int WbUserInfo(string openId, string openKey, string pf, string platform, int appId, string appKey)
        {
            try
            {
                OpenApiV3 sdk = new OpenApiV3(openId, openKey, appId, pf, appKey, UAFactory.Instance.OpenUALog);
                sdk.SetUserIp(UAHelper.GetRealIP());
                RstArray result = GetUserInfo(sdk);
                if (result.Ret != 0)
                {
                    return(result.Ret);
                }
                var json = JsonConvert.DeserializeObject(result.Msg) as JObject;
                if (json == null)
                {
                    return(1);
                }
                //var nickName = JsonUtil.GetJsonValue(json, "nickname");
                //var logo = JsonUtil.GetJsonValue(json, "figureurl");
                //var extraData = BuildExtraData(openkey, pf, pfkey);
                if (pf == "wanba_ts")
                {
                    var result1 = GetWanBaUserInfo(sdk, "1");
                    if (result1.Ret != 0)
                    {
                        return(result1.Ret);
                    }
                    var json1 = JsonConvert.DeserializeObject(result1.Msg) as JObject;
                    if (json1 == null)
                    {
                        return(1);
                    }
                    var data = json1["data"];
                    if (data == null)
                    {
                        return(1);
                    }

                    var is_vip    = JsonUtil.GetJsonValue(data[0], "is_vip").ToLower(); //是否开通游戏达人
                    var vip_level = JsonUtil.GetJsonValue(data[0], "vip_level");        //达人等级
                    //var score = JsonUtil.GetJsonValue(data[0], "score"); //用户积分
                    //var expiredtime = JsonUtil.GetJsonValue(data[0], "vip_level"); //	达人过期时间
                    TxYellowvipMgr.Add(ShareUtil.GetWanBaVipAccount(openId), is_vip == "true", false, false,
                                       ConvertHelper.ConvertToInt(vip_level), "");
                }
                return(0);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("腾讯获取用户", ex);
                return(-1);
            }
        }
Exemplo n.º 6
0
    protected void GetQQImageButton_Click(object sender, EventArgs e)
    {
        if (this.AppID.Text.Trim() == "" || this.AppKey.Text.Trim() == "" || this.OpenIDBox.Text.Trim() == "" || this.AccessTokenBox.Text.Trim() == "")
        {
            this.ResultLabel.Text = "{ empty. }";
            return;
        }

        int    appid       = Convert.ToInt32(this.AppID.Text.Trim());
        string appkey      = this.AppKey.Text.Trim();
        string server_name = "openapi.tencentyun.com";//"119.147.19.43";
        string openid      = this.OpenIDBox.Text.Trim();
        string openkey     = this.AccessTokenBox.Text.Trim();

        OpenApiV3 sdk = new OpenApiV3(appid, appkey);

        sdk.SetServerName(server_name);
        RstArray result = new RstArray();

        //get_info接口
        result = UserHelper.GetUserInfo(sdk, openid, openkey, "qzone");

        //测试
        //Response.Write("<br>ret = " + result.Ret + "<br>msg = " + result.Msg);

        string      jsonString = result.Msg;
        QQInfoClass qq         = JsonHelper.JsonDeserialize <QQInfoClass>(jsonString);

        string    str   = "";
        OAuthInfo oauth = bll.GetOAuthByOpenId(openid);

        if (FixImageBox.Checked && oauth.OAuthID > 0)
        {
            int      userId = oauth.UserID;
            UserInfo user   = user_bll.GetUserByUserId(userId);
            user.UserNickName = qq.nickname;
            user.UserImage    = qq.figureurl;
            //user.ModifyDate = DateTime.Now;

            bool success = user_bll.UpdateUser(user);
            if (success)
            {
                str = "{ " + user.UserImage + " }";
            }
            else
            {
                str = "{ error. }";
            }
        }

        this.ResultLabel.Text = str + "<br><br>" + jsonString;
    }
Exemplo n.º 7
0
        /// <summary>
        ///  打印出返回结果的内容,当API中的这个函数的注释放开将会被调用。
        /// </summary>
        /// <param name="RstArray">待打印的array</param>
        private void PrintRespond(RstArray result_array, int index)
        {
            if (!OpenUalog)
            {
                return;
            }
            if (HttpContext.Current == null)
            {
                return;
            }

            string sb = index + ",";//"<br>============= respond info ================<br>";

            sb += "ret = " + result_array.Ret + "<br>msg = " + result_array.Msg + "<br>";
            SystemlogMgr.Info("PrintRespond", sb);
        }
Exemplo n.º 8
0
        //获取已安装了应用的好友列表
        public ActionResult GetAppFriends()
        {
            OpenApiV3 sdk = new OpenApiV3(1, "appkey");

            sdk.SetServerName("server_name");
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("openid", Request["openid"]);
            param.Add("openkey", Request["openkey"]);
            param.Add("pf", Request["pf"]);
            string script_name = "/v3/relation/get_app_friends";

            RstArray arr = sdk.Api(script_name, param);

            return(Json(arr));
        }
Exemplo n.º 9
0
    protected void GetQQImageButton_Click(object sender, EventArgs e)
    {
        if (this.AppID.Text.Trim() == "" || this.AppKey.Text.Trim() == "" || this.OpenIDBox.Text.Trim() == "" || this.AccessTokenBox.Text.Trim() == "")
        {
            this.ResultLabel.Text = "{ empty. }";
            return;
        }

        int    appid       = Int32.Parse(this.AppID.Text.Trim());
        string appkey      = this.AppKey.Text.Trim();
        string server_name = "openapi.tencentyun.com";//"119.147.19.43";//
        string openid      = this.OpenIDBox.Text.Trim();
        string openkey     = this.AccessTokenBox.Text.Trim();

        OpenApiV3 sdk = new OpenApiV3(appid, appkey);

        sdk.SetServerName(server_name);
        RstArray result = new RstArray();

        result = GetUserInfo(sdk, openid, openkey, "qzone");
        //Response.Write("<br>ret = " + result.Ret + "<br>msg = " + result.Msg);
        string      qqStr = result.Msg;
        QQInfoClass qq    = JsonHelper.JsonDeserialize <QQInfoClass>(qqStr);

        string    userStr = "";
        DataTable dt      = OAuthAccess.GetOAuthByOpenId(openid);

        if (dt.Rows.Count > 0)
        {
            int        userId = Int32.Parse(dt.Rows[0]["UserID"].ToString());
            UserEntity user   = UserAccess.GetUserById(userId);
            user.UserNickName = qq.nickname;
            user.UserImage    = qq.figureurl;
            bool success = UserAccess.UpdateUser(user);
            if (success)
            {
                userStr = "{ " + user.UserImage + " }";
            }
            else
            {
                userStr = "{ error. }";
            }
        }

        this.ResultLabel.Text = userStr + "<br><br>" + qqStr;
    }
Exemplo n.º 10
0
        //获取好友资料
        public ActionResult TotalVipInfo()
        {
            OpenApiV3 sdk = new OpenApiV3(1, "appkey");

            sdk.SetServerName("server_name");
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("openid", Request["openid"]);
            param.Add("openkey", Request["openkey"]);
            param.Add("pf", Request["pf"]);

            string script_name = "/v3/user/total_vip_info";

            RstArray arr = sdk.Api(script_name, param);

            return(Json(arr));
        }
Exemplo n.º 11
0
        public RstArray verify_invkey(OpenApiV3 sdk, string openid, string openkey, string pf)
        {
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("openid", openid);
            param.Add("openkey", openkey);
            param.Add("pf", pf);
            param.Add("invkey", Request["invkey"]);
            param.Add("itime", Request["itime"]);
            param.Add("iopenid", Request["iopenid"]);

            string script_name = "/v3/spread/verify_invkey";

            RstArray arr = sdk.Api(script_name, param);

            return(arr);
        }
Exemplo n.º 12
0
        /**
         * 验证好友邀请的invkey,用于“邀请好友即赠送礼品”等场景。
         *
         * @param object $sdk OpenApiV3 Object
         * @param string $openid openid
         * @param string $openkey openkey
         * @param string $pf 平台
         * @return array 好友资料数组
         */
        public ActionResult VerifyInvkey()
        {
            OpenApiV3 sdk = new OpenApiV3(1, "appkey");

            sdk.SetServerName("server_name");
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("openid", Request["openid"]);
            param.Add("openkey", Request["openkey"]);
            param.Add("pf", Request["pf"]);
            param.Add("invkey", Request["invkey"]);
            param.Add("itime", Request["itime"]);
            param.Add("iopenid", Request["iopenid"]);
            string script_name = "/v3/spread/verify_invkey";

            RstArray arr = sdk.Api(script_name, param);

            return(Json(arr));
        }
Exemplo n.º 13
0
        public IHttpActionResult SendVerificationCode(string phone, bool isFormalDataBase)
        {
            //6位随机码
            string code = CreatCode();
            //短信内容
            string text = "您的验证码是:" + code + ",请尽快验证。如非本人操作请忽略,回复TD拒收。";
            //发送结果
            RstArray Rst        = SendMSG(phone, text);
            string   returnCode = JObject.Parse(Rst.Msg)["returnCode"].ToString();
            string   returnMsg  = JObject.Parse(Rst.Msg)["returnMsg"].ToString();

            //Msg={"taskId":"20042716244413580995","returnCode":"200","returnMsg":"成功","productId":"1"}
            if (returnCode == "200")
            {
                //保存验证码
                SaveVerificationCode(phone, code, isFormalDataBase);
                return(Ok(new ReturnMessage(ReturnMessType.Success, code)));
            }
            else
            {
                return(Ok(new ReturnMessage(ReturnMessType.Error, returnMsg)));
            }
        }
Exemplo n.º 14
0
 public int WbUserInfo()
 {
     try
     {
         string openId  = "3C12344A556DADF34634CEFB80B05D7D";
         string openKey = "2DC6A89C97E6AAFA9F74C03E15D0CEFA";
         string pf      = "qzone";
         //format
         //userip
         //sig
         //UAFactory
         int       appId      = 1105806369;
         string    appKey     = "uOFRHYPj69tRtk3i";
         string    serverName = "v3/user/buy_playzone_item";
         OpenApiV3 sdk        = new OpenApiV3(openId, openKey, appId, pf, appKey, UAFactory.Instance.OpenUALog);
         sdk.SetUserIp(UAHelper.GetRealIP());
         RstArray result = buyPlayzoneItem(sdk);
         if (result.Ret != 0)
         {
             return(result.Ret);
         }
         var json = JsonConvert.DeserializeObject(result.Msg) as JObject;
         if (json == null)
         {
             return(1);
         }
         var nickName = JsonUtil.GetJsonValue(json, "nickname");
         var logo     = JsonUtil.GetJsonValue(json, "figureurl");
         //var extraData = BuildExtraData(openkey, pf, pfkey);
         if (pf == "wanba")
         {
             var result1 = GetWanBaUserInfo(sdk, "1");
             if (result1.Ret != 0)
             {
                 return(result1.Ret);
             }
             var json1 = JsonConvert.DeserializeObject(result1.Msg) as JObject;
             if (json1 == null)
             {
                 return(1);
             }
             var data = json1["data"];
             if (data == null)
             {
                 return(1);
             }
             var is_vip      = JsonUtil.GetJsonValue(data[0], "is_vip");    //是否开通游戏达人
             var vip_level   = JsonUtil.GetJsonValue(data[0], "vip_level"); //达人等级
             var score       = JsonUtil.GetJsonValue(data[0], "score");     //用户积分
             var expiredtime = JsonUtil.GetJsonValue(data[0], "vip_level"); //	达人过期时间
             TxYellowvipMgr.Add(ShareUtil.GetWanBaVipAccount(openId), is_vip == "true", false, false,
                                ConvertHelper.ConvertToInt(vip_level), "");
         }
         return(0);
     }
     catch (Exception ex)
     {
         SystemlogMgr.Error("腾讯获取用户", ex);
         return(-1);
     }
 }
Exemplo n.º 15
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="phone">手机号码</param>
        /// <param name="isAndroid">是否为安卓库</param>
        /// <param name="isFormalDataBase">是否为正式库</param>
        /// <returns></returns>
        public static RstArray SendMSG(string phone, string text)
        {
            //接口地址
            string methodUrl = "/cmc/sms/send";

            //初始化一信通SDK
            SpApi sdk = new SpApi();

            //企业编号
            sdk.SpCode = "280393";

            //用户名
            sdk.UserName = "******";

            //签名密钥
            sdk.Key = "3ddbe84d94509a2a30a91247d72539ae";

            //API地址
            sdk.ApiUrl = "https://api.ums86.com";

            //拼接参数
            Dictionary <string, string> param = new Dictionary <string, string>();

            param.Add("text", text);
            param.Add("sendObject", phone);


            //接收返回结果
            RstArray result_array = sdk.Api(methodUrl, param);

            return(result_array);
            //-----------------结果示例-------------------
            //  result_array.Msg={"taskId":"20042716244413580995","returnCode":"200","returnMsg":"成功","productId":"1"}
            //  result_array.Ret=0
            //
            //  返回码列表
            //
            //   200    成功
            //   499    服务错误
            //   1801   签名不合法
            //   1802   必填参数为空
            //   1803   接口服务未开通,账户无权限
            //   1804   频繁调用(同一接口同样的参数10分钟内连续调用超过5次会报此异常)
            //   1805   预约发送时间格式不正确,应为yyyyMMddHHmmss
            //   1806   含有无效的手机号码
            //   1807   Ip不合法
            //   1808   流水号格式不正确
            //   1809   流水号重复
            //   1810   余额不足
            //   1811   需要人工审核
            //   1812   发送内容与模板不符
            //   1813   发送内容含有禁止敏感词
            //   1814   同一号码相同内容发送次数太多
            //   1815   没有与充值流量相匹配的商品
            //   2801   系统错误
            //   2802   生成签名失败
            //   2803   账号或者密码错误
            //   3801   验密不通过
            //--------------------------------------------

            //结果转换成json并读取返回码 返回200则发送成功
            //   string returnCode = JObject.Parse(result_array.Msg)["returnCode"].ToString();
            //   return returnCode == "200" ? code : "";
        }
Exemplo n.º 16
0
        /// <summary>
        /// 执行API调用,返回结果数组
        /// </summary>
        /// <param name="script_name">调用的API方法,比如/v3/user/get_info, 参考 http://wiki.open.qq.com/wiki/API_V3.0%E6%96%87%E6%A1%A3 </param>
        /// <param name="param">调用API时带的参数</param>
        /// <param name="method">请求方法 post / get</param>
        /// <param name="protocol">协议类型 http / https </param>
        /// <returns>返回结果数组</returns>
        public RstArray Api(string script_name, Dictionary <string, string> param, string method, string protocol)
        {
            RstArray result_array = new RstArray();

            // 检查 openid 是否为空
            if (string.IsNullOrEmpty(param["openid"]))
            {
                result_array.Msg = "openid is empty";
                result_array.Ret = OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY;
                return(result_array);
            }
            // 检查 openkey 是否为空
            if (string.IsNullOrEmpty(param["openkey"]))
            {
                result_array.Msg = "openkey is empty";
                result_array.Ret = OPENAPI_ERROR_REQUIRED_PARAMETER_EMPTY;
                return(result_array);
            }
            // 检查 openid 是否合法
            if (!IsOpenId(param["openid"]))
            {
                result_array.Msg = "openid is invalid";
                result_array.Ret = OPENAPI_ERROR_REQUIRED_PARAMETER_INVALID;
                return(result_array);
            }
            // 无需传sig, 会自动生成
            if (param.ContainsKey("sig"))
            {
                param.Remove("sig");
            }

            // 添加一些参数
            param["appid"]  = appid.ToString();
            param["format"] = format;

            // 生成签名
            string secret = appkey + "&";
            string sig    = SnsSigCheck.MakeSig(method, script_name, param, secret);

            param.Add("sig", sig);

            string url = protocol + "://" + server_name + script_name;

            // 增加cookie
            Dictionary <string, string> cookie = new Dictionary <string, string>();

            //记录接口调用开始时间
            long start_time = SnsStat.GetTime();

            //通过调用以下方法,可以打印出最终发送到openapi服务器的请求参数以及url,不打印可以注释
            //PrintRequest(url,param,method);

            // 发起请求
            result_array = SnsNetWork.MakeRequest(url, param, cookie, method, protocol);
            if (result_array.Ret != 0)
            {
                result_array.Ret += OPENAPI_ERROR_HTPP;
                return(result_array);
            }


            //解析返回结果的返回码
            string stat_ret = "";

            try
            {
                if (this.format == "xml")
                {
                    XmlDocument xml = new XmlDocument();
                    xml.LoadXml(result_array.Msg);
                    stat_ret = xml.LastChild["ret"].InnerText.ToString();
                }
                else
                {
                    JsonSerializer serializer  = new JsonSerializer();
                    RstArray       json_obj    = new RstArray();
                    JsonTextReader json_reader = new JsonTextReader(new StringReader(result_array.Msg));
                    json_obj = serializer.Deserialize <RstArray>(json_reader);
                    stat_ret = json_obj.Ret.ToString();
                }
            }
            catch (Exception e)
            {
                result_array.Msg = e.Message;
                // 远程返回的不是 json或者xml 格式, 说明返回包有问题
                result_array.Ret += OPENAPI_ERROR_RESPONSE_DATA_INVALID;
                return(result_array);
            }
            // 统计上报
            if (is_stat)
            {
                Dictionary <string, string> stat_params = new Dictionary <string, string>();
                stat_params["appid"]     = appid.ToString();
                stat_params["pf"]        = param["pf"];
                stat_params["rc"]        = stat_ret;
                stat_params["svr_name"]  = server_name;
                stat_params["interface"] = script_name;
                stat_params["protocol"]  = protocol;
                stat_params["method"]    = method;
                SnsStat.StatReport(stat_url, start_time, stat_params);
            }

            //通过调用以下方法,可以打印出调用openapi请求的返回码以及错误信息,不打印可以注释
            //PrintRespond(result_array);

            return(result_array);
        }
Exemplo n.º 17
0
 /// <summary>
 ///  打印出返回结果的内容,当API中的这个函数的注释放开将会被调用。
 /// </summary>
 /// <param name="RstArray">待打印的array</param>
 static protected void PrintRespond(RstArray result_array)
 {
     HttpContext.Current.Response.Write("<br>============= respond info ================<br>");
     HttpContext.Current.Response.Write("ret = " + result_array.Ret + "<br>msg = " + result_array.Msg + "<br>");
 }