揭秘一下精仿手表哪里买红米手机质量如何,哪里买靠谱多少钱一个

微信登录方法选择字号:
手机短信登录&&
按下图步骤:
QQ密码登录&&
按下图步骤:
微信密码登录&&
按下图步骤:
以上信息是否已解决您的问题?
关注微信公众号
关注手Q公众号
社交软件热线3
帐号服务热线6
财付通热线0
支付服务热线95017
目前仅提供以上业务的电话服务,其他产品请在本网站寻求帮助
微信端公众号
QQ端公众号微信第三方登录用自己的appid和appsecret就跳不了微信页面,用平台的就可以,求解答
到微信开方平台申请, 云编译 有效
到微信开方平台申请, 云编译 有效
我是云编译的&&自己刚申请的微信移动应用
到微信开方平台申请, 云编译 有效
我开始用平台的appid 在真机同步下是可以授权apploader那个微信应用的,但是云编译之后就不行了!& &
之后我申请了自己的微信开放平台账号,用申请的移动应用的appid 填在配置文件里,这种情况下真机同步和云编译都不行!
我是云编译的&&自己刚申请的微信移动应用
判断返回的错误吗,还是验证问题,再用签名工具获取,发现再次获得的签名不一样,因此需要修改签名,而腾讯不能修改,因此只有删除再申请 !&&试下
判断返回的错误吗,还是验证问题,再用签名工具获取,发现再次获得的签名不一样,因此需要修改签名,而腾讯不 ...
不返回错误码,只有一个registerApp方法返回的true, 如果微信登录状态就再返回一个空的alert,如果微信没登录就跳到微信登陆页面让登陆,但是登陆之后还是返回一个空的alert。
微信移动应用的签名和包名跟app是一致的!
:我也是这个问题,楼主你解决了么&
不返回错误码,只有一个registerApp方法返回的true, 如果微信登录状态就再返回一个空的alert,如果微信 ...
那就是 key 有问题!&&不仅是包名, 还有那个 安装后才能获取的签名
我能到微信 授权自己微信应用的页面& &但是一授权之后 调不回app,直接就崩掉了
用文档提供的appID和AppSecret就能正常的掉起微信登陆,没有问题,自己申请的appID和AppSecret,在调用auth方法的时候返回错误码4,ret.status也是false,不知道为什么
UID:457882
我能到微信 授权自己微信应用的页面& &但是一授权之后 调不回app,直接就崩掉了 ...
楼主你这个问题解决了吗 ? 我也遇到同样的问题
(C) 2014 APICloud微信,是一个生活方式 超过九亿人使用的手机应用 支持发送语音短信、视频、图片和文字 可以群聊,仅耗少量流量,适合大部分智能手机
微信 2.2 for Mac 发布
微信 6.5.8 版发布
微信 2.4.5 for Windows 发布
微信网页版 扫一扫二维码 就能在浏览器上使用微信
微信 Mac 版 极致简洁,迅捷沟通
微信 Windows 版 让沟通更方便微信登录图的玄机,你看出来没?
走红朋友圈的神题,你来试试? 制图 李荣荣
  微信登录图居然成了考题?3月19日,学业水平测试(必修)科目考试(俗称“小高考”)地理科目的考试结束后,一道神题让不少小伙伴不淡定了。有人以为图上“小人”穿的是短袖,于是判断图片拍摄于夏季;有人认为图中白色区域是南极白昼,所以应该是12月。昨天,南京多位地理老师接受现代快报记者采访时表示,这张图不是太阳光照图,而是卫星云图,极昼一说不靠谱。而事实上,这张图是著名的地球照片《蓝色弹珠》,拍摄于日。
  昨天,江苏省教育考试院还邀请了全省多所高中的名师,解析今年“小高考”的各科试卷。
  现代快报记者 金凤
  微信登录图拍于几月?神题走红“每天都刷微信,现在发现真是白玩了。”江苏“小高考”地理学科中一道让众多考生懊恼不已的题目,迅速走红微信朋友圈。据了解,题目给的是微信登录图,要求考生从图中赤道附近云系的分布位置及M地所处的纬度位置,推测该图的拍摄时间及M地所处的风带最有可能是什么。
  南京中华中学地理高级教师赵宏霞监考时发现,学生们对于这道题的反应不一,“一名女生很快选出正确答案,但旁边的男生迟疑了一会。”
  据中华中学地理教师张惠芬介绍,赤道附近的气压带为赤道低气压带,从图中赤道附近云系的分布位置来看,大量的云在赤道以南,所以赤道低气压带是偏南的。属于1月份前后,即北半球的冬季。
  对于风带,赵宏霞分析,M地在南回归线以南20多个纬度,即南纬50°左右,所以M地受南半球盛行西风带控制。至此,这题的正确答案应该是12月份,盛行西风带。
  有学生脑洞大开,根据人物穿着答题
  老师们认为,题目不难,但不少学生脑洞大开会错了意,“有的学生观察错了重点,不看赤道附近的云系位置,居然放在图下方的人物形象上,认为人物好像穿的是短袖,所以推测是6月份。”赵宏霞说,即使穿的是短袖,也可能是北半球的6月份,或者南半球的12月份。而微信开机图中,南极附近是白茫茫的一片,这让不少网友确信,是南极圈出现极昼,所以推测是冬至日。
  但赵宏霞认为这是误读。“其实这张图不是太阳光照图,而是卫星云图。图中白色表示的是云层,白色多的地方表示云层厚,降雨概率大;反之表示云层薄,降雨概率小。”
  “部分学生觉得难的原因,是因为目前高中地理不讲天气预报,也很少讲卫星云图,所以一些学生对这种图觉得陌生,一旦遇到新的情景就蒙了。”南京二十九中地理教师卢文英认为。
  此图名为《蓝色弹珠》
  拍于12月
  微信登录图火了以后,热心的天文迷还遥想图中“小人”是站在哪里仰望地球。对此,南京紫天文台科普部主任张D表示,仅凭人和地球在图中的比例关系,是无法测算人的具体位置,不过可以确定这张图的拍摄时间。“就像在地球上看月球,每月的农历十五,月亮最圆。而地球的"满月"应该是在初一左右。”
  对于拍摄位置,张D分析,目前地球附近的天体,人能站在上面的有月球,也可能是小行星。“不过,人物站立的地方弧度太大,如果是站在月球上,又能被拍摄者以这样的身体比例拍摄到,那画面中显示的地面应该是一个平面。”
  事实上,这张地球照片是阿波罗17号太空船船员所拍摄的《蓝色弹珠》,拍摄时间为日,拍摄高度距离地面大约四万五千公里,是迄今为止最广泛流传的地球照片。
  解答这道神题
  要求学生会逆向思维
  点评人:南京一中地理特级教师 陆芷茗
  试卷弱化了学生对知识的死记硬背,注重考查学生对地理原理和规律的理解,以及运用所掌握的原理和规律解决实际问题的能力。
  本次测试中很多题目都涉及地理观察力、地理空间想象力、地理综合分析能力等方面的考查。例如被网友称为神题的微信登录图,是从地球表面云层的分布推知气压带和风带的位置,进而推测卫星图片的拍摄时间,属于逆推的思维方式,要求学生在熟练掌握气压带风带的位置与移动规律的基础上,进行逆向思维得出结论。
  试卷中很多测试的情境源于生活,关注热点、科技前沿和重大工程,例如“超市连锁店”等引导学生关注身边的地理过程与变化,分析这些现象与变化的原因,并关注身边的环境问题。
