微信互为好友才能解封投票如何才能够安全有效?

欢迎各位指正,转载请把链接带上&&/xuange306/p/4971702.html
前期准备工作
  1:如果你没有服务器,那你需要一个内网映射工具:我用的是《花生壳》(PS:这不是广告),花生壳在实名认证是需要8RMB的认证费,之后就可以永久使用了,并且支持80端口映射,
    注:花生壳在免费申请时要申请内网,不要申请公网。
  2:nodeJS 最新版本,安装教程自行上网搜索
  3:一个注册号的微信公众号,自行申请,这里不做说明,网上教程已经比较成熟;
花生壳使用教程:
  下载地址:&/download/
  安装:没有需要注意的
  注册账号:
  进去点击个人注册,如果你是企业,那就点击企业注册;
  注册成功后登陆客户端
  登陆后具体怎么做我忘了,(省略实名认证过程)总之会让你支付8RMB,付款后就可以使用了
  这时你应该已经生成了自己的映射域名了;
  双击域名
  注意的地方如上图,点击确定;添加成功了,再补充一点:上图中有个80端口,那是你本地服务器的端口,和你自己的端口保持一致就行了,比如你设置的是3000端口,你就改为3000;
nodeJS配置及使用:
  1:确认自己的nodeJS安装成功,在cmd中输入node -v&
    可以看到自己node的安装版本
  2:安装express4.x
    这里需要说明的是express4.x在使用上和express3.x略有不同;
    1:安装全局的express包
    在cmd任意位置执行以下代码
npm install -g express-generator
    2:cmd进入到你需要创建项目的目录下;我以我的D:/test 文件夹为例
    创建express项目,porjectName是你的项目文件夹名字,我这里以weixin命名
express porjectName
    这里我们在文件夹里可以看到已经创建好了一个文件夹,名字就是weixin
    这时再执行
cd weixin && npm install
    安装成功7个npm包后,我们就开始测试下我们的服务器能否正常启动!这里需要注意的是,express4.x创建的服务器默认端口为3000;如果需要改端口,bin/www文件里改
    我这里用的是webstorm10.0.3开发。
    启动服务器有两种方法,如果你也用的是webstorm。
      方法一:在cmd里输入
      
      方法二:在webstorm里的www文件里的任意位置单击右键,选择run &fileName&;
      
   测试服务器是否正常启动,在浏览器里输入localhost:3000
    到这里,我们的本地服务器就算是搭建完成了。
3:测试花生壳是否映射成功
  启动花生壳映射:这里注意,花生壳里的本地端口要和node服务器的端口一致!
  在浏览器里打开上图中&外网访问地址&!我们看到和在localhost:3000下访问的页面完全一样,这样就映射成功
4:公众号的接入配置:(在这里,你应该阅读一下微信开发者文档里的接入指南;地址:http://mp./wiki/16/1ee121cc3e.html)
  1:打开公众号平台:
    & &点击&接口配置&
     URL:就是我们映射好的外网地址;
     token:就是我们和微信后台约定好的令牌;
     秘钥:随机生成;
     加密方式:可以选择明文模式,也可以选择兼容模式;
      注意:此时我们还不能提交,因为我们还没有验证代码的编写;这是验证要求;
      
  首先:我们这里用到了另一个npm包;所以我们先需要安装这个npm包,打开之前的cmd,进去我的微信目录里输入:
    npm install crypto
    打开weixin/routes/index.
      
    将里面的代码改为:
    切记,代码里的token要改为你自己的token
var express = require('express');
var crypto = require('crypto');
var router = express.Router();
var token = "你自己规定的token"; //此处需要你自己修改!
/* GET home page. */
router.get('/', function(req, res, next) {
var signature = req.query.
var timestamp = req.query.
var nonce = req.query.
var echostr = req.query.
加密/校验流程如下: */
//1. 将token、timestamp、nonce三个参数进行字典序排序
var array = new Array(token,timestamp,nonce);
array.sort();
var str = array.toString().replace(/,/g,"");
//2. 将三个参数字符串拼接成一个字符串进行sha1加密
var sha1Code = crypto.createHash("sha1");
var code = sha1Code.update(str,'utf-8').digest("hex");
//3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
if(code===signature){
res.send(echostr)
res.send("error");
module.exports =
   & 代码就改好了!现在开始接入:
  填好就可以提交了!如果提示url超时,就重新点击提交!
    此处可能出现的问题:
      1:如果多次提交还是超时,则将映射地址输入浏览器里直接打开,看能请求到不,如果看到页面显示一个error,则重新点击提交,如果一直加载,则是花生壳问题,关闭重新打开花生壳!
      2:如果提示token验证失败,则是代码问题,查看代码哪里有错误!修改错误后重新提交!
从此,我们就可以真正的做微信开发了,查看文档,完成自己想完成的任务去吧!
@转载请注明出处!
阅读(...) 评论()nodejs get传值的问题 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
访问:127.0.0.1/?a=1&b=2$c=3
var http = require(‘http’);
var url = require(‘url’);
http.createServer(function(req, res) {
res.writeHead(200, {‘Content-Type’: ‘text/html’});
res.write(‘Node.js’);
var res_data=url.parse(req.url,true);
res.write(res_data.query.b);
console.log(res_data.query);//控制端输出
res.end(’’);
}).listen(80);
以上是我的代码;
我一直搞不明白
第一个问题
console.log(res_data.query);
这个代码终端会运行会被运行2次
结果为:{ a: ‘1’, b: ‘2’, c: ‘3’ }与{}
为什么会两次啊?
第二个问题
终端既然都输入了res_data.query 是集合 那么我客户端返回求情的参数是应该没有问题的
可是还是有错
res.write(res_data.query.b);
参数必须为first argument must be a string or Buffer 字符串
我改成 res.write(res_data.query.b+’’);加一个空字符 强制转化为字符串 就没报错了
为神马啊啊啊
第一个问题
当我们在服务器访问网页时,我们的服务器可能会输出两次“Request received.”。那是因为大部分服务器都会在你访问
/时尝试读取
我用你的代码运行没错啊!
127.0.0.1/?a=1&b=2$c=3
有$这个???
客户端是没错的
好眼里啊,就是哪里有错
但是B的值也应该出来呗
可惜终端还是有错
b = “2$c=3”
因为data.query是一个序列化的字符串,js中字符串是不能通过xx.b获取自身的对象属性的,所以你的data.query.b返回的是一个null
当用res.write()的时候参数必须是string和buffer类型的
你null + “” 是将null强转为&null&
在127.0.0.1/?a=1&b=2$c=3后续的请求如
会导致res_data.query.c是undefined,res.write(undefined)肯定要报错啊
自己都找出答案来了
结果还不知道
再多问一个问题,如何屏蔽访问这个啊
favicon.ico
这个是默认访问的,可以拦截它。
if (req.url === ‘/favicon.ico’) {
res.writeHead(200, {‘Content-Type’: ‘image/x-icon’} );
res.end();
看来还是只有手动来阻止啊
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的自己写的代码太少,有时候前后台传值还写的不是很熟练,现在总结一下,加深下印象。
1.jquery的Ajax传值
----》前台到后台
期望功能:把前台用户输入的信息保存在数据库里。
前台jsp代码:
function saveUserInfo(){
&&var params = {};//定义一个数组
&&var userNO = jq("#userNO").val();//把前台页面上的值都赋予一个变量&&var userName = jq("#userName").val();&&var phoneNumber = jq("#phoneNumber").val();
&&params["userNO"] = userNO ;//把这些变量都存在这个数组里&&params["userName"] = userN&&params["phoneNumber"] = phoneN
&&jq.ajax({&&&&&&&&type : "post",&&&&&&&&url : "&%=basePath%&personalSetting/personalSettingSaveAll.do",//找到action里相应的方法&&&&&&&&data : params,&//把数组的值赋给data,把上面的param改为data,这里就能直接去掉&&&&&&&&dataType : "text",//根据数据类型选择text、jason等&&&&&&&&success : function(data) {&&&&&&&&&&&alert(msg); //msg可以在后台Action配置,也可以在这里直接写提示信息&&&&&&&&},&&&&&&&&error : function(data) {&&&&&&&&&&alert("msg");&&&&&&&&}&&&&&&&});&&&&&&&&}&&}
后台Action代码:
@SuppressWarnings({ "unchecked", "unused", "rawtypes" })@RequestMapping(value =&"/personalSetting/personalSettingSaveAll.do", method = RequestMethod.POST)public void saveAll(ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {&&&&response.setCharacterEncoding("UTF-8");&&&&HttpSession session = request.getSession();&&&&String userNO&&= request.getParameter("userNO")+"";&&&&String userName = request.getParameter("userName")+"";&&&&String phoneNumber = request.getParameter("phoneNumber")+"";&&&&&&&&&PersonalSettingEntity pSE = new PersonalSettingEntity();&&&&&if(!("".equals(userNO))||"".equals(userName )||"".equals(phoneNumber ))){&//如果都不为空&&
&&&&&&&&pSE.setUserNO(userNO);&&&&&&&&pSE.setUserName(userName);&&&&&&&&pSE.setPhoneNumber(phoneNumber);&&&&&&&&PersonSettingService.saveProcessSetting(pSE);&&&&&&&&msg = "保存成功";&&&&}else{&&&&&&&&msg = "填写不完整";&//可以在前台校验,这里为了举例子&&&&}&&&&&&&&response.getWriter().print(msg); //这里的msg是text数据,所以前台数据类型是text。}
----》后台到前台
期望功能:把数据库里的用户信息显示到前台页面。
后台Action代码:
@SuppressWarnings({ "unchecked", "unused", "rawtypes" })@RequestMapping(value = "/personalSetting/personalSettingInitAll.do", method = RequestMethod.POST)public void qureyAll(ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {&&&&response.setCharacterEncoding("UTF-8");&&&&HttpSession session = request.getSession();&&&&String userId = request.getSession().getAttribute("currentUserId").toString();&&&&PersonalSettingEntity pSE = PersonSettingService.getPersonalSetting(Long.valueOf(userId));&&&&&&&&response.getWriter().print(JSONArray.fromObject(pSE).toString());}
前台jsp代码:
function get(){&&&jq.ajax({&&&&&&&&&type : "post",&&&&&&&&&url : "&%=basePath%&personalSetting/personalSettingInitAll.do",&&&&&&&&&dataType : "json",&&&&&&&&&success :function (data) {&&&&&&&&&&&&&&&&&&&&jq.each(data,function(index){&&&&&&&&&&bean = data[index];&&&&&&&&&&jq("#userNO").attr("value",bean.userNO);&&&&&&&&&&jq("#userName").attr("value",bean.userName);&&&&&&&&&&&jq("#phoneNumber").attr("value",bean.phoneNumber);&&&&&&&&&&&}&&&&&&&&&&&&&&&&&&&&&&&&&&&},&&&&&&&&&error :function (data){&&&&&&&&&&&&alert("系统出错!");&&&&&&&&&}&&&});&&&}&
阅读(...) 评论()}

我要回帖

更多关于 微信视频多大才能发送 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信