Java Alipay Client支付宝接口使用


参考文章:Java AlipayClient类代码示例
参考文章:支付宝官方SDK笔记
参考文章:支付宝支付接口的调用

一、Alipay三个重要的对象

1. AlipayClient接口
- 主要实现类:DefaultAlipayClient
- 主要方法:excute()发起请求,pageExcute()网页支付的请求

2. AlipayRequest接口
- 主要实现类:AlipayTrade***Request
- 主要方法:setBizContent()请求的业务参数、setNotifyUrl()异步通知的地址、setReturnUrl()同步通知的地址

3. AlipayResponse类
- 主要子类:AlipayTrade***Response
- 主要方法:getSubCode()获取错误代码、getMsg()获取错误原因、getBody()获取返回内容、getParams()获取请求业务参数、isSuccess()判断本次请求是否调用成功

二、Alipay的执行流程

1. 付款

在这里插入图片描述

2. 退款

在这里插入图片描述

三、配置Alipay参数

存储了一些支付所需的公钥啊,私钥啊等参数,方便同意管理和使用。

    // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
    public static String app_id = "你的APPID";

    // 商户私钥,您的PKCS8格式RSA2私钥
    public static String merchant_private_key = "你的商户私钥";

    // https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
    public static String alipay_public_key = "你的支付宝公钥";

    // 服务器异步通知页面路径  需http://格式的完整路径,由自己系统开发实现
    public static String notify_url = "你的异步通知页面";

    // 页面跳转同步通知页面路径 需http://格式的完整路径,由自己系统开发实现
    public static String return_url = "你的回调页面";

    // 签名方式
    public static String sign_type = "RSA2";

    // 字符编码格式
    public static String charset = "utf-8";

    // 支付宝网关
    public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";

    // 支付宝网关
    public static String log_path = "C:\\";

四、核心代码

//1、封装client客户端 
DefaultAlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.GATEWAYURL, AlipayConfig.APP_ID, AlipayConfig.MERCHANT_PRIVATE_KEY, "json", AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGN_TYPE); 
//2、封装 Request 
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setNotifyUrl(AlipayConfig.notify_url); alipayRequest.setReturnUrl(AlipayConfig.return_url); 
alipayRequest.setBizContent("{\"out_trade_no\":\"" + outTradeNo + "\","    
                            + "\"total_amount\":\"" + totalAmount + "\","    
                            + "\"subject\":\"" + subject + "\","    
                            + "\"body\":\"商品名称\","   
                            + "\"timeout_express\":\"90m\","    
                            + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); 
//3、封装 Response,也就是返回给前端的数据。此 Response 是ali sdk封装的 
AlipayTradePagePayResponse payResponse = alipayClient.pageExecute(alipayRequest); 
//4、获取 responseBody 返回给前端即可
String responseBody = payResponse.getBody();
Java中编写支付宝API接口,通常需要借助支付宝提供的SDK(Software Development Kit),例如Alipay Open API或者支付宝快速接入服务(如Ant Financial Mobile SDK)。以下是基本步骤: 1. **注册和配置**: - 注册成为支付宝商户,并获取应用ID、私钥等信息。 - 官方网站(https://open.alipay.com/)上下载相应的Java SDK包。 2. **环境准备**: - 需要在项目中导入支付宝SDK库到你的构建路径(Maven或Gradle)。 - 创建一个密钥管理工具(KeyGenerator)处理公钥和私钥的安全存储。 3. **创建请求对象**: - 根据你想要调用的功能,比如支付、查询订单等,创建对应的API请求对象,设置必要的参数(如交易金额、商品信息、通知地址等)。 4. **签名数据**: - 使用支付宝提供的签名算法,对请求参数进行加密,生成安全的sign值。这一步通常涉及到Base64编码、URL encoding以及RSA加密。 5. **发起HTTP请求**: - 将加密后的请求信息通过HTTPS发送到支付宝提供的API地址。 6. **解析响应**: - 收到服务器返回的数据后,解密并解析响应结果,检查交易状态或错误信息。 7. **异常处理**: - 对可能出现的各种异常进行捕获并处理,例如网络问题、签名验证失败等。 8. **日志记录**: - 记录请求和响应的信息,便于调试和审计。 下面是一个简单的示例代码片段(简化版): ```java // 导入支付宝相关类 import alipay.api.AlipayClient; import alipay.api.DefaultAlipayClient; public class AliPay { private static final String ALIPAY_APP_ID = "your_app_id"; private static final String ALIPAY_PRIVATE_KEY = "your_private_key"; public static void main(String[] args) { // 初始化客户端 AlipayClient client = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", ALIPAY_APP_ID, ALIPAY_PRIVATE_KEY); // 创建请求对象 AlipayTradeCreateRequest request = new AlipayTradeCreateRequest(); request.setBizContent("{" + " \"out_trade_no\": \"your_order_id\"," + " \"total_amount\": \"0.01\"," + " \"subject\": \"测试订单\"," + " \"product_code\": \"FAST_INSTANT_TRADE_PAY\"" + "}"); // 签名请求 String sign = SignUtils.sign(request, "your_public_key"); // 调用API并发送请求 AlipayTradeCreateResponse response = client.execute(request, sign); // 解析响应并处理 if (response.isSuccess()) { System.out.println("交易成功"); } else { System.out.println("交易失败:" + response.getErrorMessage()); } } } ``` 注意:实际使用时,你需要根据官方文档详细配置并确保正确处理敏感信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值