node 发送http/https请求(post)

日期: 2017-11-10         浏览量: 2718

例子:iOS支付


流程:

    1.客户端向服务器发起购买请求,服务器为购买生产订单
    2.客户端向appstore发起购买
    3.客户端待appstore返回购买成功后拿到appstore的verify string(base64)和步骤1中的订单编号(唯一性)向服务器请求认证
    4.服务器向appstore发起verify的https认证请求,得到结果,更新订单支付状态,处理后续流程。


向appstore发起https请求:



//post 请求 
function post(url,data,fn){
    var verify= JSON.stringify(data);
    var parse_u=require('url').parse(url,true);
    var isHttp=parse_u.protocol=='http:';
    var options={
        host:parse_u.hostname,
        port:parse_u.port||(isHttp?80:443),
        path:parse_u.path,
        method:'POST',
        headers:{
            'Content-Type' : 'Keep-Alive',
            'Content-Length':verify.length
        }
    };
    var H = isHttp?'http':'https';
    var http_ = require(H);
    var req = http_.request(options,function(res){
        var _data='';
        res.on('data', function(chunk){
            _data += chunk;
        });
        res.on('end', function(){
            fn!=undefined && fn(_data);
        });
    });
    req.write(verify);
    req.end();
}