欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

支付宝支付接口封装(2)

程序员文章站 2022-05-30 21:43:15
...

介绍

由于支付宝接口众多,我只需要支付相关常用的接口,所以单独为支付封装了一些方法,方便直接使用,支持async await,同时也把请求处理好,只返回需要的参数。

暂时支持的接口如下,如果你所需的接口没有,请调用allApi自行处理;以后会更新更多接口支持。

方法名 介绍
allApi 支持支付宝所有接口并且进行参数处理返回https://openapi.alipay.com/gateway.do?...
callback_check 回调签名验证
wap_pay alipay.trade.wap.pay(手机网站支付接口2.0)
query alipay.trade.query(统一收单线下交易查询)
close alipay.trade.close(统一收单交易关闭接口)
refund alipay.trade.refund(统一收单交易退款接口)
refund_query alipay.trade.fastpay.refund.query(统一收单交易退款查询)

安装

yarn add node-alipay1 或者 npm i node-alipay1 --save

使用

使用

const Alipay = require('node-alipay1/dist/pay') 或者 import Alipay from 'node-alipay1/dist/pay'
// 参数介绍请看 https://editor.****.net/md/?articleId=111320177
const alipay = new Alipay({
  app_id: '2014072300007148',
  privateKey: fs.readFileSync(__dirname + '/private_key.pem'),
  publicKey: fs.readFileSync(__dirname + '/public_key.pem'),
  sign_type: 'RSA',
  sandbox: false,
});
  1. wap_pay使用 (参数 包括 return_url(可选) notify_url(可选) timestamp(可选) app_auth_token(可选) 和支付宝对应文档中的请求参数)
const result = await alipay.wap_pay({
  subject: '测试',
  out_trade_no: '订单号',
  total_amount: 0.01,
  product_code: 'QUICK_WAP_WAY',
  quit_url: 'https:/www.baidu.com/index.html',
  notify_url: '支付成功回调路径',
  goods_detail: [
    {
      goods_id: '1',
      goods_name: '测试商品',
      quantity: 1,
      price: 0.01,
    },
  ],
});
  1. query (参数包括 timestamp(可选) app_auth_token(可选) 和支付宝对应文档中的请求参数)
const result = await alipay.query({
    out_trade_no: '1608190357173',
  });
  1. close (参数包括 timestamp(可选) app_auth_token(可选) notify_url(可选) 和支付宝对应文档中的请求参数)
const result = await alipay.close({
    out_trade_no: '1608190357173',
  });
  1. refund(参数包括 timestamp(可选) app_auth_token(可选) 和支付宝对应文档中的请求参数 )
 const out_request_no = '3214239121233f';
  // 订单退款
  const result = await alipay.refund({
    out_trade_no: '1608190357173',
    refund_amount: 0.01,
    out_request_no: out_request_no,
  });
  1. refund_query(参数包括 timestamp(可选) app_auth_token(可选) 和支付宝对应文档中的请求参数 )
const result = await alipay.refund_query({
    out_trade_no: '1608190357173',
    out_request_no: '3214239121233f',
  });