get uuid
https://wx2.qq.com/?&lang=zh_CN
/** * 启动二维码登录 */ function doQrcodeLogin() { loginFactory.getUUID().then(function (uuid) { utilFactory.log('login',uuid); $scope.uuid = uuid; $scope.qrcodeUrl = 'https://login.weixin.qq.com/qrcode/'+ uuid; $scope.code = 0; $scope.isScan = false; $scope.isIPad = utilFactory.isIPad; $scope.isMacOS = utilFactory.isMacOS; $scope.isWindows = utilFactory.isWindows; $scope.lang = utilFactory.queryParser().lang || 'zh_CN'; var qrcodeLoaded = false; reportService.report(reportService.ReportType.timing,{ timing:{ qrcodeStart:Date.now() } }); setTimeout(function(){ if(!qrcodeLoaded){ reportService.report(reportService.ReportType.picError,{ text:'qrcode can not load', src:$scope.qrcodeUrl }); } },3000); $scope.qrcodeLoad = function(){ qrcodeLoaded = true; reportService.report(reportService.ReportType.timing,{ timing:{ qrcodeEnd:Date.now() } }); }; loginFactory.checkLogin(uuid,1).then(checkLoginHandler, function (data){ if(!data && window.checkLoginPromise){ $scope.isBrokenNetwork = true; }else{ $scope.isBrokenNetwork = false; } }); }, function (code){ console.log('get uuid error'); if(!code){ $scope.isBrokenNetwork = true; }else{ $scope.isBrokenNetwork = false; } }); }
angular.module('Services') .factory('loginFactory', ['$http', '$q','$timeout', 'accountFactory', 'confFactory', 'utilFactory','mmHttp','reportService', function($http, $q, $timeout, accountFactory, confFactory,utilFactory,mmHttp,reportService) { var service = { getUUID: function () { var deferred = $q.defer(); window.QRLogin = {}; // ie8 $.ajax({ url: confFactory.API_jsLogin, dataType : "script", timeout : 10000 }).done(function() { if(window.QRLogin.code==200){ deferred.resolve(window.QRLogin.uuid); }else{ deferred.reject(window.QRLogin.code); } }).fail(function(){ deferred.reject(); console.log('get uuid fail.....'); }); /*$http.jsonp(confFactory.API_jsLogin).success(function(data){ //not standard jsonp, call error handler. }).error(function(data){ if(window.QRLogin.code==200){ deferred.resolve(window.QRLogin.uuid); }else{ deferred.reject(window.QRLogin.code); } });*/ return deferred.promise; }, getQrcode: function (argument) { // body... },
def like_wx_uuid(random_digit=12, reserved_digit=2):
'''
微信网页版 https://wx.qq.com/
https://res.wx.qq.com/a/wx_fed/webwx/res/static/js/index_c7d281c.js https://res.wx.qq.com/a/wx_fed/webwx/res/static/js/index_c7d281c.js
getUUID: function () {
var deferred = $q.defer();
window.QRLogin = {};
// ie8
$.ajax({
url: confFactory.API_jsLogin,
dataType : "script",
timeout : 10000
}).done(function() {
if(window.QRLogin.code==200){
deferred.resolve(window.QRLogin.uuid);
}else{
deferred.reject(window.QRLogin.code);
}
}).fail(function(){
deferred.reject();
console.log('get uuid fail.....');
});
/*$http.jsonp(confFactory.API_jsLogin).success(function(data){
//not standard jsonp, call error handler.
}).error(function(data){
if(window.QRLogin.code==200){
deferred.resolve(window.QRLogin.uuid);
}else{
deferred.reject(window.QRLogin.code);
}
});*/
return deferred.promise;
},
e.g.
wbJM5_KqQw==
oYN1ZHR-Tw==
Yf-wiqev-g==
app.
https://login.weixin.qq.com/qrcode/Yf-wiqev-g==
'''
assert random_digit > reserved_digit
import random, string
pool = string.ascii_letters + '-_' + string.digits
return ''.join(random.choice(pool) if i < random_digit - reserved_digit else '=' for i in range(random_digit))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
2019-05-29 tmp
2019-05-29 如果前面的IO操作出问题了,按照我们代码的意思,不就try catch 了吗,这样的话线程就没关闭了,就会造成线程泄露。 那怎么解决这个问题呢,其实也简单,把关闭线程的方法写到finally里就可以了。
2019-05-29 Dataeye计算任务架构
2018-05-29 a
2018-05-29 打印指定行 查看指定行数据