蚂蚁金服开放平台Node.js
SDK。
安装
npm i alipay-libs -S
基本使用
const fs = require('fs')
const Alipay = require('alipay-libs').default
const readFile = filename => {
return fs.readFileSync(path.resolve(__dirname, filename))
}
const options = {
app_id: '20180xxxxxxxxxxxx', // 应用ID
appPrivKeyFile: readFile('./pem/app_private_key.pem'), // 应用私钥
alipayPubKeyFile: readFile('./pem/alipay_public_key.pem'), // 支付宝公钥
notifyUrl: '', // 异步通知url(选填)
gatewayUrl: '', // 应用网关url(选填)
}
const service = new Alipay(options)
const data = {
subject: 'QQ充值中心',
out_trade_no: '1232423',
total_amount: '100'
}
const result = service.createOrder(data)
接口返回格式
{
code: '' // 错误码,
message: '', // 错误信息,
data: '' // 蚂蚁金服返回的原始数据(可能为空对象)
}
功能列表
- [x] 创建订单
- [x] 取消订单
- [x] 订单查询
- [x] 验证支付状态
- [x] 订单状态异步推送
- [x] 预创建订单
- [x] 申请退款
- [x] 退款查询
- [x] 交易结算
- [x] 关闭交易
- [x] 账单下载地址查询
- [x] 单笔转账到支付宝账户
API 说明
createOrder
创建订单
生成二维码后,展示给用户,由用户扫描二维码完成订单支付
const service = new Alipay(options)
const data = {
subject: 'QQ充值中心',
out_trade_no: '1232423',
total_amount: '100'
}
const result = service.createNativeOrderURL(data)
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)
createPageOrderURL
创建pc端订单
const service = new Alipay(options)
const data = {
subject: 'QQ充值中心',
out_trade_no: '1232423',
total_amount: '100'
}
const basicParams = {
return_url: 'http://xxx.com'
}
const result = service.createPageOrderURL(data, basicParams)
用于返回给APP,传递给支付宝端发起交易申请
const service = new Alipay(options)
const data = {
subject: 'QQ充值中心',
out_trade_no: '1232423',
total_amount: '100'
}
const result = service.createOrder(data)
queryOrder
订单查询
const outTradeNo = '1232423'
return service.queryOrder({ out_trade_no: outTradeNo }).then(result => {\
// 结果
console.log(result)
})
cancelOrder
取消订单
const outTradeNo = 'foobar'
return service.cancelOrder({ out_trade_no: outTradeNo }).then(result => {
// 结果
console.log(result)
})
verifyPayment
验证支付结果
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)