java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java后端调用微信和支付宝支付

Java后端调用微信支付和支付宝支付的详细步骤

作者:阿贾克斯的黎明

这篇文章主要介绍了Java后端如何调用微信支付和支付宝支付,涵盖了基本概念、配置步骤、代码示例以及注意事项,文中通过代码介绍的非常详细,需要的朋友可以参考下

引言

在当今数字化的商业环境中,线上支付已成为交易的主流方式。微信支付和支付宝支付作为国内两大主流的第三方支付平台,拥有庞大的用户群体。对于 Java 后端开发者来说,实现与这两个支付平台的对接是常见的需求。本文将详细介绍 Java 后端如何调用微信支付和支付宝支付,涵盖基本概念、配置步骤、代码示例以及注意事项。

一、微信支付

1.1 基本概念

微信支付是腾讯公司推出的一种便捷支付方式,支持多种支付场景,如扫码支付、JSAPI 支付、APP 支付等。在 Java 后端调用微信支付,主要是通过调用微信支付提供的 API 接口来完成支付流程。

1.2 前期准备

1.3 配置依赖

在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>com.github.wxpay</groupId>
    <artifactId>wxpay-sdk</artifactId>
    <version>0.0.3</version>
</dependency>

1.4 代码示例:扫码支付

import com.github.wxpay.sdk.WXPay;
import com.github.wxpay.sdk.WXPayConfig;
import com.github.wxpay.sdk.WXPayConstants;
import com.github.wxpay.sdk.WXPayUtil;

import java.util.HashMap;
import java.util.Map;

public class WechatPayExample {

    public static void main(String[] args) throws Exception {
        // 实现 WXPayConfig 接口
        WXPayConfig config = new WXPayConfig() {
            @Override
            public String getAppID() {
                return "your_app_id";
            }

            @Override
            public String getMchID() {
                return "your_mch_id";
            }

            @Override
            public String getKey() {
                return "your_api_key";
            }

            @Override
            public InputStream getCertStream() {
                // 加载商户证书
                return WechatPayExample.class.getResourceAsStream("/apiclient_cert.p12");
            }

            @Override
            public int getHttpConnectTimeoutMs() {
                return 8000;
            }

            @Override
            public int getHttpReadTimeoutMs() {
                return 10000;
            }
        };

        WXPay wxpay = new WXPay(config, WXPayConstants.SignType.MD5);

        // 组装请求参数
        Map<String, String> data = new HashMap<>();
        data.put("body", "商品描述");
        data.put("out_trade_no", "20250225001");
        data.put("total_fee", "1");
        data.put("spbill_create_ip", "127.0.0.1");
        data.put("notify_url", "https://yourdomain.com/notify");
        data.put("trade_type", "NATIVE");

        // 调用统一下单接口
        Map<String, String> resp = wxpay.unifiedOrder(data);
        System.out.println(resp);

        if ("SUCCESS".equals(resp.get("return_code")) && "SUCCESS".equals(resp.get("result_code"))) {
            String codeUrl = resp.get("code_url");
            System.out.println("生成的二维码链接: " + codeUrl);
        }
    }
}

1.5 代码解释

二、支付宝支付

2.1 基本概念

支付宝支付是蚂蚁金服旗下的支付平台,同样支持多种支付场景,如扫码支付、电脑网站支付、手机网站支付等。Java 后端调用支付宝支付也是通过调用支付宝提供的 API 接口来实现。

2.2 前期准备

2.3 配置依赖

在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>4.10.115.ALL</version>
</dependency>

2.4 代码示例:电脑网站支付

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;

public class AlipayExample {

    public static void main(String[] args) {
        // 支付宝网关
        String gatewayUrl = "https://openapi.alipay.com/gateway.do";
        // 应用 ID
        String appId = "your_app_id";
        // 应用私钥
        String privateKey = "your_private_key";
        // 支付宝公钥
        String alipayPublicKey = "your_alipay_public_key";
        // 字符编码格式
        String charset = "UTF-8";
        // 签名方式
        String signType = "RSA2";
        // 支付成功回调地址
        String returnUrl = "https://yourdomain.com/return";
        // 支付结果通知地址
        String notifyUrl = "https://yourdomain.com/notify";

        // 创建 AlipayClient 对象
        AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, "json", charset, alipayPublicKey, signType);

        // 创建 AlipayTradePagePayRequest 对象
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl(returnUrl);
        alipayRequest.setNotifyUrl(notifyUrl);

        // 组装请求参数
        alipayRequest.setBizContent("{\"out_trade_no\":\"20250225002\"," +
                "\"total_amount\":\"0.01\"," +
                "\"subject\":\"商品名称\"," +
                "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");

        try {
            // 调用支付接口
            String result = alipayClient.pageExecute(alipayRequest).getBody();
            System.out.println(result);
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }
    }
}

2.5 代码解释

三、注意事项

四、总结

通过以上步骤和代码示例,我们可以看到 Java 后端调用微信支付和支付宝支付的基本流程。在实际开发中,要根据具体的业务需求选择合适的支付场景和接口,同时要注意支付安全和数据的准确性。希望本文能帮助你顺利实现 Java 后端与微信支付和支付宝支付的对接。

到此这篇关于Java后端调用微信支付和支付宝支付的文章就介绍到这了,更多相关Java后端调用微信和支付宝支付内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文