Java对接支付宝支付的实例代码,小白也能看懂的教程!

以下是一个Java对接支付宝支付的实例代码,以及相应的代码解说。

Java对接支付宝支付实例代码

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.response.AlipayTradePagePayResponse;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class PayServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 创建AlipayClient对象
        AlipayClient alipayClient = new DefaultAlipayClient(
            "https://openapi.alipay.com/gateway.do", // 支付宝网关地址
            "your-app-id", // 你的AppId
            "your-app-private-key", // 你的应用私钥
            "json", // 格式,如json
            "UTF-8", // 字符编码
            "your-alipay-public-key", // 支付宝公钥
            "RSA2" // 签名方式
        );

        // 创建AlipayTradePagePayRequest对象
        AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
        request.setReturnUrl("http://www.us87.com/?your-return-url"); // 支付成功后的返回地址
        request.setNotifyUrl("http://www.us87.com/?http://your-notify-url"); // 支付成功后的异步通知地址

        // 设置请求参数
        request.setBizContent("{" +
            "    \"out_trade_no\":\"" + System.currentTimeMillis() + "\", " + // 商户订单号
            "    \"product_code\":\"FAST_INSTANT_TRADE_PAY\", " + // 销售产品码,使用预下单时固定值
            "    \"total_amount\":\"10.00\", " + // 订单总金额
            "    \"subject\":\"商品A\" " + // 商品的标题/交易标题/订单标题/订单关键字等
            "}");

        // 调用SDK发起支付请求
        try {
            String form = alipayClient.pageExecute(request).getBody(); // 调用SDK生成表单
            response.setContentType("text/html;charset=UTF-8");
            response.getWriter().write(form); // 直接将完整的表单html输出到页面
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

代码解说

  1. 导入必要的类:导入了支付宝SDK中的必要类,包括AlipayClientDefaultAlipayClientAlipayTradePagePayRequest以及AlipayTradePagePayResponse

  2. 创建AlipayClient对象:使用DefaultAlipayClient构造函数创建支付宝客户端对象,传入支付宝网关地址、AppId、应用私钥、格式、字符编码、支付宝公钥和签名方式。

  3. 创建支付请求对象:创建AlipayTradePagePayRequest对象,并设置支付成功后的返回地址和异步通知地址。

  4. 设置业务参数:通过setBizContent方法设置支付业务参数,包括商户订单号、销售产品码、订单总金额和商品标题。

  5. 发起支付请求:调用pageExecute方法发起支付请求,并获取返回的表单HTML代码。

  6. 输出HTML表单:将获取到的HTML代码输出到页面,这样用户的浏览器就会自动跳转到支付宝支付页面进行支付。

注意事项

  • 确保替换代码中的your-app-idyour-app-private-keyyour-alipay-public-key和URL地址为你自己的支付宝应用信息。
  • 确保服务器支持HTTPS,因为支付宝要求所有接口调用都必须通过HTTPS进行。
  • 异步通知(notifyUrl)是支付宝支付完成后向商户服务器发送支付结果通知的地址,商户需要在这个地址上接收通知并进行处理,如更新订单状态等。
  • 同步返回(returnUrl)是用户支付完成后返回到商户网站的地址,可以用于显示支付结果页面。

以上代码和解说可以帮助你理解如何在Java应用中集成支付宝支付功能,并发布技术类文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值