Java 支付宝支付集成教程,涵盖手机APP支付和电脑网站支付的实现步骤

 Java 支付宝支付集成教程,涵盖手机APP支付和电脑网站支付的实现步骤:

一、支付宝支付集成基础

1. 注册支付宝开发者账号

  • 在支付宝开放平台(支付宝开放平台)注册开发者账号,并创建应用以获取 App ID

2. 获取支付宝 SDK

  • 下载支付宝 Java SDK,并将其添加到项目中。可以通过 Maven 添加依赖:
    xml复制
    <dependency>
        <groupId>com.alipay.sdk</groupId>
        <artifactId>alipay-sdk-java</artifactId>
        <version>YOUR_SDK_VERSION</version>
    </dependency>
    替换 YOUR_SDK_VERSION 为最新版本号。

3. 配置支付参数

  • 在项目中配置支付宝支付所需的参数,包括 App ID、商户私钥、支付宝公钥等。

二、电脑网站支付(PC 端支付)

1. 创建支付请求

  • 构造支付请求,设置订单信息和回调地址:
    java复制
    import com.alipay.api.*;
    import com.alipay.api.request.AlipayTradePagePayRequest;
    
    public class AlipayService {
        private static final String APP_ID = "your_app_id";
        private static final String APP_PRIVATE_KEY = "your_private_key";
        private static final String ALIPAY_PUBLIC_KEY = "alipay_public_key";
    
        public String createOrder() {
            AlipayClient alipayClient = new DefaultAlipayClient(
                "https://openapi.alipay.com/gateway.do",
                APP_ID,
                APP_PRIVATE_KEY,
                "json",
                "UTF-8",
                ALIPAY_PUBLIC_KEY,
                "RSA2"
            );
    
            AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
            request.setReturnUrl("http://your_callback_url");
            request.setNotifyUrl("http://your_notify_url");
    
            request.setBizContent("{" +
                ""out_trade_no":"202401230001", " +
                ""total_amount":"0.01", " +
                ""subject":"测试商品", " +
                ""product_code":"FAST_INSTANT_TRADE_PAY" " +
                "}");
    
            try {
                String form = alipayClient.pageExecute(request).getBody();
                return form; // 返回支付表单
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    }
  • 将生成的支付表单返回给前端,用户点击后跳转到支付宝支付页面。

2. 处理支付结果

  • 支付完成后,支付宝会通过 notify_url 回调通知支付结果:
    java复制
    import com.alipay.api.internal.util.AlipaySignature;
    
    public void notifyAlipay(HttpServletRequest request) {
        try {
            Map<String, String> params = request.getParameterMap().entrySet().stream()
                .collect(Collectors.toMap(Map.Entry::getKey, e -> String.join(",", e.getValue())));
    
            boolean signVerified = AlipaySignature.rsaCheckV1(params, ALIPAY_PUBLIC_KEY, "UTF-8", "RSA2");
            if (signVerified) {
                // 处理订单逻辑,例如更新订单状态
                String tradeStatus = params.get("trade_status");
                if ("TRADE_SUCCESS".equals(tradeStatus)) {
                    System.out.println("支付成功!");
                } else {
                    System.out.println("支付失败!");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

三、手机APP支付

1. 生成支付订单

  • 在服务器端生成支付订单,返回订单信息给客户端:
    java复制
    import com.alipay.api.request.AlipayTradeCreateRequest;
    import com.alipay.api.response.AlipayTradeCreateResponse;
    
    public String createOrder() {
        AlipayClient alipayClient = new DefaultAlipayClient(
            "https://openapi.alipay.com/gateway.do",
            APP_ID,
            APP_PRIVATE_KEY,
            "json",
            "UTF-8",
            ALIPAY_PUBLIC_KEY,
            "RSA2"
        );
    
        AlipayTradeCreateRequest request = new AlipayTradeCreateRequest();
        request.setBizContent("{" +
            ""out_trade_no":"202401230001", " +
            ""total_amount":"0.01", " +
            ""subject":"测试商品", " +
            ""product_code":"QUICK_MSECURITY_PAY" " +
            "}");
    
        try {
            AlipayTradeCreateResponse response = alipayClient.execute(request);
            if (response.isSuccess()) {
                return response.getBody(); // 返回订单信息
            } else {
                return "订单创建失败:" + response.getSubMsg();
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

2. 客户端调起支付

  • 将服务器返回的订单信息传递给支付宝 SDK,调起支付。

3. 处理支付结果

  • 支付完成后,支付宝通过 notify_url 回调通知支付结果,处理逻辑与电脑端支付相同。

四、注意事项

  1. 签名验证:确保在回调通知中验证支付宝签名,防止伪造请求。
  2. 测试环境:在正式上线前,使用支付宝沙箱环境进行测试。
  3. 回调地址:确保回调地址(notify_urlreturn_url)能够正常访问。
通过以上步骤,你可以实现支付宝的电脑端支付和手机APP支付功能。如果在集成过程中遇到问题,可以参考支付宝官方文档或社区支持。

[自动更新内容]

  •    

    腾讯云服务器限时活动

       

    2核2G云服务器 仅需599元/3年!

        立即了解