本文主要是演示的node.js使用表达创建订单的一个过程

首先注册码支付账号

https://codepay.fateqq.com/i/25823

增值服务-选择开通58元套餐或者豪华版套餐(如果您的网站每个月的流水大的话建议开通豪华版)

var express = require('express');
var router = express.Router();
router.all('/',function(req,res,next){
    var arr = {id:1,pay_id:“admin”,type:1,price:100}; //构造需要的参数参考通用文档
    var data = ksort(arr); //重新排序对象按照首字符开始排序
    var sign =“”;
    for(数据中的var键){
        sign + = data [key] ==''?'':key +“=”+ data [key] +“&”;
    }
    sign = sign.substring(0,sign.length  -  1); //去掉最后一个&字符
    var key = md5(sign +“替换密钥”); //替换为自己的密钥
    var url =“http://codepay.fateqq.com:52888/creat_order/?” +符号+'&sign ='+ key; //支付页面
    res.writeHead(302,{
        'Location':url //跳转到支付页面
    });
})
module.exports = router;

ksort = function(inputArr,sort_flags){// JS版对象排序
    var tmp_arr = {},
        keys = [],
        分拣机,我,k,那=这个,
        strictForIn = false,
        populateArr = {};

    switch(sort_flags){
        案例'SORT_STRING':
            //将项目比较为字符串
            sorter = function(a,b){
                返回that.strnatcmp(a,b);
            };
            打破;
        案例'SORT_LOCALE_STRING':
            //将项目比较为字符串,原始当前语言环境(从PHP6开始,使用i18n_loc_set_default()设置)
            var loc = this.i18n_loc_get_default();
            sorter = this.php_js.i18nLocales [loc] .sorting;
            打破;
        案例'SORT_NUMERIC':
            //用数字比较项目
            sorter = function(a,b){
                return((a + 0) - (b + 0));
            };
            打破;
        // case'SORT_REGULAR'://正常比较项目(不要更改类型)
        默认:
            sorter = function(a,b){
                var aFloat = parseFloat(a),
                    bFloat = parseFloat(b),
                    aNumeric = aFloat +''=== a,
                    bNumeric = bFloat +''=== b;
                if(aNumeric && bNumeric){
                    返回aFloat> bFloat?1:aFloat <bFloat?-1:0;
                } else if(aNumeric &&!bNumeric){
                    返回1;
                } else if(!aNumeric && bNumeric){
                    返回-1;
                }
                返回a> b?1:a <b?-1:0;
            };
            打破;
    }

    //列出关键名称
    for(k in inputArr){
        if(inputArr.hasOwnProperty(k)){
            keys.push(K);
        }
    }
    keys.sort(分拣机);

    //开始冗余
    this.php_js = this.php_js || {};
    this.php_js.ini = this.php_js.ini || {};
    //结束冗余
    strictForIn = this.php_js.ini ['phpjs.strictForIn'] && this.php_js.ini ['phpjs.strictForIn']。local_value && this.php_js
            .ini ['phpjs.strictForIn']。local_value!=='off';
    populateArr = strictForIn?inputArr:populateArr;

    //使用已排序的键名重建数组
    for(i = 0; i <keys.length; i ++){
        k = keys [i];
        tmp_arr [k] = inputArr [k];
        if(strictForIn){
            删除inputArr [k];
        }
    }
    for(i in tmp_arr){
        if(tmp_arr.hasOwnProperty(i)){
            populateArr [i] = tmp_arr [i];
        }
    }

    return strictForIn || populateArr;
}


var crypto = require(“crypto”);
var Buffer = require(“buffer”)。缓冲区;
md5 = function(data,codeBase){// MD5加密
    var buf = typeof data ==“string”?codeBase =='gbk'?iconv.encode(data,'gbk'):new Buffer(data):data;
    var str = buf.toString(“binary”);
    return crypto.createHash(“md5”)。update(str).digest(“hex”);
}
原文链接:https://www.jocat.cn/archives/14601,转载请注明出处。
0
显示验证码
没有账号?注册  忘记密码?