成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Boot 集成支付寶支付,看這篇就夠了

開發(fā) 前端
隨著移動支付的普及,支付寶作為國內(nèi)領(lǐng)先的第三方支付平臺,被廣泛應(yīng)用于各類線上線下場景。本文將詳細(xì)介紹如何在 Spring Boot 項(xiàng)目中整合支付寶,實(shí)現(xiàn)支付功能。

隨著移動支付的普及,支付寶作為國內(nèi)領(lǐng)先的第三方支付平臺,被廣泛應(yīng)用于各類線上線下場景。本文將詳細(xì)介紹如何在 Spring Boot 項(xiàng)目中整合支付寶,實(shí)現(xiàn)支付功能。

一、準(zhǔn)備工作 

  • 注冊支付寶開放平臺賬號 :訪問 支付寶開放平臺 官網(wǎng),注冊一個開發(fā)者賬號。
  • 創(chuàng)建應(yīng)用 :登錄后,在控制臺創(chuàng)建一個新的應(yīng)用,選擇對應(yīng)的行業(yè)類目,并提交審核。
  • 配置應(yīng)用信息 :審核通過后,進(jìn)入應(yīng)用詳情頁面,配置應(yīng)用的基本信息,包括應(yīng)用名稱、應(yīng)用域名等。
  • 獲取應(yīng)用憑證 :在應(yīng)用詳情頁面,可以獲取到 AppId、PrivateKey 和 PublicKey,這些信息將在后續(xù)的支付流程中使用。

二、引入依賴 

在 Spring Boot 項(xiàng)目的 pom.xml 文件中,引入支付寶 SDK 依賴:

<properties>
    <java.version>21</java.version>
    <alipay.easysdk.version>2.2.3</alipay.easysdk.version>
</properties>

<dependencies>
    <!--支付寶支付easysdk-->
    <dependency>
        <groupId>com.alipay.sdk</groupId>
        <artifactId>alipay-easysdk</artifactId>
        <version>${alipay.easysdk.version}</version>
    </dependency>
    <!--web起步依賴-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <!--單元測試-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

三、配置文件 

在 Spring Boot 項(xiàng)目的 application.yml 文件中,添加支付寶相關(guān)配置:

alipay:
  app-id: "your_app_id" # 替換為你的 AppId
  private-key: "your_private_key" # 替換為你的 PrivateKey
  public-key: "your_alipay_public_key" # 替換為你的 PublicKey
  notify-url: "https://yourdomain.com/pay/callback" # 替換為你的異步通知地址
  return-url: "https://yourdomain.com/pay/success" # 替換為你的同步跳轉(zhuǎn)地址
  gateway-url: "https://openapi.alipay.com/gateway.do" # 支付寶網(wǎng)關(guān)地址

四、創(chuàng)建配置類 

創(chuàng)建一個 AlipayConfig 類,用于集中管理支付寶相關(guān)配置:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "alipay")
public class AlipayConfig {
    private String appId;
    private String privateKey;
    private String publicKey;
    private String notifyUrl;
    private String returnUrl;
    private String gatewayUrl;
}

五、支付接口開發(fā) 

創(chuàng)建一個 PayController 控制器,用于處理支付請求:

import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/pay")
public class PayController {

    @Autowired
    private AlipayConfig alipayConfig;

    @GetMapping("/create")
    public String createPayment(@RequestParam String orderId, @RequestParam Double amount) {
        try {
            Factory.setOptions(Factory.createOptions()
                .setAppId(alipayConfig.getAppId())
                .setPrivateKey(alipayConfig.getPrivateKey())
                .setAlipayPublicKey(alipayConfig.getPublicKey())
                .setNotifyUrl(alipayConfig.getNotifyUrl())
                .setReturnUrl(alipayConfig.getReturnUrl()));

            AlipayTradePagePayResponse response = Factory.Payment.Page().pay(
                "商品標(biāo)題",  // 商品標(biāo)題
                orderId,     // 商戶訂單號
                String.valueOf(amount), // 金額
                alipayConfig.getReturnUrl()
            );
            return response.getBody(); // 返回支付頁面
        } catch (Exception e) {
            throw new RuntimeException("支付接口調(diào)用失敗", e);
        }
    }
}

六、異步通知處理 

