//活动中心 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)); }
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); }
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()); }
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); }
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); } }
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; }
/// <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); }
//获取已安装了应用的好友列表 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)); }
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; }
//获取好友资料 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)); }
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); }
/** * 验证好友邀请的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)); }
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))); } }
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); } }
/// <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 : ""; }
/// <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); }
/// <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>"); }