0.0.3 • Published 7 years ago

ali-pay v0.0.3

Weekly downloads
4
License
ISC
Repository
github
Last release
7 years ago

ali-pay

支付宝支付SDK。

Usage

npm install -S ali-pay
const fs = require('fs')
const path = require('path')
const Alipay = require('ali-pay')
const api = new Alipay({
  appId: '',
  publicKey: fs.readFileSync(path.join(__dirname, '/public_key.pem')),
  privateKey: fs.readFileSync(path.join(__dirname, '/private_key.pem'))
})

api.pagePay({
  subject: 'Iphone 7',
  totalAmount: '6799'
}, (err, result) => {
  if (err) {
    return console.error(err)
  }
  console.log(result)
})

new Alipay(options)

返回Alipay实例对象。

options 配置对象

名称类型必填描述
appIdstringAPPID 即创建应用后生成。
publicKeystring开发者公钥,由开发者自己生成。 传入公钥的内容。
privateKeystring开发者私钥,由开发者自己生成。 传入私钥的内容。
charsetstring请求使用的编码格式,如utf-8,gbk,gb2312等。默认utf-8。
signTypestring商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2。默认为RSA2。
sandboxboolean是否沙箱测试。默认false

Alipay 实例方法

pay

收银员使用扫码设备读取用户手机支付宝“付款码”/声波获取设备(如麦克风)读取用户手机支付宝的声波信息后,将二维码或条码信息/声波信息通过本接口上送至支付宝发起支付。

options 对象属性

名称类型必填描述
subjectstring订单标题
authCodestring支付授权码,25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准
notifyUrlstring支付宝服务器主动通知商户服务器里指定的页面http/https路径。
appAuthTokenstring详见应用授权概述
outTradeNostring商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复
scenestring支付场景条码支付,取值:bar_code声波支付,取值:wave_code。默认为bar_code
productCodestring销售产品码
buyerIdstring买家的支付宝用户id,如果为空,会从传入了码值信息中获取买家ID
sellerIdstring如果该值为空,则默认为商户签约账号对应的支付宝用户ID
totalAmountstring订单总金额,单位为元,精确到小数点后两位,取值范围0.01,100000000 如果同时传入【可打折金额】和【不可打折金额】,该参数可以不用传入; 如果同时传入了【可打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【可打折金额】+【不可打折金额】
discountableAmountstring参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围0.01,100000000。 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】-【不可打折金额】
bodystring订单描述
goodsDetailstring订单包含的商品列表信息,Json格式,其它说明详见商品明细说明
operatorIdstring商户操作员编号
storeIdstring商户门店编号
terminalIdstring商户机具终端编号
extendParamsstring业务扩展参数
timeoutExpressstring该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m

返回

名称类型描述
errerror错误对象
resultobject结果对象

result 对象

名称类型描述
codestring网关返回码,详见文档
msgstring网关返回码描述,详见文档
sub_codestring业务返回码,详见文档
sub_msgstring业务返回码描述,详见文档
signstring签名,详见文档
trade_nostring支付宝交易号
out_trade_nostring商户订单号
buyer_logon_idstring买家支付宝账号
total_amountnumber交易金额
receipt_amountstring实收金额
buyer_pay_amountnumber买家付款的金额
point_amountnumber使用积分宝付款的金额
invoice_amountnumber交易中可给用户开具发票的金额
gmt_paymentstring交易支付时间
fund_bill_listobject交易支付使用的资金渠道
card_balancenumber支付宝卡余额
store_namestring发生支付交易的商户门店名称
buyer_user_idstring买家在支付宝的用户id
discount_goods_detailstring本次交易支付所使用的单品券优惠的商品优惠信息
voucher_detail_listobject本交易支付时使用的所有优惠券信息

pagePay

电脑网站支付

options 参数

名称类型必填描述
totalAmountstring订单总金额,单位为元,精确到小数点后两位,取值范围0.01,100000000
subjectstring订单标题
outTradeNostring商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复。默认为当前时间戳 + 6位随机数。
bodystring订单描述。
goodsDetailstring订单包含的商品列表信息,Json格式,详见商品明细说明{"show_url":"https://www.alipay.com"}
passbackParamsstring公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝只会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝。
extendParamsstring业务扩展参数,详见业务扩展参数说明。 {"sys_service_provider_id":"2088511833207846"}
goodsTypestring商品主类型:0—虚拟类商品,1—实物类商品(默认) 注:虚拟类商品不支持使用花呗渠道
timeoutExpressstring该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。该参数在请求到支付宝时开始计时。
enablePayChannelsstring可用渠道,用户只能在指定渠道范围内支付当有多个渠道时用“,”分隔注:与disablePayChannels互斥
disablePayChannelsstring禁用渠道,用户不可用指定渠道支付当有多个渠道时用“,”分隔注:与enable_pay_channels互斥
authTokenstring针对用户授权接口,获取用户相关数据时,用于标识用户授权关系
qrPayModestringPC扫码支付的方式,支持前置模式和跳转模式。前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以 iframe 方式请求支付宝页面。具体分为以下几种:0:订单码-简约前置模式,对应 iframe 宽度不能小于600px,高度不能小于300px;1:订单码-前置模式,对应iframe 宽度不能小于 300px,高度不能小于600px;3:订单码-迷你前置模式,对应 iframe 宽度不能小于 75px,高度不能小于75px;4:订单码-可定义宽度的嵌入式二维码,商户可根据需要设定二维码的大小。跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。2:订单码-跳转模式
qrcodeWidthstring商户自定义二维码宽度 注:qr_pay_mode=4时该参数生效

商品明细说明

名称类型最大长度必填描述
show_urlstring400商品的展示地址。

业务扩展参数说明

名称类型最大长度必填描述
sys_service_provider_idstring64系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID
可用渠道
渠道名称说明
balance余额
moneyFund余额宝
coupon红包
pcredit花呗
pcreditpayInstallment花呗分期
creditCard信用卡
creditCardExpress信用卡快捷
creditCardCartoon信用卡卡通
credit_group信用支付类型(包含信用卡卡通、信用卡快捷、花呗、花呗分期)
debitCardExpress借记卡快捷
mcard商户预存卡
pcard个人预存卡
promotion优惠(包含实时优惠+商户优惠)
voucher营销券
point积分
mdiscount商户优惠
bankPay网银

页面回跳参数

对于PC网站支付的交易,在用户支付完成之后,支付宝会根据API中商户传入的return_url参数,通过GET请求的形式将部分支付结果参数通知到商户系统。

公共参数
名称类型最大长度必填描述示例
app_idString32支付宝分配给开发者的应用ID2016040501024706
methodString128接口名称alipay.trade.page.pay.return
sign_typeString10签名算法类型,目前支持RSA2和RSA,推荐使用RSA2RSA2
signString256支付宝对本次支付结果的签名,开发者必须使用支付宝公钥验证签名详见示例
charsetString10编码格式,如utf-8,gbk,gb2312等utf-8
timestampString19前台回跳的时间,格式"yyyy-MM-dd HH:mm:ss"2016-08-11 19:36:01
versionString3调用的接口版本,固定为:1.01.0
auth_app_idString32授权方的appid 注:由于本接口暂不开放第三方应用授权,因此auth_app_id=app_id2016040501024706
业务参数
名称类型最大长度必填描述示例
out_trade_noString64商户网站唯一订单号70501111111S001111119
trade_noString64该交易在支付宝系统中的交易流水号。最长64位。2016081121001004630200142207
total_amountPrice9该笔订单的资金总额,单位为RMB-Yuan。取值范围为0.01,100000000.00精确到小数点后两位。9.00
seller_idString16收款支付宝账号对应的支付宝唯一用户号。 以2088开头的纯16位数字2088111111116894

页面回跳示例

https://m.alipay.com/GkSL?total_amount=0.10&timestamp=2016-11-02+18%3A34%3A19&sign=G3WI0czviMAOzS5t0fYaDgK32sGpjkkXYVFTpYMtgX8JaXLiGiUTO%2F2IHogcCFT96jBCLZ6IsNzd%2BmxkB%2FRuwG%2F7naQk1qReuORMkrB5cpBf9U40bIUoCmSNqtANsTE2UPV7GKegYG2RqoCRScTmeFAFHj5L7zsM%2BLuYb9mqN3g%3D&trade_no=2016110221001004330228438026&sign_type=RSA2&auth_app_id=2014073000007292&charset=UTF-8&seller_id=2088411964605312&method=alipay.trade.page.pay.return&app_id=2014073000007292&out_trade_no=20150g320g010101001&version=1.0 

verify

验签接口。

参数

名称类型必填描述
optionsobject or string支付宝 POST 到notify_url的主体数据。格式是application/x-www-form-urlencoded可以直接传入或格式化成object后传入。

返回值

返回truefalse

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago