一款簡單易學(xué)的支付寶開源支付項(xiàng)目
大家好,我是TJ
一個勵志推薦10000款開源項(xiàng)目與工具的程序員

這兩天TJ君稍微關(guān)注了一下娛樂新聞,因?yàn)橹匿撉偌依钤频铣鍪铝?,鋪天蓋地都是其涉嫌PC被捕的事情,其中主要的一個證據(jù),就是李云迪通過支付寶實(shí)名轉(zhuǎn)賬給了涉事女子,成為鐵一般的犯罪事實(shí),金額還不小,據(jù)說一次一萬。

不過這說到支付寶的轉(zhuǎn)賬,TJ君昨天剛看到一個基于spring-boot的支付實(shí)例項(xiàng)目spring-boot-pay,項(xiàng)目可以拿來即插即用,也可以作為一款學(xué)習(xí)支付寶支付服務(wù)的好案例。TJ君覺得要和大家分享一下!
要先提示大家的是支付寶測試均需要企業(yè)認(rèn)證,如果想測試的小伙伴正好沒有企業(yè)認(rèn)證,那也可以使用服務(wù)商模式申請開通個人商戶,一樣可以用來測試。
那具體如何申請服務(wù)商模式,項(xiàng)目里有申請鏈接,感興趣的小伙伴可以關(guān)注TJ君回復(fù)關(guān)鍵字獲取項(xiàng)目地址后自行查看。

項(xiàng)目包含了支付寶支付服務(wù)中的各種場景,包括:掃碼支付、電腦支付、WAP支付、APP支付服務(wù)端
主要運(yùn)用的技術(shù)棧有:
JDK1.8 Maven IDEA SpringBoot2.2.6 Dubbo2.7.3 zookeeper3.5.3
項(xiàng)目運(yùn)行起來的演示畫面絲毫不遜色于一些大廠出品:
模擬登陸

模擬首頁

模擬支付

支付寶參數(shù)zfbinfo.properties包含如下內(nèi)容:
支付寶網(wǎng)關(guān)名、partnerId和appId
open_api_domain = https://openapi.alipay.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
此處請?zhí)顚懩愕腜ID
pid =XXXXXXXXXXXXXX
此處請?zhí)顚懩惝?dāng)面付的APPID
appid =XXXXXXXXXXXXXX
RSA私鑰、公鑰和支付寶公鑰
private_key = XXXXXXXXXXXXXX
public_key = XXXXXXXXXXXXXX
alipay_public_key = XXXXXXXXXXXXXX
當(dāng)面付最大查詢次數(shù)和查詢間隔(毫秒)
max_query_retry = 5
query_duration = 5000
當(dāng)面付最大撤銷次數(shù)和撤銷間隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000
交易保障線程第一次調(diào)度延遲和調(diào)度間隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900
當(dāng)然,項(xiàng)目要用到的支付寶的公鑰參數(shù)、支付寶的SDK-alipay-sdk-java,都需要從阿里的官網(wǎng)獲得,地址如下:
https://openclub.alipay.com/read.php?tid=2190&fid=69 https://docs.open.alipay.com/54/103419/
作者對如何部署整個項(xiàng)目、使用戶能夠正常使用,寫了詳盡的部署及啟動說明:

簡單來說,就是
1、安裝注冊中心zookeeper 2、基礎(chǔ)配置初始化類:com.itstyle.common.cinfig.InitPay 3、配置支付寶相關(guān)賬號以及證書 4、啟動項(xiàng)目
對于掃碼支付、電腦支付、WAP支付、APP支付服務(wù)端等各種支付方式,代碼中也是分類清晰,讓人一目了然
????/**
?????*?電腦支付
?????*?@param?product
?????*?@param?map
?????*?@return
?????*/
?@ApiOperation(value="電腦支付")
?@PostMapping(value="pcPay")
????public?String??pcPay(Product?product,ModelMap?map)?{
??logger.info("電腦支付");
??String?form??=??aliPayService.aliPayPc(product);
??map.addAttribute("form",?form);
??return?"aliPay/pay";
????}
????/**
?????*?手機(jī)H5支付
?????*?@param?product
?????*?@param?map
?????*?@return
?????*/
?@ApiOperation(value="手機(jī)H5支付")
?@PostMapping(value="mobilePay")
????public?String??mobilePay(Product?product,ModelMap?map)?{
??logger.info("手機(jī)H5支付");
??String?form??=??aliPayService.aliPayMobile(product);
??map.addAttribute("form",?form);
??return?"aliPay/pay";
????}
????/**
?????*?掃碼支付
?????*?@param?product
?????*?@param?map
?????*?@return
?????*/
?@ApiOperation(value="二維碼支付")
?@PostMapping(value="qcPay")
????public?String??qcPay(Product?product,ModelMap?map)?{
??logger.info("二維碼支付");
??String?message??=??aliPayService.aliPay(product);
??if(!Constants.FAIL.equals(message)){
???map.addAttribute("img",?message);
??}else{
??}
??return?"aliPay/qcpay";
????}
?@ApiOperation(value="app支付服務(wù)端")
?@PostMapping(value="appPay")
????public?String??appPay(Product?product,ModelMap?map)?{
??logger.info("app支付服務(wù)端");
??String?orderString??=??aliPayService.appPay(product);
??map.addAttribute("orderString",?orderString);
??return?"aliPay/pay";
????}
相信整個項(xiàng)目對于想學(xué)習(xí)支付方面知識的小伙伴,肯定有所裨益,另外項(xiàng)目除了支付寶支付,還有其他微信支付,銀聯(lián)支付的相關(guān)內(nèi)容,感興趣的小伙伴可以一并學(xué)習(xí)。除了想學(xué)習(xí)的小伙伴,項(xiàng)目只要配置好相關(guān)參數(shù),把接口類打個包,就可以最簡單的直接使用,簡單省事。心動不如行動,完整項(xiàng)目地址如下:
點(diǎn)擊下方卡片,關(guān)注公眾號“TJ君”
回復(fù)“支付寶支付”,獲取倉庫地址
關(guān)注我,每天了解一個牛x、好用、有趣的東東
