var express = require('express');
var app = express();
var yeepay = require('yeepay');
var url = require('url');
var port = 8007;
var host = "http://192.168.1.120:"+port;
// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world');
});
// test data
var testData = {
orderid:orderid,
transtime:parseInt(Date.now()/1000),
amount:2,
identityid:'12345678abcefgds',
userip:'172.17.253.112',
userua:'NokiaN70/3.0544.5.1 Series60/2.8 Profile/MIDP-2.0 Configuration/CLDC-1.1',
callbackurl:host+"/yp_callback",
fcallbackurl:host+"/yp_finish",
// idcardtype:"01",//易宝建议p2p平台支付的时候需要带上,处于安全考虑
// idcard:"440****4195",//易宝建议p2p平台支付的时候需要带上,处于安全考虑
// owner:'**军'//易宝建议p2p平台支付的时候需要带上,处于安全考虑
}
var payInstance = new yeepay();
// create order ,if success ,will redirect to yeepay pay's page
app.get('/webpay',function(req,res){
var orderid = payInstance.generateAESKey(16);
var redirectUrl = payInstance.webPay(testData);
res.send(redirectUrl+'
});
// pay finish page,sync
app.get('/yp_finish',function(req,res){
var url_parts = url.parse(req.url, true);
var query = url_parts.query;
var encryptkey = query.encryptkey;
var data = query.data;
payInstance.paySuccess({data:data,encryptkey:encryptkey},function(err,result){
if(!err && data.code === 0){
//同步处理成功
//data
{
code: 0,
msg: 'ok',
data:
{
amount: 1,//订单金额,以"分"为单位的整型
bank: '建设银行',//银行名称
bankcode: 'CCB',//银行缩写
cardtype: 1,//支付卡的类型,1 为借记卡,2 为信用卡
lastno: '',//支付的银行卡号
merchantaccount: '',//商户账户编号
orderid: '',//商户交易订单
status: 1,//0:待付,1:已付,2:已撤销,3:阻断交易
yborderid: ''//易宝流水号
}
}
}
});
});
// pay callback page async
// 易宝异步回调处理
app.post('/yp_callback',function(req,res){
var body = '';
req.on('data',function(chunk){
//console.log(Buffer.isBuffer(chunk))
body += chunk
});
req.on('end',function(){
console.log(body);
//body的值: data=2WDFjaiSBQUMVAAyI%2F3WceeXYep%2F5jjZkGVjokcWHmlNE%2BTj7PYj7CbFG08sISGle%2Bdjt57gxlJNInMi12BcgdUp8t7GRZGtuJX%2F4lJNRdmAQFwDGjD9CQl%2FxM1VYpdig%2FEloRArbvmlI8EQ%2BrJp5uMnRbUykcZx8uZY9eNKs0GWvUMUEk0nJ7ivpcJdjZ0lveFTr4hj7nn7%2BRaHhNPpvGilJIjz%2F4%2BpRMaH8osApF%2FpcFEx2QwuSriBFaQp5v9mJ11MQVOWTiZZU6j0%2FTimXpHNnXC0qfvtrWSC5%2BVZ82B%2BIyHnlRNkc6JsR8EsESkjMe0S58ikcxmYnv7EBuf0IXOz2wai8DPeZYnC4c43hzWi5rxLsAQTvtK%2BEAKy6bZtl%2FtTEVNYxKP82PeWix2bax7z%2FqCHw8J0UJ40JvYqrW6tuEIIXoVkMDBAAq9umDS0I%2BTTe%2FEg4V%2FPUs%2FREYsdUS3tmelDty%2Fmstc7tgUXNUBHt5PPfBLeL9oJXUuQlAtB&encryptkey=JusH9eWW4KelVHLi77IHpj4vo4TgDnis2QVAmkDCqwYCSeQgjWGVgIfVvJDD61HodAMUdZf4ivvTbvadbyEkmysqzcUrzFCGR1lqC1ZhaakmgeYUefn8OPrykB4V4jSkbuQKnLBNAWvkTPG6nBQW5mohz48yqI8RcedCDnGjrv0%3D
payInstance.paySuccess({data:body[0].split('=')[1],encryptkey:body[1].split('=')[1]},function(err,data){
if(!err && data.code === 0){
//已完成支付可执行订单更新或者发货了
//data
{
code: 0,
msg: 'ok',
data:
{
amount: 1,//订单金额,以"分"为单位的整型
bank: '建设银行',//银行名称
bankcode: 'CCB',//银行缩写
cardtype: 1,//支付卡的类型,1 为借记卡,2 为信用卡
lastno: '',//支付的银行卡号
merchantaccount: '',//商户账户编号
orderid: '',//商户交易订单
status: 1,//0:待付,1:已付,2:已撤销,3:阻断交易
yborderid: ''//易宝流水号
}
}
}
});
})
});
app.listen(port);
console.log('app listen on '+port);