本文主要是演示的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,转载请注明出处。