function onRequest(request, response, modules) {var token = "weixin";         //这里的值必须与在微信公众号后台填入的token值一致var userbiao = 'usergd'; var crypto = modules.oCrypto; //使用加解密模块var httptype = modules.oHttptype;  //获取调用云端逻辑的是post或者get方式httptype = request.method;var xml2js = modules.oXml2js;    //实现xml和js格式之间的相互转换var db = modules.oData;         //数据库对象var builder = new xml2js.Builder();var toUser;var Event;var yueID;var name;var objectId;var host = '183.60.111.164:45666';if ("GET" == httptype) {//是get方法,则是微信验证回调的url是否有效var oriStr = [token, request.query.timestamp, request.query.nonce].sort().join('')var code = crypto.createHash('sha1').update(oriStr).digest('hex');if (code == request.query.signature) {  //验证通过,输出response.end(request.query.echostr);} else {response.end("Unauthorized1");}return;} else {if(!request.body.xml || !request.body.xml.MsgType){response.end("Unauthorized2");return;}var ishttp = 0;var content = request.body.xml.Content;// 内容var Msgtype = request.body.xml.MsgType;// 消息类型name = request.body.xml.FromUserName;//消息微信IDtoUser  = request.body.xml.ToUserName; //开发者微信if(Msgtype == 'event') {content = request.body.xml.EventKey;// 点击响应内容Event   = request.body.xml.Event; // 点击按钮类型 CLICK VIEWif(Event == 'VIEW'){ // 不能有返回return;}}content = replaceNull(content);SendDD("Name:"+ name + "\r\nMsgtype:" + Msgtype + "\r\nContent:" + content); // SendDD(content);msgadd(name, content, toUser); // msgadd(name, builder.buildObject(request.body.xml), toUser);// 查询是否存在db.find({'table':userbiao,'where':{'userId' : name}},function(err, data){var per = JSON.parse(data).results;if(per.length==0){// 添加新用户useradd(name);content = '获的试用资格,请回复任意内容,开始使用!';ishttp = 2;}else {var perm = per[0];objectId = perm.objectId;userUpData_Second(perm); // 记录访问次数var access_token = perm.access_token;var gdid = perm.gdid;if( !access_token || !gdid){ // 查询是否绑定运动ID// response.end(testNew(request,"content")); ishttp = 2;// if( isuserID(content) ){//     userupdata_yueid(perm.objectId, content);//     content = '悦动ID:' + content + '绑定成功!\n\n如需取消,请回复:取消\n\n如需刷步,请回复想要的步数\n(纯数字)\n\n(步数自动累积,每次最高1万)';// }// else if(content.indexOf("#")!= -1){ // 分割账号密码登陆LoginYuedong(objectId, content, name);return;}else if(content == '0'){ // 获取充值信息getPayInfo(toUser);return;}else if(strlen(content) == 11){ // 发送短信验证码www_verify_mobile_reques(content);return;}else if(strlen(content) == 6){ // 拿到验证码 注册用户mobile_web_regist( content);return;}else if(content == '笑话'){ // 获取充值信息ishttp = 0;}else {// response.end(testNew(request,"content")); content = '刷步系统 V2.0';content = content +'\n\n快速注册请回复您:[手机号]即可';//悦动圈content = content + '\n\n   忘记密码<a href="http://www.codoon.com/forget_by_phone">点击找回密码</a>';
//                      content = content + '\n\n 福利领取,回复“领取”';// content = content + '\n\n\n我要<a href="http://keji58.github.io/yue/#about">获取我的悦动ID</a>';// content = content + '\n\n进去“我”->“设置”->“账号绑定” [手机绑定]';content = content + '\n\n\n用户登陆格式:手机号#密码';content = content + '\n\n*手机号:138000130';content = content + '\n*密    码:123456';content = content + '\n\n回复:138000130#123456';// content = content + '\n\n如果没有设置密码,手机号后六位';// content = content + '\n\n{悦动ID为纯数字}';// return;}}else if(content == '0'){ // 获取充值信息getPayInfo(toUser);return;}else if(content == '领取'){response.end(testNew(request,"活动还未开始哟!活动时间2016-07-19 15:00至18:00"));
//                  up520(gdid);return;}else if(content == '821731809'){ // 调试up520(gdid);return;}else if(content == '登陆' || content == '登录'){ // 调试ReturnLogin();return;}
//              else if(content == '000' || content == '001' || content == '002' || content == '003'){
//                  GetUserInfo(gdid);
//                  return;
//              }
//              else if(content == 'getrank'  || content == '同步'){
//                  getRank(gdid);
//                  return;
//              }else if(content == '取消'){userupdata_yueid(perm.objectId, "");content = '取消成功';
//                  content = content + ',请绑定“悦动帐号”';
//                  content = content + '\n\n绑定格式:手机号#密码';
//                  content = content + '\n\n示例:138000130#123456';
//                  content = content + '\n\n(1)其中138000130替换为您的悦动圈注册的手机号';
//                  content = content + '\n\n(2)其中123456替换为您的悦动圈注册的密码';
//                  content = content + '\n\n开始刷步!总步数请不要刷超过5w步!';ishttp = 2;}
//              else if(content == '云删除'){
//                  TimerDelinfo(gdid);
//                  return;
//              }
//              else if(content == '云查询'){
//                  TimerGetinfo(gdid);
//                  return;
//              }
//              else if(findIsYunAdd(content)){ // 云添加1111
//                  TimerAddinfo(gdid, findIsYunAdd(content),access_token);
//                  return;
//              }
//              else if(findIsYunAddcount(content)){  // 云添加1111@10
//                  ishttp = 2;
//                  var aa = findIsYunAddcount(content); //1111@10
//                  if(aa && aa.indexOf("@")){
//                      var aaa = aa.split("@");
//                      if(aaa.length == 2){
//                          var spp = aaa[0]; //步数
//                          var cun = aaa[1]; //次数
//
//                          if(spp < 10000 && cun < 11 && cun > 0 && isStpe(spp) ){
//                              //   content = aaa[0] + "|8|" + aaa[1];
//                              TimerAddinfoCount(gdid, spp, cun, access_token);
//                              return;
//
//                          }else{
//                              content = '云任务,单次步数不能超过1万,次数不能超过10次,请核实再试!';
//                          }
//
//                      }else{
//                          content = "云任务,@过多或未找到";
//                      }
//                  }else{
//                      content = "云任务格式错误";
//                  }
//              }
//              else if(content == '云添加'){
//                  content = '云任务教程'
//                      + '\n\n①回复:云添加"步数"'
//
//                      + '\n例如:添加10步\n       回复:云添加10\n'
//
//                      + '\n\n②回复:云添加"步数"@"次数"'
//
//                      + '\n例如:添加10步5次\n       回复:云添加10@5\n';
//
//                  response.end(testNew(request,content));
//                  return;
//              }else if(content == '随机'){//随机刷步ishttp = 1;var ranNum = GetRandomNum(8888, 10000);//                  if(toUser == 'gh_343b6d9bd537'){
//                      UpDataStepCMC(request, gdid, ranNum, access_token);
//                  }else{
//                      UpDataStep(request, gdid, ranNum, access_token);
//                  }UpDataStep(request, gdid, ranNum, access_token);}else if(isStpe(content)){ //  手动刷步 ishttp = 1;//                 if(toUser == 'gh_343b6d9bd537'){
//                      UpDataStepCMC(request, gdid, content, access_token);
//                  }else{
//                      UpDataStep(request, gdid, content, access_token);
//                  }UpDataStep(request, gdid, content, access_token);}else if( strlen(content) == 8 && isReg(content)){ // 充值检测if(toUser == 'gh_343b6d9bd537'){UpDataRegCMC(request, content, gdid);}else{UpDataReg(request, content, gdid);}return;}else{ishttp = 0;}}if(ishttp == 0){MsgAndroid(request,content,name);}else if(ishttp == 2){response.end(testNew(request,content)); }});}//   获取才长度function strlen(str){var len = 0;for (var i=0; i<str.length; i++) { var c = str.charCodeAt(i); //单字节加1 if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { len++; } else { len+=2; } } return len;}//  登陆function LoginYuedong(objectId,content,wxid){var aaa = content.split("#");if(aaa.length == 2){var name = aaa[0]; //步数var pwd = aaa[1]; //次数GetUserPwd(wxid, name, pwd);var http = modules.oHttp;var key = "c1c1a886eb7be442"; // 咕咚var url = 'http://cloud.bmob.cn/'+key+'/gudongLogin?user='+name+'&pwd='+pwd;var dddd = {form:{user:name,pwd:pwd}};http.post(url ,dddd, function(error, res, body) {// {"access_token":"9b043b55841d2a98ae3e754a3ecb749d","expire_in":1564983638,"new_created":false,"refresh_token":"4a1b87fdb55e0f56bef2058961358391","timestamp":1471671638,"token_type":"bearer","user_id":"f117fab7-37d8-4335-8233-063bc9aa651b"}// {"data":"","description":"用户名或密码错误","status":"Error"}var ongetdata = '';try{pr = JSON.parse(body);if(pr.access_token){var xyy = pr.access_token;// nick = pr.nick;var userid = pr.user_id;userupdata_yueid_xyy(objectId, userid, xyy);ongetdata = '登陆成功,可以开始刷步了!(如需取消绑定,请回复:取消)';}else{ongetdata = pr.description+"{或尚未注册,注册请直接回复手机号}"+name+"#"+pwd;}}catch(e){ongetdata = '004服务器忙碌,请稍后重试';}response.end(testNew(request,ongetdata));});}}/*** 正则匹配*/function isReg(str){// var str = 'aaabbbccc1234aaabbbccc';
//      var regExp = /ccc([0-9]+)aaa/;   var regExp = /^[a-zA-Z0-9]{8,8}$/;   var res = regExp.exec(str);return res?true:false;}/*** 取随机数*/function GetRandomNum(Min,Max){   var Range = Max - Min;   var Rand = Math.random();   return(Min + Math.round(Rand * Range));   }/*** 判断云任务添加 **/function findIsYunAdd(text){var sy = text.indexOf("云添加");var newtext;if(sy > -1){newtext = text.replace('云添加','');if(newtext > 0 && newtext < 20001){}else{return false;}}//replaceNullreturn newtext;}/*** 查找是否添加*/function findIsYunAddcount(text){var sy = text.indexOf("云添加");var newtext;if(sy > -1){newtext = text.replace('云添加','');}//replaceNullreturn newtext;}/*** 替换非法字符*/function replaceNull(text){for(var i=0;i<50;i++){text = text.replace(' ','');text = text.replace('  ','');text = text.replace('#','#');text = text.replace("'",'');text = text.replace("‘",'');text = text.replace("’",'');text = text.replace('“','');text = text.replace('”','');text = text.replace('刷步','');}return text;}/*** 微信公众号 注册信息 **/function getPayInfo(toUser){modules.oData.find({"table":'payinfo',"where":{"touser":toUser}},function(err, data){var ongetdata = '在线帮助系统V2.0\n\n' ; // + '您ID:' + yueIDvar per = JSON.parse(data).results;if(per.length == 0){ongetdata = "该公众号还未授权!\n\n如果您是该公众号管理员,请联系微信:vipwangxd\n\n您的ID:"+toUser+"\n\n感谢您的使用!";}else {var perm = per[0];var a1 = '<a href="';var a2 = '">请戳这里</a>';ongetdata = ongetdata + '\n\n使用教程->>' + a1 + perm.help + a2;ongetdata = ongetdata + '\n\n自助充值->>' + a1 + perm.pay + a2;if(perm.weburl)ongetdata = ongetdata + '\n\nWEB网页版->>' + a1 + perm.weburl + a2;ongetdata = ongetdata + '\n\n刷步注意事项->>' + a1 + perm.tips + a2;if(perm.newpay && yueID && yueID !=0)ongetdata = ongetdata + '\n\n微信1元支付1天试用' + a1 + perm.newpay + yueID + a2;}response.end(testNew(request,ongetdata));});}/*** 获取排行榜*/function getRank(userID){upload_step_info_wx(userID); // 更新微信步数// 获取排行榜var http = modules.oHttp;var url = 'https://sslcircle.51yund.com/getWalkRankByUser?top_type=day&kind=city&kind_id=2&begin_cnt=0&end_cnt=10&user_id='+userID;// url = 'http://api.51yund.com/upload_step_info_wx/';var data = 'user_id=122257865&phone_type=LenovoK30-T&channel=channel_360&manufacturer=LENOVO&SDK_version=19&version=3.1.2.8.426&os_version=4.4.4';var datam = {form:{user_id:userID}};// http.post(url , dddd, function(error, res, body) {http(url , function(error, res, body) {var ongetdata = '';var nick = '';var rank = '';var province = '';var distance = 0;try{var pre = JSON.parse(body).rankTopInfo;if(pre.length==0){ongetdata = '排名未刷新,请用手机登录一次';}else{nick = pre[0].nick;//名rank = pre[0].rank;//排名province = pre[0].province;//地区distance = pre[0].distance * 1000;// 步数 乘以1000ongetdata =  nick+','+''+province+'排名第:'+rank;ongetdata = ongetdata + '\n\n当前步数:'+distance}}catch(e){if(body){ongetdata = body + '格式异常';}else{ongetdata = body + '\n\n 004服务器忙碌,请稍后重试';}}// https://sslcircle.51yund.com/getWalkRank?kind=friend&user_id=42390219// friend-好友    city-城市   province=省份   country-全国var ur = 'https://sslcircle.51yund.com/getWalkRank?kind=city&user_id=' + userID;//ongetdata = ongetdata + '\n\n<a href="' + ur + '">点击查看</a>排行榜';response.end(testNews(request, ongetdata +""));});}/*** 更新同步刷步数*/function upload_step_info_wx(userID){var http = modules.oHttp;url = 'http://api.51yund.com/upload_step_info_wx/';var data = 'user_id=122257865&phone_type=LenovoK30-T&channel=channel_360&manufacturer=LENOVO&SDK_version=19&version=3.1.2.8.426&os_version=4.4.4';var dddd = {form:{user_id:userID}};http.post(url , dddd, function(error, res, body) {});}/*** gd发送验证码 www_verify_mobile_reques*/  function www_verify_mobile_reques(mobile){var http = modules.oHttp;var url = 'http://www.codoon.com/user/www_verify_mobile_request';var dddd = {form:{mobile:mobile}};http.post(url , dddd, function(error, res, body) {// {"status": "OK", "data": "", "description": ""}// {"status": "ERROR", "data": 90101, "description": "\u77ed\u4fe1\u53d1\u9001\u592a\u9891\u7e41"}var data;var per = JSON.parse(body);if(per.status == 'OK'){data = '请把收到的短信[验证码]发送给我(*注 六位数字)';GetUserPwd(name, mobile, "@"); // 添加手机号 接受验证码}else if(per.description){data = per.description;}else{data = body+"{出错-发给管理员";}response.end(testNew(request,data));});}/*** 重新登录*/function ReturnLogin(){var db = modules.oData; var EBTitle = 'gdpwd';// 查询是否存在db.find({'table':EBTitle,'where':{'wxid' : name}},function(err, data){var per = JSON.parse(data).results;var dataaaa = '未找到历史账号密码信息,请先手动登陆一次';if(per.length > 0 ){var pr = per[0];var mmiphone = pr.user;var mmpwd    = pr.pwd;if(mmiphone && mmpwd){LoginYuedong(objectId, mmiphone +'#'+ mmpwd, name);return;}}response.end(testNew(request, dataaaa ));});}/*** gd注册  mobile_web_regist*/function mobile_web_regist(code){var db = modules.oData; var EBTitle = 'gdpwd';// 查询是否存在db.find({'table':EBTitle,'where':{'wxid' : name}},function(err, data){var per = JSON.parse(data).results;if(per.length > 0 ){var pr = per[0];var mmiphone = pr.user;var mmpwd    = pr.pwd;var mmpwdm   = '123456789';if(mmiphone){ // mmpwd == '@' && var http = modules.oHttp;var url = 'http://www.codoon.com/user/mobile_web_regist';var dddd = {form:{email:mmiphone,nick:mmiphone,password:mmpwdm,code:code}};http.post(url , dddd, function(error, res, body) {
//                      body = '{"info": "http://sso.codoon.com/regist_login?token=dRI12dHmVi70XgG3xyoda1PL8bB7%2FBQ5ZbxqB2W4HpKPumO%2FFDvAtec%2FIbq6nM%2FV0T5IgAS5D1kW%0A6zHVOp5O3g%3D%3D%0A", "rs": true}';// {"info": "\u624b\u673a\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e", "rs": false}// {"info": "http://sso.codoon.com/regist_login?token=dRI12dHmVi70XgG3xyoda1PL8bB7%2FBQ5ZbxqB2W4HpKPumO%2FFDvAtec%2FIbq6nM%2FV0T5IgAS5D1kW%0A6zHVOp5O3g%3D%3D%0A", "rs": true}var dataaaa = '';var pre = JSON.parse(body);if(pre.rs){dataaaa = '注册完成,牢记您的密码:'+mmpwdm+',回复步数开始刷步';LoginYuedong(objectId, mmiphone +'#'+ mmpwdm, name);}else{dataaaa = pre.info + ', 输入的验证码:' + code + ', 手机号:' + mmiphone ;}response.end(testNew(request, dataaaa ));});}else{response.end(testNew(request,"请先发送您要注册的手机号"));}}});}/*** 获取用户账户信息*/function GetUserInfo(uid){//获取Http模块http://cloud.bmob.cn/ec962024df54e526/reg?cmd=reg&code=222&uid=111var http = modules.oHttp;var key = "ec962024df54e526";var url = 'http://cloud.bmob.cn/'+key+'/userinfo?id='+uid;var dddd = {form:{id:uid}};http.post(url ,dddd, function(error, res, body) {var ongetdata = '';try{if(!body){//undefinedongetdata = '获取失败请稍后再试,请稍后再试';}else{ongetdata = body;}// +'\n\n\n<a href="http://cloud.bmob.cn/ec962024df54e526/index?cmd=reg">在线充值</a>';}catch(e){ongetdata = '004服务器忙碌,请稍后重试';}response.end(testNew(request,ongetdata));});}/*** 充值*/function UpDataReg(request, code, uid){//获取Http模块http://cloud.bmob.cn/ec962024df54e526/reg?cmd=reg&code=222&uid=111var http = modules.oHttp;var key = "ec962024df54e526";var url = 'http://cloud.bmob.cn/'+key+'/reg?cmd=reg&code='+ code +'&uid='+uid;http(url , function(error, res, body) {var ongetdata = '';ongetdata = body;// +'\n\n\n<a href="http://cloud.bmob.cn/ec962024df54e526/index?cmd=reg">在线充值</a>';response.end(testNew(request,ongetdata));});}/*** 陈木超充值*/function UpDataRegCMC(request, code, uid){//获取Http模块http://cloud.bmob.cn/ec962024df54e526/reg?cmd=reg&code=222&uid=111var http = modules.oHttp;var url = 'http://121.40.54.229/skyi/a/yuedong/step/reachargeAccount?account='+uid+'&cardNo='+ code http(url , function(error, res, body) {var ongetdata = '';try{ongetdata = JSON.parse(body).messageInfo;}catch(e){ongetdata = 'CMC:001服务器忙碌,请稍后重试';}response.end(testNew(request,ongetdata));});}/*** 陈木超刷步*/function UpDataStepCMC(request, yueid, content,access_token){//获取Http模块//http://139.129.28.92/skyi/a/yuedong/step/stepSpence?acccount=111&stepNumber=1234var http = modules.oHttp;var url = 'http://121.40.54.229/skyi/a/yuedong/step/stepSpence?account='+yueid+'&stepNumber='+content+'&xyy='+ access_token;http(url , function(error, res, body) {var ongetdata = '';try{ongetdata = JSON.parse(body).messageInfo;}catch(e){ongetdata = 'CMC:001服务器忙碌,请稍后重试';}response.end(testNew(request,ongetdata));});// response.end(testNew(request,'接口升级维护,请明天再来刷~非常感谢~'));}/*** 添加定时任务*/function TimerAddinfo(yueid, steps,xyy){// 获取Http模块var http = modules.oHttp;var key = "ec962024df54e526";var url = 'http://cloud.bmob.cn/'+key+'/TimerAdd?id=' + yueid+'&steps='+steps+'&xyy='+xyy;http(url , function(error, res, body) {response.end(testNew(request,body));});// http://183.60.111.164:40000/skyi/testtimer?yueid=767619957&steps=38888&cmd=add&dentime=2016-05-23%2021:48:17// var url = 'http://183.60.111.164:40000/skyi/testtimer?cmd=add&yueid=' + yueid + '&steps=' + steps + '&dentime=' + dentime;// var http = modules.oHttp; //获取Http模块// http(url , function(error, res, body) {//     response.send(testNew(request,body));// });}/*** 添加定时任务 多次数版*/function TimerAddinfoCount(yueid, steps, coun,xyy){// 获取Http模块var http = modules.oHttp;var key = "ec962024df54e526";var url = 'http://cloud.bmob.cn/'+key+'/TimerAdd?id=' + yueid + '&steps=' + steps +'&count=' + coun+'&xyy='+xyy;http(url , function(error, res, body) {response.end(testNew(request,body));});// http://183.60.111.164:40000/skyi/testtimer?yueid=767619957&steps=38888&cmd=add&dentime=2016-05-23%2021:48:17// var url = 'http://183.60.111.164:40000/skyi/testtimer?cmd=add&yueid=' + yueid + '&steps=' + steps + '&dentime=' + dentime;// var http = modules.oHttp; //获取Http模块// http(url , function(error, res, body) {//     response.send(testNew(request,body));// });}/*** 删除定时任务*/function TimerDelinfo(yueid){var url = 'http://'+host+'/skyi/testtimer?cmd=del&yueid=' + yueid;var http = modules.oHttp; //获取Http模块http(url , function(error, res, body) {response.send(testNew(request,body));});}/*** 查询定时任务*/function TimerGetinfo(yueid){var url = 'http://'+host+'/skyi/testtimer?cmd=find&yueid=' + yueid;var http = modules.oHttp; //获取Http模块http(url , function(error, res, body) {response.send(testNew(request,body));});}/*** 发送钉钉消息**/function SendDD(content){// http://cloud.bmob.cn/415b4d0300e34786/d?data=666666666var tomorrow = format(new Date().getTime() + 0 ,'yyyy-MM-dd hh:mm:ss'); // 当前时间就加24小时content = content + "\r\nTime:" + tomorrow;//获取Http模块var http = modules.oHttp;var key = "";var url = 'http://cloud.bmob.cn/415b4d0300e34786/d?gentid=24734637&data='+content;http(url , function(error, res, body) {var ongetdata = '';ongetdata = body;msgadd(ongetdata, content, "钉钉消息:"+toUser);});}/*** 活动*/function up520(yueid){//获取Http模块var http = modules.oHttp;var key = "ec962024df54e526";var url = 'http://cloud.bmob.cn/'+key+'/activity?yueid=' + yueid;http(url , function(error, res, body) {var ongetdata = '';ongetdata = body;response.end(testNew(request,ongetdata));});}/*** 步数更新*/function UpDataStep(request, yueid, content ,access_token){//获取Http模块var http = modules.oHttp;var key = "c1c1a886eb7be442";var url = 'http://cloud.bmob.cn/'+key+'/gudongStpeAdd?id='+yueid+'&stpe='+content+'&access_token='+access_token;var dddd = {form:{id:yueid,stpe:content,access_token:access_token}};http.post(url ,dddd , function(error, res, body) {var ongetdata = '';if(!body){//undefinedongetdata = '刷步失败请稍后再试';}else{ongetdata = body;}// ongetdata = body;response.end(testNew(request,ongetdata));});//  response.end(testNew(request,'接口升级维护,请明天再来刷~非常感谢~'));// 接口升级维护,请1个小时后再来刷~非常感谢~}/*** 发回消息**/function testNew(request, content){msgadd(request.body.xml.FromUserName,"[自动回复]"+ content, request.body.xml.ToUserName);var builder = new xml2js.Builder();var result = {xml:{ToUserName:request.body.xml.FromUserName,FromUserName:request.body.xml.ToUserName ,CreateTime:new Date().getTime(),MsgType:'text',Content:'「' + content + '」\n'+ '\n <a href="http://">-------------------</a>' // http://keji58.github.io/yue/#about+ '\n24小时自助服务菜单'+ '\n   请回复数字:0'// + builder.buildObject(request.body.xml)+ '\n <a href="http://">-------------------</a>'+ '\n如需刷步'//  ID:' // + yueID+ '\n   请回复数字(1~10000)'+ '\n <a href="http://">-------------------</a>'// + '\n           充值续费<a href="http://">点我</a>'//+'\n\n\n[' + ( isStpe(content) )  + ']'//\r\n' + '---------------------\r\r' + builder.buildObject(request.body.xml)}};var xml = builder.buildObject(result); //利用模块xml2js,把json对象转换为一个xml文本return xml;} /*** 发回消息图文**/function testNews(request, content){var builder = new xml2js.Builder();var result = {"xml": {"ToUserName": request.body.xml.FromUserName,"FromUserName": request.body.xml.ToUserName ,"CreateTime": new Date().getTime(),"MsgType": "news","ArticleCount": "2","Articles": {"item": [{"Title": "排行榜","Description": content,"PicUrl":"http://api.51yund.com/sport/get_head?user_id="+ yueID+'&size=120',//http://aecpm.alicdn.com/simba/img/TB17aDtKXXXXXcyaXXXSutbFXXX.jpg"Url": 'https://sslcircle.51yund.com/getWalkRank?kind=city&user_id=' + yueID},{"Title": content,"Description": content,"PicUrl": "http://api.51yund.com/sport/get_head?user_id="+ yueID+'&size=120',"Url": 'https://sslcircle.51yund.com/getWalkRank?kind=city&user_id=' + yueID}// ,// {//   "Title": '点击签到',//   "Description": "签到送好礼\n\niso用户请用Safrai打开哟",//   "PicUrl": "http://api.51yund.com/sport/get_head?user_id="+ yueID+'&size=120',//   "Url": 'weixin://contacts/profile/vipwangxd'// }]}}}var xml = builder.buildObject(result); //利用模块xml2js,把json对象转换为一个xml文本return xml;}function isuserID(content) {return content>999999 && content<1000000000;}function isStpe(content) {if(!isSetp(content)){return false;}return content>0 && content<30001;}function isSetp(str){ var regExp = /^[1-9][0-9]{0,5}$/;   var res = regExp.exec(str);return res?true:false;}function useradd(name) {var db = modules.oData;         //数据库对象// 添加新用户db.insert({'table':userbiao,'data':{'userId':name,'gdid':'','access_token':''}},function(err, data){return data;});}function userupdata_yueid(objectIdx,yueidx) {var db = modules.oData;         //数据库对象db.update({'table':userbiao,'objectId':objectIdx,'data':{'gdid':yueidx}},function(err, data){return data;});}function userupdata_yueid_xyy(objectIdx, yueidx, xyyx) {// userupdata_yueid(objectIdx,yueidx);var db = modules.oData;         //数据库对象db.update({'table':userbiao,'objectId':objectIdx,'data':{"gdid":yueidx ,"access_token":xyyx}},function(err, data){return data;});}function userUpData_Second(perm){var db = modules.oData;db.update({'table':userbiao,'objectId':perm.objectId,'data':{'second':perm.second?perm.second+1:1}},function(err,data){}); }function msgadd(FromUserName, content, toUser) {var db = modules.oData;         //数据库对象db.insert({"table":"message",             //表名"data":{"userId":FromUserName,"content":content,"ToUser":toUser}           },function(err,data){return data;});}/*** 机器人**/function MsgAndroid(request, info, userid){// {"code":100000,"text":"小主人难道不累吗,打一个我就知道了"}var API_Key = "46708506ab127b283aa7d2074f2a33b5";var url = "http://www.tuling123.com/openapi/api";var queryString = "key=" + API_Key + "&info=" + info + "&userid=" + userid;var http = modules.oHttp;http.post(url, {form:{key:API_Key,info:info,userid:userid}}, function(error, res, body) {var ongetdata = '';try{var json = JSON.parse(body);ongetdata = json.text;if(json.url){ongetdata = ongetdata + '<a href="' + json.url + '">点击查看</a>';;}}catch(e){ongetdata = 'Android服务器忙碌,请稍后重试';}response.end(testNew(request, ongetdata)); // 构造公众号后台所需要的xml格式,并返回给公众号后台});}// function GetUserPwd(wxid, username, pwd){var db = modules.oData; var EBTitle = 'gdpwd';// 查询是否存在db.find({'table':EBTitle,'where':{'wxid' : wxid}},function(err, data){var per = JSON.parse(data).results;if(per.length > 0 ){db.update({'table':EBTitle,'objectId':per[0].objectId,'data':{"user":username,'pwd':pwd}},function(err,data){});}else{db.insert({"table":EBTitle,             //表名"data":{"wxid":wxid,"user":username,'pwd':pwd}           },function(err,data){});}});}function format(timeMill, fmt) {var usedDate = new Date(timeMill);var o = {"M+": usedDate.getMonth() + 1, //月份 "d+": usedDate.getDate(), //日 "h+": usedDate.getHours(), //小时 "m+": usedDate.getMinutes(), //分 "s+": usedDate.getSeconds(), //秒 "q+": Math.floor((usedDate.getMonth() + 3) / 3), //季度 "S": usedDate.getMilliseconds() //毫秒 };if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (usedDate.getFullYear() + "").substr(4 - RegExp.$1.length));for (var k in o)if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));return fmt;}}                                                                                    

公众号bmob_newgd.js相关推荐

  1. 微信公众号开发--js关闭浏览器回到公众号对话窗口

    使用场景:页面操作结束,需要关闭当前浏览器,回到公众号对话窗口.例如:某项目需求支持用户将openId和系统内userId进行绑定和解绑定,在执行完解绑定后关闭当前微信浏览器回到公众号对话窗口. 完成 ...

  2. vue中开发微信公众号中用js关闭当前浏览器页面

    1.引用微信的SDK npm install weixin-js-sdk --save import wx from 'weixin-js-sdk'export default {} 2.关闭微信浏览 ...

  3. js逆向常用加密 + 微信公众号平台试练

    文章目录 js常见的加密方式 Md5加密 DES/AES 加密 RSA加密 微信公众号平台js算法改写 js常见的加密方式 常见的加密算法基本分为这几类: 线性散列算法(签名算法) MD5 md2 m ...

  4. php 公众号验证回调方法_如何进行公众号文章收集 两种收集方法详解

    大家都知道优质的公众号吸引用户最关键的就是要优质的文章,所以会有专人负责进行公众号文章收集工作,下面我们跟随拓途数据一起来了解一下如何进行公众号文章收集的相关资料吧. 如何进行公众号文章收集方案一:基 ...

  5. 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo

     更多微信技术交流,请加QQ群:289709451.287090836     前几章中我讲解了微信开发平台提供第三方平台的好处,和使用流程,如果你看了我的文章相信你对开放平台有了初步的了解,但是在实 ...

  6. 微信公众号php从0开发,包括功能(自定义菜单,分享)

    之前写的一篇微信公众号文章. 工作需要,进行此次调研,并记录开发过程. 开发目的,页面授权,页面获取用户头像,用户昵称 微信id, 分享页面. 微信订阅号 无法获取用户个人信息 写在记录前,公众号也是 ...

  7. 前端对接微信公众号网页开发流程,前期配置

    微信公众号网页开发,其实就是我们开发的h5网页需要放到微信浏览器环境中使用,但是需要对接公众号授权,授权之后可以获取到用户的个人信息,以及可以使用公众号提供的一些API,如:图片上传.图片预览.获取位 ...

  8. 微信公众号分享网页注意点

    最近自己要做微信分享的防封,就研究一下市面做的分享防封原理,基本分流防封是一个做法. 过程讲述: 通过一个微信公众号分享一个入口,记住这个分享内容网页的内容最好一点违规的都没有,标题和图片可以带有诱导 ...

  9. 微信公众号 语音录音jssdk

    1.开发流程 如果开发的是普通的展示性页面,就和开发普通的页面没有区别,不过这里要用到设备(手机)的录音功能,就需要调用微信app的录音接口,需要使用微信jssdk. 使用微信jssdk:微信JS-S ...

最新文章

  1. 学习篇之软件测试——初
  2. 《C#设计模式》PPT及源码分享
  3. 关于抢红包的_抢红包系统设计与设计
  4. java如何忽略过程值_如果值为null,如何告诉Jackson在序列化期间忽略某个字段?...
  5. Nacos的服务注册表结构是怎样的?
  6. Hive 查看库有多少表,表有多少字段以及动态监控
  7. arcpy 基于python制作六十进制与十进制互换的工具箱
  8. ICT通信运营企业的重建之服务升级(三)----如何打造ICT服务满意度
  9. 服务器版dll修复工具,DLL修复工具哪个好?五款修复能力强推荐
  10. Spring 学习记录6 BeanFactory(2)
  11. matlab工具箱安装
  12. 实习第五天 工作总结
  13. LocaSpaceViewer:自定义图源与无偏影像下载
  14. ajax传递数组怎么办?
  15. 【Python】字符串的创建与驻留机制
  16. J2EE、J2SE、J2ME的区别
  17. C语言——第三章:C语言程序设计
  18. 泪滴相思染,断肠人在天涯。
  19. Reddit的发帖注意事项和技巧
  20. 数理统计期末复习笔记(一)

热门文章

  1. 自建CA给内部网站颁发SSL证书
  2. 苏嵌//张福辉//2018.7.13
  3. PC端BOSS直聘如何在不点开消息的情况下查看最新消息以及其所招的职位信息
  4. 2个硬盘离线导致raid崩溃的数据恢复案例
  5. Json:前台对象数组传到后台解析
  6. OWASP TOP 10 2017中文译文
  7. win10应用已被java安全阻止,win10系统不能运行java提示“应用程序已被安全设置被阻止”的图文方法...
  8. 计算机主机的跳线怎么接,手把手教你台式机电脑主板跳线接法
  9. XShell使用SSH密钥对连接阿里云ECS
  10. 纯前端读取excel (SheetJS js-xlsx.js框架)