alipay
![David Status](https://david-dm.org/Luncher/alipay-mobile.svg?style=flat)
蚂蚁金服开放平台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))
}
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)
})
创建网页订单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)
console.log(AlipayConfig.ALIPAY_NOTIFY_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