W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
注意:Demo 僅供參考,實際開發(fā)中需要結(jié)合具體業(yè)務(wù)場景修改使用。更多接入詳情參見 當面付。
以 JAVA Demo 為例,本示例僅在支付寶標準 SDK 的基礎(chǔ)上再做了一層封裝, 即 JAVA 版本 Demo 中 alipay-trade-sdk.jar。
支付寶提供了如下語言當面付 Demo 示例,開發(fā)者可下載使用。
JAVA 版 | DEMO |
---|---|
.NET 版 | DEMO |
PHP 版 | DEMO |
public static void main(String[] args) {
Main main = new Main();
// 系統(tǒng)商商測試交易保障接口api
main.test_monitor_sys();
// POS廠商測試交易保障接口api
main.test_monitor_pos();
// 測試交易保障接口調(diào)度
main.test_monitor_schedule_logic();
// 測試當面付2.0支付(使用未集成交易保障接口的當面付2.0服務(wù))
main.test_trade_pay(tradeService);
// 測試查詢當面付2.0交易
main.test_trade_query();
// 測試當面付2.0退貨
main.test_trade_refund();
// 測試當面付2.0生成支付二維碼
main.test_trade_precreate();
}
├─src
│ └─main
│ ├─java
│ ├─com
│ ├─alipay
│ ├─demo
│ ├─trade
│ ├─Main.java 當面付2.0調(diào)用范例
│ ├─lib 依賴類庫
│ ├─alipay-sdk-java20150625220051.jar
│ ├─alipay-trade-sdk.jar TradePaySDK創(chuàng)建的lib
│ ├─commons-codec-1.10.jar
│ ├─commons-configuration-1.10.jar
│ ├─commons-lang-2.6.jar
│ ├─commons-logging-1.1.1.jar
│ ├─core-2.1.jar
│ ├─gson-2.3.1.jar
│ ├─gson-2.3.1.jar
│ └─resources
│ ├─zfbinfo.properties 配置文件,調(diào)用 Main 方法之前請確認配置文件是否已正確配置
public interface AlipayTradeService {
// 當面付2.0流程支付 public AlipayF2FPayResult tradePay(AlipayTradePayContentBuilder builder);
// 當面付2.0消費查詢 public AlipayF2FQueryResult queryTradeResult(String outTradeNo);
// 當面付2.0消費退款 public AlipayF2FRefundResult tradeRefund(AlipayTradeRefundContentBuilder builder);
// 當面付2.0預下單(生成二維碼)public AlipayF2FPrecreateResult tradePrecreate(AlipayTradePrecreateContentBuilder builder);}
demo 封裝支付寶 SDK,提供了條碼付支付、查詢、退款 (條碼支付)功能,可以給收銀系統(tǒng)界面直接調(diào)用。
方案一:采用 條碼支付 > 查詢接口流程。
方案二: 采用輪詢邏輯
示例代碼:
alipay-trade-sdk.jar 中提供了輪詢 demo,詳情參見 com.alipay.demo.trade.service.impl.AbsAlipayTradeService.loopQueryResult。
// 輪詢查詢訂單支付結(jié)果
protected AlipayTradeQueryResponse loopQueryResult(AlipayTradeQueryRequestBuilder builder) {
AlipayTradeQueryResponse queryResult = null;
for (int i = 0; i < Configs.getMaxQueryRetry(); i++) {
Utils.sleep(Configs.getQueryDuration());
AlipayTradeQueryResponse response = tradeQuery(builder);
if (response != null) {
if (stopQuery(response)) {
return response;
}
queryResult = response;
}
}
return queryResult;
}
alipay-trade-sdk.jar 結(jié)構(gòu)說明:
src
-- main
|-- java
| -- com
| -- alipay
| |-- api 服務(wù)保障接口數(shù)據(jù)模型,以后會遷移回底層 alipay sdk
| | |-- request
| | | -- AlipayHeartbeatSyncRequest.java
| | -- response
| | -- AlipayHeartbeatSynResponse.java
| -- demo
| -- trade
| |-- config
| | |-- Configs.java 配置文件,解析properties文件
| | -- Constants.java 常量定義
| |-- model
| | |-- ExtendParams.java 擴展參數(shù)
| | |-- GoodsDetail.java
| | |-- TradeStatus.java
| | |-- builder 當面付2.0請求包
| | | |-- AlipayHeartbeatSyncContentBuilder.java 服務(wù)保障接口請求bizContent結(jié)構(gòu)體
| | | |-- AlipayTradePayContentBuilder.java 條碼支付請求bizContent結(jié)構(gòu)體
| | | |-- AlipayTradePrecreateContentBuilder.java 掃碼支付(產(chǎn)生二維碼)請求bizContent結(jié)構(gòu)體
| | | |-- AlipayTradeQueryCententBuilder.java 當面付2.0查詢請求bizContent結(jié)構(gòu)體
| | | |-- AlipayTradeRefundContentBuilder.java 當面付2.0退款請求bizContent結(jié)構(gòu)體
| | | -- RequestBuilder.java 當面付2.0請求抽象類
| | |-- hb 服務(wù)保障接口數(shù)據(jù)模型
| | | |-- EquipStatus.java
| | | |-- EquipStatusAdapter.java
| | | |-- ExceptionInfo.java
| | | |-- ExceptionInfoAdapter.java
| | | |-- Product.java
| | | |-- TradeInfo.java
| | | |-- TradeStatus.java
| | | -- Type.java
| | -- result 當面付2.0應答包
| | |-- AlipayF2FPayResult.java 當面付2.0支付應答
| | |-- AlipayF2FPrecreateResult.java 當面付2.0預下單(產(chǎn)生二維碼)應答
| | |-- AlipayF2FQueryResult.java 當面付2.0查詢應答
| | |-- AlipayF2FRefundResult.java 當面付2.0退貨應答
| | -- Result.java
| |-- service
| | |-- AlipayTradeService.java 當面付2.0服務(wù)接口
| | -- impl
| | -- AlipayTradeServiceImpl.java 當面付2.0具體實現(xiàn)
| -- utils
| |-- GsonFactory.java 使用了gson序列化
| |-- Utils.java 雜物工具類
| -- ZxingUtils.java 使用了zxing庫進行二維碼的生成
-- lib 依賴類庫
? |-- alipay-sdk-java20150625220051.jar 支付寶sdk底層實現(xiàn)lib
? |-- commons-codec-1.10.jar
? |-- commons-configuration-1.10.jar
? |-- commons-lang-2.6.jar
? |-- commons-logging-1.1.1.jar
? |-- core-2.1.jar
? |-- gson-2.3.1.jar
? -- hamcrest-core-1.3.jar
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: