Nocturnally Psychologizing Millipede

    alipay-sdk-plugin
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.3 • Public • Published

    alipay

    NPM version Build Status David Status

    蚂蚁金服开放平台Node.js SDK。


    安装

    npm i alipay-mobile -S

    基本使用

    const fs = require('fs')
    const Alipay = require('alipay-mobile').default
    
    const read = filename => {
      return fs.readFileSync(path.resolve(__dirname, filename))
    }
    //notify_url: 异步通知url
    //app_id: 开放平台 appid
    //appPrivKeyFile: 你的应用私钥
    //alipayPubKeyFile: 蚂蚁金服公钥
    const options = {
      app_id: '2016080100137766',
      appPrivKeyFile: read('./keys/app_priv_key.pem'),
      alipayPubKeyFile: read('./keys/alipay_public_key.pem')
    }
    
    const service = new Alipay(options)
    const data = {
      subject: '辣条',
      out_trade_no: '1232423',
      total_amount: '100'
    }
    const result = service.createOrder(data)
    assert(result.code == 0, result.message)

    说明

    详细参数请参考接口对应的官方文档

    构造函数支持的参数

    export interface AlipayOption {
      appPrivKeyFile:   string      // 应用私钥
      alipayPubKeyFile: string      // 支付宝公钥
      appId:            string      // 应用ID
      notifyUrl?:       string      // 支付宝异步通知URL
      gatewayUrl?:      string      // 接口网关地址
    }

    接口返回错误码以及错误信息

    export enum AlipayNormalResponseCode {
      OK                            = 0,
      EXCEPTION                     = -1,
      SIGNATURE_ERROR               = -2,
      SUCCESS                       = 10000,
      UNAVALIABLE                   = 20000,
      INSUFFICIENT_AUTHORIZATION    = 20001,
      MISSING_REQUIRED_ARGS         = 40001,
      INVALID_ARGS                  = 40002,
      PROCESSING_FAILURE            = 40004,
      PERMISSION_DENIED             = 40006
    }
    
    export enum AlipayPaymentResponseCode {
      SUCCESS         = '9000',
      PROCESSING      = '8000',
      FAILURE         = '4000',
      REPEAT_REQ      = '5000',
      USER_CANCEL     = '6001',
      NETWORK_ERROR   = '6002',
      UNKNOW          = '6004'
    }

    接口返回格式

    {
      code: 错误码,
      message: 错误信息,
      data: 蚂蚁金服返回的原始数据//可能为空对象
    }

    功能列表

    • [x] 创建订单
    • [x] 取消订单
    • [x] 订单查询
    • [x] 验证支付状态
    • [x] 订单状态异步推送
    • [x] 预创建订单
    • [x] 申请退款
    • [x] 退款查询
    • [x] 交易结算
    • [x] 关闭交易
    • [x] 账单下载地址查询
    • [x] 单笔转账到支付宝账户

    API 说明

    创建订单createOrder

    APP支付官方文档

    用于返回给APP,传递给支付宝端发起交易申请

    const service = new Alipay(options)
    const data = {
      subject: '辣条',
      out_trade_no: '1232423',
      total_amount: '100'
    }
    const result = service.createOrder(data)
    assert(result.code == 0, result.message)
    //result.data 用于返回给APP,传递给支付宝端发起交易申请

    创建网页订单createWebOrderURL

    手机网页支付官方文档

    该接口用于支付宝手机网页支付,服务端调用该接口生成一个URL返回给客户端, 客户端拿到该URL之后跳转到该URL发起支付请求。支付结束支付宝会跳转到客户端填写的return_url

    const service = new Alipay(options)
    const data = {
      subject: '辣条',
      out_trade_no: '1232423',
      total_amount: '100'
    }
    const basicParams = {
      return_url: 'http://xxx.com'
    }
    const result = service.createWebOrderURL(data, basicParams)
    assert(result.code == 0, result.message)

    创建pc端订单createPageOrderURL

    创建pc端订单官方文档

    const service = new Alipay(options)
    const data = {
      subject: '辣条',
      out_trade_no: '1232423',
      total_amount: '100'
    }
    const basicParams = {
      return_url: 'http://xxx.com'
    }
    const result = service.createPageOrderURL(data, basicParams)
    assert(result.code == 0, result.message)

    订单查询queryOrder

    订单查询官方文档

    const outTradeNo = '1232423'
    return service.queryOrder({ out_trade_no: outTradeNo })
    .then(result => {
      assert(result.code == '40004', result.message)
    })

    取消订单cancelOrder

    取消订单官方文档

    const outTradeNo = 'foobar'
    return service.cancelOrder({ out_trade_no: outTradeNo })
    .then(result => {
      assert(result.code == '40004', result.message)
    })

    验证支付结果verifyPayment

    App支付同步通知参数校验

    const params = {
      memo: "xxxx",
      result: "xxxx",
      resultStatus: "xxx"
    }
    return utils.verifyPayment(params)

    异步通知校验makeNotifyResponse

    异步通知官方文档

    const params = {
      sign: 'xxxxxxxx',
      sign_type: 'xxxxx',
      ...
    }
    
    return service.makeNotifyResponse(params)

    交易关闭tradeClose

    关闭交易官方文档

    const params = {
      out_trade_no: 'xxxxx'
    }
    return service.tradeClose(params)

    交易退款tradeRefund

    交易退款官方文档

    const params = {
      out_trade_no: 'xxxxx'
    }
    return service.tradeRefund(params)

    交易退款查询tradeRefundQuery

    交易退款查询官方文档

    const params = {
      out_trade_no: 'xxxxx'
    }
    return service.tradeRefundQuery(params)

    查询账单下载地址billDownloadQuery

    查询账单下载地址文档

    const params = {
      bill_type: 'trade',
      bill_date: '2017-05-06'
    }
    return service.billDownloadQuery(params)

    交易预创建tradePrecreate

    交易预创建官方文档

    const params = {
      out_trade_no: 'xxx',
      seller_id: 'asad',
      total_amount: '231wawsda',
      subject: '面包'
    }
    return service.tradePrecreate(params)

    交易结算tradeSettle

    交易结算官方文档

    const params = {
      out_request_no: 'xxx'
    }
    return service.tradeSettle(params)

    单笔转账到支付宝账户接口toaccountTransfer

    接口文档

    const params = {
      out_biz_no: "1234",
      payee_type: 'ALIPAY_LOGONID',
      payee_account: "user666",
      amount: "100"
    }
    
    return service.toaccountTransfer(params)

    LICENSE

    MIT

    Keywords

    Install

    npm i alipay-sdk-plugin

    DownloadsWeekly Downloads

    2

    Version

    1.0.3

    License

    MIT

    Unpacked Size

    94.9 kB

    Total Files

    70

    Last publish

    Collaborators

    • bigboxs