Nana Plays Minesweeper

    n-pay

    2.0.3 • Public • Published

    支付服务

    Build Status via Travis CI Coverage Status

    目前支持连连支付、易宝支付、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

    pay

    query

    getPayment

    paySuccess

    getStopNotifyData

    获取支付内容(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将会终止回调

    ## 发布logs
    • 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进行解析).

    Install

    npm i n-pay

    DownloadsWeekly Downloads

    6

    Version

    2.0.3

    License

    ISC

    Last publish

    Collaborators

    • navyxie