ali-pay

0.0.3 • Public • Published

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 配置对象

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

Alipay 实例方法

pay

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

options 对象属性

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

返回

名称 类型 描述
err error 错误对象
result object 结果对象

result 对象

名称 类型 描述
code string 网关返回码,详见文档
msg string 网关返回码描述,详见文档
sub_code string 业务返回码,详见文档
sub_msg string 业务返回码描述,详见文档
sign string 签名,详见文档
trade_no string 支付宝交易号
out_trade_no string 商户订单号
buyer_logon_id string 买家支付宝账号
total_amount number 交易金额
receipt_amount string 实收金额
buyer_pay_amount number 买家付款的金额
point_amount number 使用积分宝付款的金额
invoice_amount number 交易中可给用户开具发票的金额
gmt_payment string 交易支付时间
fund_bill_list object 交易支付使用的资金渠道
card_balance number 支付宝卡余额
store_name string 发生支付交易的商户门店名称
buyer_user_id string 买家在支付宝的用户id
discount_goods_detail string 本次交易支付所使用的单品券优惠的商品优惠信息
voucher_detail_list object 本交易支付时使用的所有优惠券信息

pagePay

电脑网站支付

options 参数

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

商品明细说明

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

业务扩展参数说明

名称 类型 最大长度 必填 描述
sys_service_provider_id string 64 系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的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_id String 32 支付宝分配给开发者的应用ID 2016040501024706
method String 128 接口名称 alipay.trade.page.pay.return
sign_type String 10 签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
sign String 256 支付宝对本次支付结果的签名,开发者必须使用支付宝公钥验证签名 详见示例
charset String 10 编码格式,如utf-8,gbk,gb2312等 utf-8
timestamp String 19 前台回跳的时间,格式"yyyy-MM-dd HH:mm:ss" 2016-08-11 19:36:01
version String 3 调用的接口版本,固定为:1.0 1.0
auth_app_id String 32 授权方的appid
注:由于本接口暂不开放第三方应用授权,因此auth_app_id=app_id
2016040501024706
业务参数
名称 类型 最大长度 必填 描述 示例
out_trade_no String 64 商户网站唯一订单号 70501111111S001111119
trade_no String 64 该交易在支付宝系统中的交易流水号。
最长64位。
2016081121001004630200142207
total_amount Price 9 该笔订单的资金总额,单位为RMB-Yuan。
取值范围为[0.01,100000000.00],
精确到小数点后两位。
9.00
seller_id String 16 收款支付宝账号对应的支付宝唯一用户号。
以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

验签接口。

参数

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

返回值

返回truefalse

Readme

Keywords

Package Sidebar

Install

npm i ali-pay

Weekly Downloads

0

Version

0.0.3

License

ISC

Last publish

Collaborators

  • pengengng