# IJPay 中的支付宝支付

# 简介

IJPay 中的支付宝支付是对 alipay-sdk-java (opens new window) 的二次封装, 简化 DefaultAlipayClient 的配置并支持多应用无缝切换。

# 支付方式与支付工具

TIP

IJPay 中支持的支付方式以及支付工具

  1. 当面付(条码支付/扫码支付/声波支付)
  2. 刷脸支付
  3. APP支付
  4. 手机网站支付(H5 支付)
  5. 电脑网站支付(PC 支付)
  6. 花呗分期
  7. 单笔转账到支付宝账户
  8. 批量付款
  9. 现金红包

# 使用步骤

  1. 添加相关依赖
  2. 获取支付宝应用配置参数
  3. 初始化支付宝
  4. 调用 AliPayApi (opens new window) 中的接口
  5. 根据接口传入对应的 Model 来构建请求参数,Model 对应的接口参数下面有提供列表参考

# 特殊情况

蚂蚁金服开放平台提供的 Java SDK (opens new window) 里面接口非常多,而在 IJPay 中只封装了常用支付方式涉及的接口,如果你有其他接口需求 IJPay 中恰好并没有提供封装时你可以这么做。

TIP

1、获取 DefaultAlipayClient

通过 AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient() 来获取当前线程中 appId 对应的 DefaultAlipayClient

TIP

2、执行请求完成接口调用

再使用获取到的 DefaultAlipayClient 来执行请求调用,使用方法可以参考 IJPay 源码中的 AliPayApi (opens new window) 以及下方的示例

TIP

Java SDK (opens new window) 中常用的接口

  • 功能:执行请求调用(适用于不需要授权接口调用)
  • 输入:request 接口请求对象
  • 输出:T 请求返回对象
public <T extends AlipayResponse> T execute(AlipayRequest<T> request);
1
  • 功能:执行请求调用(适用于需要授权接口调用)
  • 输入:
    • request 接口请求对象
    • accessToken 接口令牌
    • appAuthToken 商户授权令牌
  • 输出:T 请求返回对象
public <T extends AlipayResponse> T execute(AlipayRequest<T> request, String accessToken,String appAuthToken)
1

# 官方 API 列表

官方支付 API 列表 (opens new window)

# 支付常用 API 列表

API列表 描述 Model
alipay.trade.close (opens new window) 统一收单交易关闭接口 AlipayTradeCloseModel
alipay.trade.create (opens new window) 统一收单交易创建接口 AlipayTradeCreateModel
alipay.trade.pay (opens new window) 统一收单交易支付接口 AlipayTradePayModel
alipay.trade.refund (opens new window) 统一收单交易退款接口 AlipayTradeRefundModel
alipay.trade.fastpay.refund.query (opens new window) 统一收单交易退款查询 AlipayTradeFastpayRefundQueryModel
alipay.trade.page.refund (opens new window) 统一收单退款页面接口 AlipayTradePageRefundModel
alipay.trade.wap.pay (opens new window) 手机网站支付接口2.0 AlipayTradeWapPayModel
alipay.trade.precreate (opens new window) 统一收单线下交易预创建 AlipayTradePrecreateModel
alipay.trade.cancel (opens new window) 统一收单交易撤销接口 AlipayTradeCancelModel
alipay.trade.order.settle (opens new window) 统一收单交易结算接口 AlipayTradeOrderSettleModel
alipay.trade.query (opens new window) 统一收单线下交易查询 AlipayTradeQueryModel
alipay.trade.app.pay (opens new window) app支付接口2.0 AlipayTradeAppPayModel
alipay.trade.page.pay (opens new window) 统一收单下单并支付页面接口 AlipayTradePagePayModel

TIP

有规律可循: 由上列表不难得出以下规律

接口名称「首字母」转为大写后面添加 Model 或者 Request 就是接口参数对应的 Model 以及 Request

例如:alipay.trade.close (opens new window) 对应的 Model 为 AlipayTradeCloseModel ,对应的 request 为 AlipayTradeCloseRequest

最终封装的接口





 


 



public static AlipayTradeCloseResponse tradeCloseToResponse(AlipayTradeCloseModel model, String appAuthToken) throws AlipayApiException {
    AlipayTradeCloseRequest request = new AlipayTradeCloseRequest();
    request.setBizModel(model);
    if (StrUtil.isBlank(appAuthToken)) {
        return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request);
    } else {
        // 支持第三方代理调用
        return AliPayApiConfigKit.getAliPayApiConfig().getAliPayClient().execute(request, null, appAuthToken);
    }
}
1
2
3
4
5
6
7
8
9
10

# 常用支付方式

API列表 支付方式
alipay.trade.app.pay (opens new window) APP 支付
alipay.trade.page.pay (opens new window) PC 网站支付
alipay.trade.wap.pay (opens new window) 手机网站支付
alipay.trade.precreate (opens new window) 扫码支付
alipay.trade.pay (opens new window) 条形码支付、声波支付

# 总结

看到这里我想大家都理解了 IJPay 中对支付宝封装的原理。至于如何调用接口进行支付应该不用再过多介绍了吧。

TIP

IJPay 2.x 版本示例

TIP

IJPay 1.x 版本示例

在线客服-付费答疑