Java 支付对接之微信/支付宝扫码支付(也就是H5支付)
寫在前面:
具體對接請參考接口文檔,對接文檔寫的會更詳細,本文只探討支付實現(xiàn)思路
支付流程:
基本上支付功能的對接都差不多,我把它簡化為3步:
支付實現(xiàn)流程:
這一步可以按需求設(shè)計,我這邊是設(shè)計一個二維碼,也可以使用其他方式誘導(dǎo)用戶進入獲取賬單信息
在獲取賬單信息的同時調(diào)用支付微信/支付寶提供的統(tǒng)一下單接口,獲取支付URL
在調(diào)用統(tǒng)一下單接口時除了商品的基本信息外還需要生成一個支付訂單號,每個支付訂單都必須有一個唯一的訂單號,支付成功會原樣返回,用于確保訂單的唯一性;并且需要上傳商戶收費賬單號,支付成功回調(diào)時也會原樣返回,用于確認賬單支付狀態(tài)。
在支付成功異步回調(diào)的接口中拿到回調(diào)數(shù)據(jù)后:
第一步,先驗簽,先判斷回調(diào)數(shù)據(jù)是否合法;
第二步,拿到支付訂單號(每一筆支付訂單都有唯一的訂單號),用于判斷是否重復(fù)回調(diào),因為有可能因為網(wǎng)絡(luò)等原因,會重復(fù)收到支付成功通知;
第三步,保存支付成功回調(diào)信息,每一個支付完的信息都要保存好,方便后續(xù)查看,并且要用于判斷是否重復(fù)回調(diào);
第四步,拿到回調(diào)信息中商戶訂單號,也就是調(diào)用統(tǒng)一下單接口時上傳的收費賬單號,拿到收費賬單號后調(diào)出未支付收費賬單并修改支付狀態(tài),以及處理一下需要支付完成后才能執(zhí)行的操作,比如說開閘。
最后,業(yè)務(wù)處理結(jié)束后記得再回復(fù)“SUCCESS",因為如果你沒有回復(fù)接收成的話他們會誤以為你沒有收到,然后再給你發(fā)一次。
總結(jié) :
一、對支付第三方的理解
- 對接支付第三方實際上就是兩個平臺之間的交互,支付平臺需要知道商品的基本信息及商品的價格,商戶平臺需要知道訂單的支付狀態(tài)、支付金額及支付時間
二、對支付的理解
- 連接起兩個平臺的其實就兩個接口:一個是支付平臺提供的統(tǒng)一下單接口,一個是商戶平臺提供的支付成功回調(diào)接口;兩個接口都完成才算是一次完整的支付
總結(jié)
以上是生活随笔為你收集整理的Java 支付对接之微信/支付宝扫码支付(也就是H5支付)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UG NX 12 内部草图和外部草图的区
- 下一篇: 音视频处理、图像处理、图像识别和字符识别