mic-alipay-mobile

    2.2.3 • Public • Published

    alipay

    MARK: This package is fork from https://github.com/Luncher/alipay

    NPM version Build Status David Status

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


    安装

     
    npm i mic-alipay-mobile -S
     

    基本使用

    const fs = require('fs')
    const Alipay = require('mic-alipay-mobile')
     
    const read = filename => {
      return fs.readFileSync(path.resolve(__dirname, filename))
    }
     
    //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'
    }
    return service.createOrder(data)
    .then(result => {
      assert(result.code == 0, result.message)
      assert(result.message == 'success', result.message)
    })
     

    说明

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

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

    {
      '0': 'success',
      '1': 'processing',
      '-1': 'error',
      '-2': 'permission denied',
      '-3': 'sign error'
    }

    接口返回格式

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

    为了方便异步处理,所有接口均返回Promise


    API 说明

    创建订单createOrder

    APP支付官方文档

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

    const service = new Alipay(options)
    const data = {
      subject: '辣条',
      out_trade_no: '1232423',
      total_amount: '100'
    }
    return service.createOrder(data)
    .then(result => {
      assert(result.code == 0, result.message)
      assert(result.message == 'success', 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'
    }
    return service.createWebOrderURL(data, basicParams)
    .then(result => {
      assert(result.code == 0, result.message)
      assert(result.message == 'success', 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'
    }
    return service.createPageOrderURL(data, basicParams)
    .then(result => {
      assert(result.code == 0, result.message)
      assert(result.message == 'success', result.message)
    })

    订单查询queryOrder

    订单查询官方文档

    const outTradeNo = '1232423'
    return service.queryOrder({ out_trade_no: outTradeNo })
    .then(result => {
      assert(result.code == -1, result.message)
      assert(result.message == 'error', result.message)
      assert(result.data.code === '40004')
      assert(result.data.sub_msg === '交易不存在')
    })

    取消订单cancelOrder

    取消订单官方文档

    const outTradeNo = 'foobar'
    return service.cancelOrder({ out_trade_no: outTradeNo })
    .then(result => {
      assert(result.code == -1, result.message)
      assert(result.message == 'error', result.message)
      assert(result.data.code === '40004')
      assert(result.data.sub_msg === '交易不存在')
    })

    验证支付结果verifyPayment

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

    异步通知校验makeNotifyResponse

    异步通知官方文档

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

    异步通知应答

    在接收到蚂蚁金服服务器的订单状态变更通知之后,需要进行应答,有两种(成功、失败)应答类型:

    import AlipayConfig from 'mic-alipay-mobile/config'
     
    console.log(AlipayConfig.ALIPAY_NOTIFY_SUCCESS) // 'success'
     
    console.log(AlipayConfig.ALIPAY_NOTIFY_FAILURE) // 'failure'
     

    交易关闭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 mic-alipay-mobile

    DownloadsWeekly Downloads

    3

    Version

    2.2.3

    License

    MIT

    Unpacked Size

    58.6 kB

    Total Files

    27

    Last publish

    Collaborators

    • michaelxu