n-pay v2.0.3
支付服务
目前支持连连支付、易宝支付、pp钱支付、闪豆支付、宝付支付、汇付托管支付。类似ping++
注意发布logs,新增汇付支付,函数传参有所不同
安装
npm install n-pay
初始化
var nPay = require('n-pay');
var PAY = nPay({
appid:'your appid',
appkey:'your appkey',
serverDomain:'http://pay.kaolalicai.cn',
npay_version:'1.0',
npay_sign_type:'RSA',
cryptoConfig:{
'md5_key':'',//md5 key
'des_key':'',//des key,24个字符长度
'aes_key':'',//aes key,16个字符长度
'merchant_pri_key':'',
'npay_pub_key':''
}
})
//appid,appkey请向广州财略金融信息科技有限公司申请
API
##获取支付内容(html或者url)
pay(paymentConfig,orderInfo,cb)
- paymentConfig(object):支付渠道配置,配置channel和merchant_account,
- orderInfo(object):订单信息,必须包含字段:'order_id','user_id','amount','trans_time','reg_time','return_url','notify_url','order_desc';idcard,card_no,acct_name为可选
- cb(function):回调函数:err,data;data为objec,code为0时表示成功获取支付内容,data:支付内容,notify_url:服务异步回调地址(native app需要用到)
PAY.pay(
{
channel:'pay channel ,such as yeepay',
merchant_account:'your pay channel account'
},
{
'order_id':"abc_test",//订单id,长度必须小于等于32位
'user_id':"abc_user",//用户在商户系统中的id
'amount':0.01,//支付金额,元为单位
'trans_time':Date.now(),//交易时间(时间戳)
'reg_time':Date.now(),//用户在商户系统中的注册时间(时间戳)
'return_url':"http://www.kaolalicai.cn",//支付结果跳转页(同步)
'notify_url':"http://www.kaolalicai.cn",//支付结果通知地址(异步),只有支付成功才会像这个地址post数据
'order_desc':"test pay",//订单描述
'idcard':'',
'card_no':'',
'acct_name':'',
'reg_phone':'user register phone'//用户在商户系统中注册的手机号(channel为ppwallet时必传)
},
function(err,data){
if(!err && data.code === 0){
//todo,这里为支付的内容(url或一段html的form表单)
//web段使用例子:
//var data = data.data;
// if(/^http/.test(data)){
// window.location.href = data;
// }else{
// document.getElementsByTagName('body')[0].innerHTML = data;
// document.forms[0].submit();
// }
}else{
//todo,请求失败
}
}
)
查询订单是否支付成功
query(paymentConfig,queryInfo,cb)
- paymentConfig(object):支付渠道配置,配置channel和merchant_account,
- queryInfo(object):订单信息,必须包含字段:'order_id',
- cb(function):回调函数:err,data;data为objec,code为0时表示订单支付成功。
需要注意的是,pp钱包目前没有查询订单的接口,当code为-2时,需要去pp钱包后台确认订单最终支付情况。
PAY.query(
{
channel:'pay channel ,such as yeepay',
merchant_account:'your pay channel account'
},
{
'order_id':"abc_test"
},
function(err,data){
if(!err){
if(data.code === 0){
//todo,支付成功,商户可以进行订单更新或者发货了。
}else if(data.code === -2){
//todo,支付成功,但是需要去第三方支付平台确认最终支付情况。
}else{
//todo.支付不成功。
}
}else{
//todo,请求失败
}
}
)
获取系统中支持的支付渠道
getPayment(cb)
- 返回结果为json格式数据
- 返回json包含字段code,data,code 为0表示获取成功,其他则为失败。data为string
PAY.getPayment(
function(err,data){
if(!err){
if(data.code){
console.log(data.data);//string ,'yeepay,llpay,ppwallet'
}
}
}
)
回调处理(格式为json,包涵sign和ciphertext字段)
异步回调(post请求,带有参数sign,ciphertext)
同步回调(get请求,带有参数sign,ciphertext)
解密后的数据plaintext:plaintext.pay_result为字符串0表示支付成功
var parseData = PAY.paySuccess(sign,ciphertext,npay_sign_type);
if(parseData.success){
//todo,可以发货了
//订单详细信息,parseData.plaintext
//res.send(PAY.getStopNotifyData())
}
终止回调
res.send(PAY.getStopNotifyData())
当商户接收回调后,返回一段非空字符串,比如success将会终止回调
npay_version:2.0
2.0以上版本支持汇付支付,
npay_version
传值2.0新增字段pageType(页面类型,pc或者移动),merPriv商户私有域
获取终止异步回调的字符串需传入第三方返回的原始数据,即接口:
getStopNotifyData
汇付支付的时候需要传用户在汇付开户的用户客户号,即
third_user_id
字段,对应汇付原始字段UsrCustId
为适配汇付订单查询,查询接口新增字段queryTransType,充值订单为
SAVE
,提现订单为CASH
购买接口原路返回第三方支付的回调结果,字段名:origin,数据格式为json字符串(商户需自己调用JSON.parse进行解析).
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago