3.0.9 • Published 6 years ago
alipay-mobile-ggabcd v3.0.9
alipay
蚂蚁金服开放平台Node.js SDK。
安装
npm i alipay-mobile -S基本使用
const fs = require('fs')
const Alipay = require('alipay-mobile')
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: 蚂蚁金服返回的原始数据//可能为空对象
}功能列表
- 创建订单
- 取消订单
- 订单查询
- 验证支付状态
- 订单状态异步推送
- 预创建订单
- 申请退款
- 退款查询
- 交易结算
- 关闭交易
- 账单下载地址查询
- 单笔转账到支付宝账户
API 说明
创建订单createOrder
用于返回给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
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
const params = {
  memo: "xxxx",
  result: "xxxx",
  resultStatus: "xxx"
}
return service.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
3.0.9
6 years ago