1. 程式人生 > >JAVA支付寶和微信(APP支付,提現,退款)

JAVA支付寶和微信(APP支付,提現,退款)

公共引數圖表:

       介面

需要引數

通知方式

支付寶APP支付

應用公鑰,應用私鑰

非同步

支付寶APP提現

應用公鑰,應用私鑰,支付寶公鑰

同步

支付寶APP退款

應用公鑰,應用私鑰,支付寶公鑰

同步

微信APP支付

APPID,商戶號,api_key

支付金鑰

非同步

微信APP提現

APPID,商戶號,api_key

支付金鑰,證書

同步

微信APP退款

APPID,商戶號,api_key

支付金鑰,證書

同步

一. 支付寶APP

    1.因為我們公司是做APP開發,所以把APP為藍本。

    2.支付介面

    (1)支付寶支付分三步,第一步設定公共引數;第二步支付程式碼;第三步回撥程式碼;其實比較麻煩的是第一步設定公共引數,因為如果引數設定不正確會提示你網路繁忙等錯誤,讓人摸不清頭腦,

支付寶官網有現成的支付程式碼和回撥程式碼 ,所以參照文件把第二步和第三步完成;

(2)注意:我做支付前習慣性的會把引數重新設定一遍,因為程式碼問題不大的時候多半是配置公共引數的問題,APP支付寶支付需要的公共引數是應用公鑰和應用私鑰,分清楚應用公鑰和應用私鑰和支付寶公鑰 ,支付的時候其實只需要應用公鑰和應用私鑰。支付寶提供專門的簽名工具,讓你設定應用公鑰和私鑰,設定完公鑰和私鑰後可以驗證下公鑰和私鑰的一致性,使用簽名工具匹配下。

 2.提現介面

(1)提現介面使用應用公鑰和應用私鑰還有支付寶公鑰,在配置引數時只需要配置應用私鑰和支付寶公鑰,提現介面的通知方式是同步通知,不需要添加回調地址;

(2)注意:提現需要注意的問題注意如果出現網路繁忙時一般是公共引數配置有問題,注意應用私鑰和支付寶公鑰是否配套;

(3)方式:提現其實就是單筆轉賬介面,根據支付寶商戶號向用戶的支付寶帳號轉賬,所以在提現時需要提供使用者的支付寶賬戶,跟我們在使用支付寶一樣,就算沒有對方好友也可以轉賬,並且轉賬是不可逆的,意思就是如果轉賬錯誤那麼系統是無法還原的。在支付寶中如果金額過大我們可以新增真實姓名驗證,這個引數在轉賬介面中是可選引數,如果嫌麻煩可以不選,只傳支付寶帳號也是可以的。

3.退款介面

(1)退款介面,在我們向支付寶支付時需要提交一個out_trade_no這個引數是我們在提交支付時向支付寶系統提交的訂單號,用來標識該支付在我們系統是唯一的標識,但是在支付成功後支付寶會返回一個trade_no是支付寶為此次支付行為的唯一標識,在退款中兩個訂單號都可以作為退款訂單的唯一標識來操作,二選一。

(2)注意:退款通知同步通知 ,退款金額不能大於支付金額,如果大於會出現錯誤,並且單筆轉賬需要申請功能,並且簽約;

4.總結

(1)支付寶APP介面使用第一步需要建立APP應用 ;

(2)建立成功後申請支付功能和單筆轉賬功能;

(3)申請成功後配置應用公鑰和應用私鑰還有支付寶公鑰;

(4)根據支付寶官方提供的demo配置公共引數和私有引數;

(5)調起支付介面,根據支付錯誤檢視具體原因;

(6)如果找不到提議重新設定應用公鑰和應用私鑰還有支付寶公鑰,並且要保證其匹配性;

(7)這裡就不寫我的程式碼瞭如果有不懂的可以聯聯絡我Q1015357413 備註支付

二. 微信APP

1.微信支付

(1)微信支付需要填寫公共引數商戶號和APPID(你在開放平臺申請的)還有api_key,APPKey其實在微信支付上其實並沒有什麼用處,所以你甚至可以不需要填寫,根據微信支付官方提供的demo,把引數配置下直接呼叫就可以了;

(2)注意:下載demo時你會發現為什麼我還是不知道怎麼用截圖說明下


點選下載指定demo


我下載的是javaDemo開啟指定的壓縮包


開啟最關鍵的檔案README.md這裡面是支付和退款的demo示例


根據這個檔案呼叫介面就可以了

(3)微信支付單位是以分的,就是你支付1塊其實在引數填寫時你需要填寫100,最小單位是一分;

2.微信提現

(1)其實微信提現嚴格來說叫企業付款,企業付款,企業付款到客戶的零錢中,需要引數商戶號,apikey,appid,appKey,還有最重要的證書,證書是在商戶平臺下載的在提現時需要通過證書驗證;

(2)注意:提現是有限制的


你登入商戶平臺你發現我為撒沒有企業付款功能呢?不是沒有而是你沒有許可權而已,所以只能耐心等待,等條件滿足了在商戶平臺再申請功能吧。

提現時需要通過openid來實現功能,openid是微信使用者對於應用來說在微信的唯一標識,這個標識有兩種獲取途徑,第一是授權,第二是支付。微信授權後我們會獲取到使用者的openid支付成功後也會返回給我們openid。所以兩種方式自己選擇一種比較簡單的方式吧。

3.微信退款

(1)根據訂單號退款同步通知跟支付寶類似,同步通知退款;

(2)注意:退款的依據支付訂單號transaction_idout_trade_no也是二選一,一個是微信內部的訂單號一個是我們系統內部的訂單號,根據二個任何一個都可以完成退款操作,退款成功後如果金額過大可以呼叫查詢退款介面,查詢退款操作是否完成。

三. 微信小程式

(1)微信小程式和APP介面呼叫的不同,只有支付步相同,因為在微信小程式支付時需要的引數是openid,openid是微信的唯一標識,可以在小程式使用小程式授權介面獲取到這個openid,獲取到openid調起支付;

(2)今天主要講支付有關於小程式的問題下次部落格進行分享。

四。總結

1.支付介面需要前端(APP,小程式)提供引數並且整合,提現和退款介面服務端可以直接完成操作,所以支付介面會隨著APP支付和小程式支付有這不同的改變,殊途同歸;

2.支付寶和微信的不同,從一個菜鳥的角度來看其實支付寶介面呼叫和微信介面呼叫來說,支付寶介面呼叫更省力和簡單,微信介面稍微有點麻煩,但是在實現功能方式上其實各有千秋,支付寶通過公鑰和私鑰加密加密和解密實現介面呼叫,微信通過apikey和商戶id還有證書還有APPid加密實現介面呼叫,我感覺其實其實兩個支付方式都挺好的;

3.支付寶APP支付你建立完應用以後需要功能功能簽約,然後應用上線才能在正式環境中測試(劃重點),支付資料可以在支付寶商戶平臺檢視;

4.微信APP支付需要先建立微信開放平臺帳號,申請成功後需要申請APP應用,並且需要APP的包和唯一標識,來確定唯一的APP,申請完畢以後在商戶平臺中申請企業付款等功能;

5.如果你想要提現請保證你的開發帳號是企業帳號,否則個人帳號是沒有辦法進行企業退付款的;

6.支付寶應用建立完以後可以在任何APP中調起支付,微信支付只能在指定的APP中調起支付,各有好處和壞處。

本篇文章並沒有貼有相關程式碼,如果你需要程式碼支援可以聯絡我Q1015357413   備註支付