創(chuàng)建一個 AlipayCallbackController 控制器,用于處理支付寶的異步通知:

import com.alipay.easysdk.factory.Factory;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

@RestController
public class AlipayCallbackController {

    @PostMapping("/callback")
    public String handleCallback(HttpServletRequest request) {
        Map<String, String> params = new HashMap<>();
        request.getParameterMap().forEach((key, values) -> params.put(key, values[0]));
        try {
            boolean verified = Factory.Payment.Common().verifyNotify(params);
            if (verified) {
                // 處理訂單邏輯
                String orderId = params.get("out_trade_no");
                String tradeStatus = params.get("trade_status");
                if ("TRADE_SUCCESS".equals(tradeStatus)) {
                    // 更新訂單狀態(tài)為已支付
                }
                return "success";
            } else {
                return "failure";
            }
        } catch (Exception e) {
            return "failure";
        }
    }
}

七、同步跳轉(zhuǎn)處理 

在 AlipayCallbackController 中添加一個方法,用于處理同步跳轉(zhuǎn):

@GetMapping("/success")
public String handleReturn() {
    return "支付成功";
}

八、測試支付功能 

  • 啟動 Spring Boot 項(xiàng)目。
  • 訪問 http://localhost:8080/pay/create?orderId=123456&amp;amount=100,跳轉(zhuǎn)到支付寶支付頁面。
  • 完成支付后,支付寶會跳轉(zhuǎn)到同步跳轉(zhuǎn)地址 http://localhost:8080/pay/success,并發(fā)送異步通知到 http://localhost:8080/pay/callback。

通過以上步驟,就可以在 Spring Boot 項(xiàng)目中整合支付寶,實(shí)現(xiàn)支付功能。

責(zé)任編輯:趙寧寧 來源: Java技術(shù)營地
相關(guān)推薦

2024-02-28 08:59:47

2025-02-17 00:00:45

接口支付寶沙箱

2021-09-09 15:30:28

鴻蒙HarmonyOS應(yīng)用

2024-08-27 11:00:56

單例池緩存bean

2021-09-30 07:59:06

zookeeper一致性算法CAP

2019-08-16 09:41:56

UDP協(xié)議TCP

2021-01-25 14:13:26

iOS支付寶支付

2021-05-07 07:52:51

Java并發(fā)編程

2022-03-29 08:23:56

項(xiàng)目數(shù)據(jù)SIEM

2014-11-17 10:52:56

支付寶去阿里化

2016-12-27 09:49:59

支付寶紅包破解

2011-04-21 11:27:42

Firefox支付寶

2023-09-25 08:32:03

Redis數(shù)據(jù)結(jié)構(gòu)

2021-09-10 13:06:45

HDFS底層Hadoop

2023-10-04 00:32:01

數(shù)據(jù)結(jié)構(gòu)Redis

2023-11-07 07:46:02

GatewayKubernetes

2021-07-28 13:29:57

大數(shù)據(jù)PandasCSV

2021-07-12 12:20:08

Spring初始化方案

2017-03-30 22:41:55

虛擬化操作系統(tǒng)軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 婷婷久久综合 | 久久69精品久久久久久久电影好 | 国产在线精品一区二区 | 亚洲美女视频 | 超碰国产在线 | 在线一区| 亚洲一区二区三区视频免费观看 | 亚洲福利| a精品视频| 欧美xxxx黑人又粗又长 | 黄色一级大片在线观看 | 黄色精品 | av天天干| 国产精品久久久久一区二区三区 | 精品国产乱码久久久久久闺蜜 | 日本淫视频| 日韩欧美一区二区三区 | 欧美区在线观看 | 91免费高清 | 国产一级在线观看 | 中文精品一区二区 | 精品一区二区视频 | 国产一区二区 | 国产999精品久久久久久 | 亚洲精品久久区二区三区蜜桃臀 | 亚洲精品免费在线观看 | 亚洲 欧美 综合 | a精品视频| 国产在线视频一区二区 | 亚洲性人人天天夜夜摸 | 天天操天天射天天 | 国产精品视频一区二区三区不卡 | 老司机狠狠爱 | 免费看91| 国产午夜精品一区二区三区嫩草 | 国产一级片| av高清 | 免费的色网站 | 毛片在线看片 | 国产精品综合视频 | 密乳av|