項目中集成支付寶(掃碼付)中的[掃碼支付]業務


項目中集成支付寶(掃碼付)中的[掃碼支付]業務

簡介:這里使用支付寶提供的demo,但是測試demo沒有公網的ip,所以借助於支付寶提供的沙箱環境。

1. 打開掃碼付的文檔介紹

地址:https://docs.open.alipay.com/194/105072/

可以在文檔中發現掃碼付有兩種場景,一種是本地系統借助紅外線產品機器掃描用戶的支付條碼,另一種是本地系統借助支付寶api生成收款二維碼,用戶掃碼支付后,回調本地系統的指定請求修改訂單狀態和響應處理。

2. 下載掃碼付的相關sdk-demo

地址:https://docs.open.alipay.com/194/105201/

根據不同的編程語言選擇不同的demo下載,下載后解壓后有兩個目錄,其中是支付寶服務的相關代碼,另一個項目中的代碼類似各種場景的測試類。

3. 新建一個maven工程,將提供的demo整合進去

新建一個工程,將demo中的兩個工程都整合進去,步驟如下:

3.1 添加依賴

<!--支付寶接口依賴-->
<dependency>
    <groupId>com.alipay.sdk</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>3.0.0</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>
<dependency>
    <groupId>commons-configuration</groupId>
    <artifactId>commons-configuration</artifactId>
    <version>1.10</version>
    <!--<exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
            </exclusions>-->
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.11</version>
</dependency>
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>1.3</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

3.2 添加支付寶實體和服務資源文件

  1. 將下載的demo中的 TradePaySDK項目中的資源放到新項目中
  2. 新建資源目錄resources,將下載的demo中的TradePayDemo中的properties文件放入其中
  3. TradePayDemo工程的測試啟動類放入到新項目中

最終的新項目結構如下:

4. 使用沙箱環境

文檔地址:https://docs.open.alipay.com/200/105311/

什么是沙箱環境,可以想象成在支付寶的研發環境中調用接口,沙箱環境會提供一個商家appid(正式環境中是需要通過資格認證申請的),以及測試的沙箱支付寶登陸賬號密碼,支付密碼,等,隨后通過支付寶提供的工具生成商家的RSA公鑰和私鑰,在通過生成的公鑰生成支付寶的SHA公鑰,然后替換提供的配置文件(zfbinfo.properties)中的各種資源信息(網關地址以及key等),下面將會一步步的使用該環境。

4.1 進入到沙箱環境

在地址:https://docs.open.alipay.com/200/105311/ 中有沙箱環境的超鏈接,點擊鏈接條件到支付寶登陸頁面


掃碼登陸后,如何沒有加入到支付寶的開放平台的需要先加入到支付寶開放平台,然后在重新進入到沙箱環境。

沙箱環境應該如下圖:

4.2 替換商家的appid(唯一),open_api_domain,以及pid信息

將項目中的配置文件中的三個屬性按照下圖來替換

4.3 借助工具生成商家的公鑰和私鑰

工具地址:https://docs.open.alipay.com/291/105971

4.3.1 根據不同的操作系統選擇對應的版本下載

4.3.2 運行軟件

4.3.3 替換配置文件中的商家的公鑰和私鑰

4.4 根據生成的商家的公鑰生成對應的支付寶公鑰

4.4.1 借助商家公鑰生成支付寶公鑰

處理地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info

回到沙箱環境,點擊 RSA2(SHA256)密鑰(推薦) 屬性的設置按鈕,根據剛才生成的商家公鑰來生成支付寶公鑰信息,操作如下圖:


4.4.2 替換配置文件中的支付寶公鑰信息

5. 沙箱環境下的支付寶軟件

軟件地址:https://openhome.alipay.com/platform/appDaily.htm?tab=tool

5.1 下載沙箱環境下的支付寶軟件,目前只支持安卓系統

5.2 根據支付寶提供的買家信息登陸支付寶

6. 測試場景

6.1 測試生成支付二維碼場景

6.1.1 修改二維碼圖片生成路徑

打開工程中的Main這個類,進入 [test_trade_precreate()]方法中,修改二維碼生成路徑,修改自己指定的地址即可,

未修改前:

// 需要修改為運行機器上的路徑
String filePath = String.format("/Users/sudo/Desktop/qr-%s.png",
response.getOutTradeNo());

修改后:

// 需要修改為運行機器上的路徑
String filePath = String.format("D:/qrCode/qr-%s.png",response.getOutTradeNo());

6.1.2 開啟生成二維碼功能

修改完生成二維碼圖片路徑后,發現生成二維碼圖片的功能被注釋了,現在取消注釋,開啟功能。

未修改前:

//ZxingUtils.getQRCodeImge(response.getQrCode(), 256, filePath);

修改后:

ZxingUtils.getQRCodeImge(response.getQrCode(), 256, filePath);

6.1.3 測試程序

啟動main方法,運行后發現成功的在指定目錄下生成了支付二維碼圖片

然后支付即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM