U.U.OT.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. Namespace.register("U.U.OT"); //用户登录的命名空间
  2. //推送的广告词
  3. U.U.OT.UTF = false;
  4. U.U.OT.UST = "最新科技:云操作系统,您也来加入吧!点击进入哦!";
  5. U.U.OT.User = {};
  6. //#region 加载外联登录
  7. //异步加载登录接口
  8. /**
  9. * 异步加载qq登录的js
  10. *
  11. * @param {array} 加载按钮样式(参考qq登录api)
  12. */
  13. U.U.OT.QqLoadJs = function (bottonstyle) {
  14. U.MD.DynamicLoad("http://qzonestyle.gtimg.cn/qzone/openapi/qc-1.0.1.js",
  15. "js",
  16. function () {
  17. U.U.OT.AsynQqLoadJs(bottonstyle);
  18. },
  19. //U.M.apply(this, [[U.U.OT.AsynQqLoadJs, [bottonstyle]]]), ie8以前的浏览器可以使用此方法代替上面的方法,更加高效
  20. {"data-appid": "100584402", "charset": "utf-8", "src": "http://qzonestyle.gtimg.cn/qzone/openapi/qc-1.0.1.js" }, true); //腾讯登录加载
  21. }
  22. //
  23. /**
  24. * qq登录加载异步js成功处理
  25. *
  26. * @param {array} 加载按钮样式(参考qq登录api)
  27. */
  28. U.U.OT.AsynQqLoadJs = function (bottonstyle) {
  29. QC.Login(bottonstyle[i], U.M.apply(null, [[U.U.OT.QQCB, [null]]])); //调用加载qq登录按钮加载函数
  30. //由于qq登录按钮加载后会出现a标签,所以点击会出现错位于是会这里把a标签的href修改成"javascript:void(0)"
  31. $("a", $("#" + UDE[i]["btnId"])[0]).addAttrArray({ "href": "javascript:void(0)" });
  32. }
  33. /**
  34. * 异步加载微博登录的js
  35. *
  36. * @param {array} 加载按钮样式(参考微博登录api)
  37. */
  38. U.U.OT.WeiboLoadJs = function (bottonstyle) {
  39. //异步加载使用,微博登录加载
  40. U.MD.DynamicLoad(
  41. "http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=1242324937&i=" + Guid.newGuid(),
  42. "js",
  43. function () {
  44. WB2.anyWhere(function () {
  45. U.U.OT.ButtonWeiboLoadJs(bottonstyle);
  46. });
  47. },
  48. // U.M.apply(this, [[WB2.anyWhere, [U.M.apply(this, [[U.U.OT.ButtonWeiboLoadJs, [bottonstyle]]])]]]), ie8以前的浏览器可以使用此方法代替上面的方法,更加高效
  49. {"charset": "utf-8", "src": "http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=1242324937&i=" + Guid.newGuid(),
  50. "charset": "utf-8", "type": "text/javascript"
  51. },
  52. true); //微博登录加载
  53. }
  54. /**
  55. * 微博异步加载js成功处理
  56. *
  57. * @param {array} 加载按钮样式(参考微信登录api)
  58. */
  59. U.U.OT.ButtonWeiboLoadJs = function (bottonstyle, window) {
  60. window.widget.connectButton(bottonstyle); //加载按钮
  61. $("a", $("#" + bottonstyle["id"])[0]).addAttrArray({ "href": "javascript:void(0)" });
  62. }
  63. /**
  64. * 异步加载微信登录js
  65. *
  66. * @param {array} 加载按钮样式(参考微信登录api)
  67. */
  68. U.U.OT.WeixinLoadJs = function (bottonstyle) {
  69. //异步加载微信登录
  70. U.MD.DynamicLoad("http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js", "js",
  71. function () { U.U.OT.AsynWeixinLoadJs(bottonstyle); },
  72. //U.M.apply(this, [[U.U.OT.AsynWeixinLoadJs, [bottonstyle]]]),ie8以前的浏览器可以使用此方法代替上面的方法,更加高效
  73. {"charset": "utf-8", "src": "http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js", "charset": "utf-8", "type": "text/javascript" }, true); //
  74. }
  75. //微信登录加载
  76. U.U.OT.AsynWeixinLoadJs = function (bottonstyle) {
  77. //初始化微信
  78. new WxLogin({
  79. id: bottonstyle.ID || "",
  80. appid: "wxae62986df7490c49",
  81. scope: "snsapi_login",
  82. redirect_uri: "",
  83. state: bottonstyle.state || Guid.newGuid(),
  84. style: bottonstyle.style || "",
  85. href: bottonstyle.href || ""
  86. });
  87. }
  88. //注销QQ登录
  89. U.U.OT.Logout = function () {
  90. if (WB2.checkLogin()) { WB2.logout(); } //退出微博登陆
  91. if (QC.Login.check()) { QC.Login.signOut(); } //退出qq登陆
  92. }
  93. //#endregion
  94. //#region 腾讯登录
  95. //qq登录成功或者失败后的回调函数
  96. U.U.OT.QQCB = function (UCB, UDE) {
  97. if (QC.Login.check()) {//用户登录才能获取信息
  98. QC.Login.getMe(function (UOID, UAID) {//获取用户登录id
  99. QC.api("get_user_info", {}).success(function (UKE) { //获取用户信息
  100. UKE = UKE.data; //qq用户信息回调
  101. //获取用户基本信息
  102. U.Ut.AddObj(UKE, { "UserNickName": UKE.nickname, //用户基本信息
  103. "gender": UKE == "男" ? 1 : 0, "openID": UOID,
  104. "accessToken": UAID, "province": UKE.province,
  105. "city": UKE.city, "Birthday": U.MT.toTimeStamp(UKE.year + "/01/01")
  106. });
  107. //腾讯微博基本信息
  108. QC.api("get_info", {}).success(function (UWE) {
  109. UWE = UWE.data.data; var _UDL = UWE.location.split(' ');
  110. //发送一条雨云科技的消息
  111. QC.api("add_pic_t", { "content": U.U.OT.UST, "pic": "/img/qqew.jpg" }); //发表一篇进入1473的帖子
  112. QC.api("add_idol", { "name": "雨云科技" }); //关注我们的腾讯微博
  113. var _userinfo = U.Ut.AddObj(UKE, { "nickname": UWE.nick, //登录消息
  114. "gender": UWE.sex,
  115. "openID": UOID,
  116. "accessToken": UAID,
  117. "province": _UDL[1],
  118. "city": _UDL[2],
  119. "description": UWE.introduction,
  120. "UserEmail": UWE.email,
  121. "Birthday": U.MT.toTimeStamp(UWE.birth_year + "-" + UWE.birth_month + "-" + UWE.birth_day, "-")
  122. });
  123. U.U.OT.USUser(_userinfo);
  124. }).error(function () {
  125. U.U.OT.USUser(UKE);
  126. }).complete(function () { //未注册微博的用户直接登录
  127. });
  128. }).error(function () { U.Alert("获取QQ用户信息失败!"); }).complete(function () { ; });
  129. });
  130. }
  131. }
  132. //#endregion
  133. //#region 微博登录
  134. //微博登录成功或者失败后的回调函数
  135. U.U.OT.WBCB = function (UCB, userinfo) {
  136. U.U.OT.USUser(userinfo); //1473登录
  137. WB2.anyWhere(function (WB2) { //调用
  138. WB2.parseCMD("/statuses/update.json", function (message) { //登录成功消息推送
  139. }, { "status": U.U.OT.UST });
  140. WB2.parseCMD("/friendships/create.json", function (message) { //登录后关注我们的微博账号
  141. }, { "screen_name": "1473云端" });
  142. });
  143. }
  144. //微博关注按钮,传入参数为需要关注的id。
  145. U.U.OT.WBGZ = function (UDID) {
  146. WB2.anyWhere(function (UWE) {
  147. W.widget.followButton({ "nick_name": "1473云端", //设置腾讯微博关注按钮
  148. "id": UDID, "show_head": false, "show_name": false, "show_cancel": false
  149. });
  150. });
  151. }
  152. //#endregion
  153. //#region 微信登录处理
  154. ////url形式跳转登录
  155. //U.U.OT.WXUrl = function (USE) {
  156. // // window.open("https://open.weixin.qq.com/connect/qrconnect?appid=wxae62986df7490c49&redirect_uri=https%3A%2F%2Fwww.1473.cn&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect ");
  157. //}
  158. ////微信登录回调处理
  159. //U.U.OT.CallBackWX = function (USE) {
  160. //}
  161. //2ed68d9671db0ee8ba114f69567502b6
  162. /**
  163. * 判断外链用户是否存在
  164. *
  165. * @param {array} 登录值参数
  166. * @param {array} 回调函数
  167. */
  168. U.U.OT.weixin = function () {
  169. //防止二维码缓存。
  170. U.U.OT.wxData = { "id": Guid.newGuid() };
  171. window.open("https://open.weixin.qq.com/connect/qrconnect?appid=wxae62986df7490c49&redirect_uri=" + window.encodeURI("/WxDomain.htm") + "&response_type=code&scope=snsapi_login&state=" + U.U.OT.wxData.id);
  172. }
  173. /**
  174. * 微信注册异步回调区域
  175. *
  176. */
  177. U.U.OT.Asynweixin = function (UST) {
  178. var _co = U.M.QueryString("code", UST), //获取code值
  179. _state = U.M.QueryString("state", UST); //回调状态
  180. if (_state == U.U.OT.wxData.id && _state != null) { //判断状态吗是否匹配
  181. U.A.Request("http://zhifu.1473.cn/weixin/login.php?code=" + _co, [], function (r) {
  182. if (r.value.openid) {
  183. U.U.OT.USUser(r.value); //登录
  184. }
  185. else {
  186. U.Alert("微信扫描登录失败");
  187. }
  188. });
  189. }
  190. }
  191. //#endregion
  192. //#region 外链登录成功使用
  193. /**
  194. * 判断外链用户是否存在
  195. *
  196. * @param {array} 登录值参数
  197. * @param {array} 回调函数
  198. */
  199. U.U.OT.USUser = function (userinfo) {
  200. //userinfo.openID代表QQ的openid userinfo.id代表微博的openid userinfo.openid代表微信的openid
  201. U.A.Request(US.Auth, ["ThirdPartyLogin", (userinfo.openID || userinfo.id || userinfo.openid)]),
  202. U.U.OT.AsynUSUser, [null, US.NLInfo.LogAddr, userinfo]; //通过微博或者qq的openid 获取是否在1473上注册的用户
  203. }
  204. /**
  205. * 微博或者qq云端登录异步
  206. *
  207. * @param {array} 登录值参数
  208. * @param {array} 回调函数
  209. */
  210. U.U.OT.AsynUSUser = function (r) {
  211. var _UDE;
  212. var _UTF = true, //不成功登录变量
  213. context = r.context; //回调参数
  214. //_UCB = context[3]; //回调函数
  215. //if (_UCB) {
  216. // _UTF = _UCB(context[2], r.value);
  217. //} //如果需要异步执行
  218. if (_UTF) { //判断用户值
  219. if (typeof r.value == "object") { //用户存在直接登录
  220. context[3] = r.value[0].UserName; //用户名
  221. context[2] = null; //回调函数清空
  222. U.U.L.AsynUlL(r); //直接登录
  223. }
  224. else { //用户不存在填写资料
  225. _UDE = U.U.R.TBA;
  226. _UDE[0] = _UDE[1] = false; //设置信息不成功
  227. U.U.L.USUTJ(context[2], r.value); //填写登录信息
  228. }
  229. }
  230. }
  231. //#endregion