0.2.2 • Published 9 years ago

yeepay v0.2.2

Weekly downloads
6
License
ISC
Repository
github
Last release
9 years ago

yeepay-易宝支付 SDK

仅支持Node的版本小于等于0.10.X

易宝支付回调

异步回调是post请求,以字节流的方式回送数据。 成功支付的同步回调是get请求,同时带有data和encryptkey参数。 支付失败同步回调是get请求,不带有data和encryptkey参数。

API

webPay

queryOrder

paySuccess

getStopNotifyData

withdraw

drawRecord

authBind

bankcardCheck

invokebindbankcard

confirmbindbankcard

unbindbankcard

drawvalidamount

创建订单,异步回调数据解析以及同步回调数据解析

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+'<script type="text/javascript">setTimeout(function(){var a = document.createElement("a");if(!a.click) {window.location = "'+redirectUrl+'";return;}a.setAttribute("href", "'+redirectUrl+'");a.style.display = "none";document.body.appendChild(a);a.click();},3000)<\/script>');
});
// 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);

订单查询接口

payInstance.queryOrder({
	orderid:"订单id"
},function(err,data){
	//交易记录查询
	data =>{
		code: 0,
		msg: 'success',
		data:{
			amount: 700,
			bank: "农业银行",
			bankcardtype: 1,
			bankcode: "ABC",
			cardno: "622************9577",
			closetime: 1433372844,
			currency: 156,
			merchantaccount: "***",
			orderid: "1234567700244123373146",
			ordertime: 1433372758,
			productcatalog: 30,
			productdesc: "考拉理财,开启懒人理财生活。",
			productname: "考拉理财",
			refundtotal: 0,
			sourceamount: 700,
			sourcefee: 0,
			status: 1,//0:待付,1:已付,2:已撤销,3:阻断交易.交易成功以判断status为1为准
			targetamount: 700,
			targetfee: 0,
			type: 1,
			yborderid: ""
		}
	}
});

异步或者同步回调进行数据解析的函数,判断是否支付成功

payInstance.paySuccess({
	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"
},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: ''//易宝流水号
			} 
		}
	}
});

获取终止异步回调的相应字符串

注:当向yeepay发送字符串时,代表商户已经成功处理回调,yeepay将终止异步回调。

//wap异步回调数据
res.send(payInstance.getStopNotifyData());

处理用户提现接口

payInstance.withdraw({
	'requestid':'',
	'identityid':'',
	'cardno':'',
	'amount':100,
	'userip':'0.0.144.241',
	'ua':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/41.0.2272.76 Chrome/41.0.2272.76 Safari/537.36'
},function(err,body){
	if(err){
		res.send(err);
	}else{
		var parseData = payInstance.parseCommon(body.data,body.encryptkey);
	}
})

用户提现接口查询

payInstance.drawRecord({
	requestid:'',
	ybdrawflowid:''
},function(err,body){
	if(err){
		res.send(err);
	}else{
		var parseData = payInstance.parseCommon(body.data,body.encryptkey);
		res.json(200,parseData);
	}
})

绑卡查询接口

payInstance.authBind({
	'identityid':'**'
},function(err,body){
	if(err){
		console.log(err);
	}else{
		data=>{ 
			code: 0,
			msg: 'success',
			data: 
			{ 
				cardlist: [
					{
						"bankcode":"",
						"bindid":"",
						"bindvalidthru":,
						"card_last":"",
						"card_name":"",
						"card_top":"",
						"merchantaccount":"",
						"phone":""
					}
				],
				identityid: '***',
				identitytype: 2,
				merchantaccount: '***' 
			} 
		}
	}
});

检查是否为有效的银行卡

//商户交互页面,让用户输入卡信息后,先调用本接口检查是否为有效的银行卡(但并不代表是投资通
支持的银行卡,投资通支持的银行卡请见附录),然后再进行支付请求,以提高支付成功率。
payInstance.bankcardCheck('6227003300000000000',function(err,body){
	var parseData = payInstance.parseCommon(body.data,body.encryptkey);
	//parseData = > 
	// {
	// 	code: 0,
	// 	msg: "success",
	// 	data: {
	// 		bankcode: "CCB",
	// 		bankname: "建设银行",
	// 		cardno: "6227003300000000000",
	// 		cardtype: 1,//1:储蓄卡,2:信用卡,-1 未知银行卡
	// 		isvalid: 1,//0:无效卡号,1:有效的银行卡号
	// 		merchantaccount: "***"
	// 	}
	// }
	res.json(200,parseData);
})

绑卡请求接口

payInstance.invokebindbankcard({
	'identityid':"",
	'userip':'0.0.144.241',
	'requestid':'',
	'cardno':'',
	'idcardtype':'01',
	'idcardno':'',
	'username':'',
	'phone':''
	},function(err,body){
		var parseData = payInstance.parseCommon(body.data,body.encryptkey);
		console.log(parseData)
	}
)

确定绑卡接口

payInstance.confirmbindbankcard({
	'requestid':'',
	'validatecode':'',
	},function(err,body){
	var parseData = payInstance.parseCommon(body.data,body.encryptkey);
	console.log(parseData);
})

解绑卡接口

payInstance.unbindbankcard({
	'identityid':"",
	'bindid':''
},function(err,body){
	if(err){
		res.send(err);
	}else{
		var parseData = payInstance.parseCommon(body.data,body.encryptkey);
		console.log(parseData)
	}
})

可提现余额接口

payInstance.drawvalidamount(
	function(err,body){
	if(err){
		console.log(err);
	}else{
		var parseData = payInstance.parseNotAuthSign(body.data,body.encryptkey);
		console.log(JSON.stringify(parseData));
	}
});
0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.1

10 years ago