npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

alipay-mobile

v4.0.2

Published

[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![David Status][david-image]][david-url] <!--[![Codecov Status][codecov-image]][codecov-url]--> <!--[![NPM download][download-image]][download-url]-->

Downloads

324

Readme

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