偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

一、準(zhǔn)備工作 

  • 注冊(cè)支付寶開(kāi)放平臺(tái)賬號(hào) :訪問(wèn) 支付寶開(kāi)放平臺(tái) 官網(wǎng),注冊(cè)一個(gè)開(kāi)發(fā)者賬號(hào)。
  • 創(chuàng)建應(yīng)用 :登錄后,在控制臺(tái)創(chuàng)建一個(gè)新的應(yīng)用,選擇對(duì)應(yīng)的行業(yè)類(lèi)目,并提交審核。
  • 配置應(yīng)用信息 :審核通過(guò)后,進(jìn)入應(yīng)用詳情頁(yè)面,配置應(yīng)用的基本信息,包括應(yīng)用名稱、應(yīng)用域名等。
  • 獲取應(yīng)用憑證 :在應(yīng)用詳情頁(yè)面,可以獲取到 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>
    <!--單元測(cè)試-->
    <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)建配置類(lèi) 

創(chuàng)建一個(gè) AlipayConfig 類(lèi),用于集中管理支付寶相關(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;
}

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

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

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,     // 商戶訂單號(hào)
                String.valueOf(amount), // 金額
                alipayConfig.getReturnUrl()
            );
            return response.getBody(); // 返回支付頁(yè)面
        } catch (Exception e) {
            throw new RuntimeException("支付接口調(diào)用失敗", e);
        }
    }
}

六、異步通知處理 

創(chuàng)建一個(gè) 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 中添加一個(gè)方法,用于處理同步跳轉(zhuǎn):

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

八、測(cè)試支付功能 

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

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

責(zé)任編輯:趙寧寧 來(lái)源: Java技術(shù)營(yíng)地
相關(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

2019-08-16 09:41:56

UDP協(xié)議TCP

2021-09-30 07:59:06

zookeeper一致性算法CAP

2021-01-25 14:13:26

iOS支付寶支付

2022-03-29 08:23:56

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

2021-05-07 07:52:51

Java并發(fā)編程

2014-11-17 10:52:56

支付寶去阿里化

2016-12-27 09:49:59

支付寶紅包破解

2011-04-21 11:27:42

Firefox支付寶

2017-03-30 22:41:55

虛擬化操作系統(tǒng)軟件

2021-07-12 12:20:08

Spring初始化方案

2023-09-25 08:32:03

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

2021-09-10 13:06:45

HDFS底層Hadoop

2021-07-28 13:29:57

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

2023-11-07 07:46:02

GatewayKubernetes

2023-10-04 00:32:01

數(shù)據(jù)結(jié)構(gòu)Redis
點(diǎn)贊
收藏

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