(责任编辑:张振江 HN061)
03/15 00:3401/09 03:55
新闻精品推荐
每日要闻推荐
社区精华推荐
精彩焦点图鉴
  【免责声明】本文仅代表作者本人观点,与和讯网无关。和讯网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。微信开放平台---网站应用开发---微信登录功能 简介-爱编程
微信开放平台---网站应用开发---微信登录功能 简介
1 微信开发平台:https://open./
2 开通流程:
3 微信官方教程:
4 效果展示:
点击微信图标跳转到https://open./connect/.....页面
使用个人微信扫描后,点击&确认登录&
这时候,pc页面上就会有变化:
然后页面就直接跳转到1好店的首页,并且将微信用户的信息传过去了。
5 通过官方提供的文档,我们可以看出一共分4个步骤
第一步:请求CODE
第二步:通过code获取access_token
第三步:通过access_token调用接口
我们写一个api代码: &
public class weixin_helper
public weixin_helper()
/// &summary&
/// 根据AppID和AppSecret获得access token(默认过期时间为2小时)
/// &/summary&
/// &returns&Dictionary&/returns&
public static Dictionary&string, object& get_access_token()
//获得配置信息
oauth_config config = oauth_helper.get_config(2);
string send_url = "https://api./cgi-bin/token?grant_type=client_credential&appid=" +
config.oauth_app_id + "&secret=" + config.oauth_app_key + "";
//发送并接受返回值
string result = Utils.HttpGet(send_url);
if (result.Contains("errmsg"))
return null;
Dictionary&string, object& dic = JsonConvert.DeserializeObject&Dictionary&string, object&&(result);
return null;
} /// &summary&
/// 取得临时的Access Token(默认过期时间为2小时)
/// &/summary&
/// &param name="code"&临时Authorization Code&/param&
/// &param name="state"&防止CSRF攻击,成功授权后回调时会原样带回&/param&
/// &returns&Dictionary&/returns&
public static Dictionary&string, object& get_access_token(string code, string state)
//获得配置信息
oauth_config config = oauth_helper.get_config(2);
string send_url = "https://api./sns/oauth2/access_token?appid=" +
config.oauth_app_id + "&secret=" + config.oauth_app_key + "&code="+code+"&grant_type=authorization_code";
//发送并接受返回值
string result = Utils.HttpGet(send_url);
if (result.Contains("errmsg"))
return null;
Dictionary&string, object& dic = JsonConvert.DeserializeObject&Dictionary&string, object&&(result);
return null;
/// &summary&
/// 根据access_token判断access_token是否过期
/// &/summary&
/// &param name="access_token"&&/param&
/// &returns&true表示未失效&/returns&
public static bool check_access_token(string access_token)
//获得配置信息
oauth_config config = oauth_helper.get_config(2);
string send_url = "https://api./sns/auth?access_token=" + access_token + "&openid=" + config.oauth_app_
//发送并接受返回值
string result = Utils.HttpGet(send_url);
Dictionary&string, object& dic = JsonConvert.DeserializeObject&Dictionary&string, object&&(result);
if (dic.ContainsKey("errmsg"))
if (dic["errmsg"].ToString()=="ok")
return true;
return false;
return false;
return false;
/// &summary&
/// 若fresh_token已过期则根据refresh_token取得新的refresh_token
/// &/summary&
/// &param name="refresh_token"&refresh_token&/param&
/// &returns&Dictionary&/returns&
public static Dictionary&string, object& get_refresh_token(string refresh_token)
//获得配置信息
oauth_config config = oauth_helper.get_config(2);
string send_url =
"https://api./sns/oauth2/refresh_token?appid=" +
config.oauth_app_id + "&grant_type=refresh_token&refresh_token=" + refresh_
//发送并接受返回值
string result = Utils.HttpGet(send_url);
if (result.Contains("errmsg"))
return null;
Dictionary&string, object& dic = JsonConvert.DeserializeObject&Dictionary&string, object&&(result);
return null;
/// &summary&
/// 获取登录用户自己的基本资料
/// &/summary&
/// &param name="access_token"&临时的Access Token&/param&
/// &param name="open_id"&用户openid&/param&
/// &returns&Dictionary&/returns&
public static Dictionary&string, object& get_user_info(string access_token, string open_id)
//获得配置信息
oauth_config config = oauth_helper.get_config(2);
//发送并接受返回值
string send_url = "https://api./sns/userinfo?access_token="+access_token+"&openid="+open_
//发送并接受返回值
string result = Utils.HttpGet(send_url);
if (result.Contains("errmsg"))
return null;
//反序列化JSON
Dictionary&string, object& dic = JsonHelper.DataRowFromJSON(result);
控制器的核心代码:
#region 微信登录
/// &summary&
/// 微信登录
/// &/summary&
public ActionResult WeChat()
//获得配置信息
oauth_config config = oauth_helper.get_config(2); //主键id
if (config == null)
return Content("出错了,您尚未配置微信相关的API信息!");
string state = Guid.NewGuid().ToString().Replace("-", "");
Session["oauth_state"] =
string send_url =
"https://open./connect/qrconnect?appid=" + config.oauth_app_id +
"&redirect_uri=" + Utils.UrlEncode(config.return_uri.ToLower()) +
"&response_type=code&scope=snsapi_login&state=" + state +
"#wechat_redirect";
//开始发送
return Redirect(send_url); //跳转到微信自己 指定的关联登陆页面
/// &summary&
/// 微信登录返回action
/// &/summary&
public ActionResult WeChatReturnUrl(string state, string code)
//取得返回参数
string access_token = string.E
string expires_in = string.E
string client_id = string.E
string openid = string.E
string refresh_token = string.E
if (Session["oauth_state"] == null || Session["oauth_state"].ToString() == "" ||
state != Session["oauth_state"].ToString() || string.IsNullOrEmpty(code))//若返回参数中未包含code或者state没有通过验证则提示出错
return Content("出错啦,state未初始化!");
//第一步:通过code来获取Access Token以及openid
Dictionary&string, object& dic1 = weixin_helper.get_access_token(code, state);
if (dic1 == null || !dic1.ContainsKey("access_token"))
return Content("错误代码:,无法获取Access Token,请检查App Key是否正确!");
if (dic1 == null || !dic1.ContainsKey("openid"))
if (dic1.ContainsKey("errmsg"))
return Content("errcode:" + dic1["errcode"] + ",errmsg:" + dic1["errmsg"]);
return Content("出错啦,无法获取用户授权Openid!");
access_token = dic1["access_token"].ToString();//获取access_token
expires_in = dic1["expires_in"].ToString();//获取过期时间
refresh_token = dic1["refresh_token"].ToString();//获取用于重新刷新access_token的凭证
openid = dic1["openid"].ToString();//用户唯一标示openid
//储存获取数据用到的信息
Session["oauth_name"] = "webchat";
Session["oauth_access_token"] = access_
Session["oauth_openid"] =
Session["oauth_refresh_token"] = refresh_
#region todo 将获取到的用户信息保存到数据库中
#endregion
//第二步:通过Access Token以及openid来获取用户的基本信息
//Dictionary&string, object& dic2 = weixin_helper.get_user_info(access_token,openid);
//第三步:跳转到指定页面
return Content(WeChatResultJson());
/// &summary&
/// 微信登录返回action, 处理用户信息
/// &/summary&
public string WeChatResultJson()
string oauth_access_token = string.E
string oauth_openid = string.E
string oauth_name = string.E
string oauth_refresh_token = string.E
if (Session["oauth_name"] == null || Session["oauth_access_token"] == null ||
Session["oauth_openid"] == null)
return "{\"ret\":\"1\", \"msg\":\"出错啦,Access Token已过期或不存在!\"}";
oauth_name = Session["oauth_name"].ToString();
oauth_access_token = Session["oauth_access_token"].ToString();
oauth_openid = Session["oauth_openid"].ToString();
oauth_refresh_token = Session["oauth_refresh_token"].ToString();
if (!weixin_helper.check_access_token(oauth_access_token)) //调用access_token前需判断是否过期
Dictionary&string, object& dic1 = weixin_helper.get_refresh_token(oauth_refresh_token);//如果已过期则重新换取新的access_token
if (dic1 == null || !dic1.ContainsKey("access_token"))
return "{\"openid\":\"0\", \"msg\":\"出错啦,无法获取access_token!\"}";
oauth_access_token = dic1["access_token"].ToString();
Dictionary&string, object& dic = weixin_helper.get_user_info(oauth_access_token, oauth_openid);
if (dic == null)
return "{\"openid\":\"0\", \"msg\":\"出错啦,无法获取授权用户信息!\"}";
StringBuilder str = new StringBuilder();
str.Append("{");
str.Append("\"openid\": \"" + dic["openid"].ToString() + "\", ");
str.Append("\"nickname\": \"" + dic["nickname"].ToString() + "\", ");
str.Append("\"sex\": \"" + dic["sex"].ToString() + "\", ");
str.Append("\"province\": \"" + dic["province"].ToString() + "\", ");
str.Append("\"city\": \"" + dic["city"].ToString() + "\", ");
str.Append("\"country\": \"" + dic["country"].ToString() + "\", ");
str.Append("\"headimgurl\": \"" + dic["headimgurl"].ToString() + "\", ");
str.Append("\"privilege\": \"" + dic["privilege"].ToString() + "\", ");
str.Append("\"unionid\": \"" + dic["unionid"].ToString() + "\"");
str.Append("\"oauth_name\": \"" + oauth_name + "\"");
str.Append("\"oauth_access_token\": \"" + oauth_access_token + "\"");
str.Append("\"oauth_openid\": \"" + oauth_openid + "\"");
str.Append("}");
return str.ToString();
return "{\"ret\":\"0\", \"msg\":\"出错啦,无法获取授权用户信息!\"}";
#endregion
核心代码已经写好了。
这里要感谢小亚同学辛苦写的代码。我直接拿过来使用了。
面对新的知识和技能,我们首先要仔细看官方的说明,再理清楚思路,一步一步跟着开发就行了。
小亚同学是去年刚毕业,也能把这些代码写的很好,难能可贵。
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。

我要回帖

更多关于 精仿手表哪里买最便宜 的文章

 

随机推荐