前言
本篇博客主要總結工作中對接支付寶支付的心得體會以及常用的幾種支付寶支付方式
支付寶支付方式
參考支付寶開放平台官方網站 https://open.alipay.com/api
可以看到支付寶主要提供了以下的支付方式
1.當面付
2.APP支付
3.小程序支付
4.手機網站支付
5.電腦網站支付
.....
其中常用的支付方式為:APP支付,當面付,小程序支付
APP支付
參考文檔鏈接
https://opendocs.alipay.com/open/204
使用場景
APP支付適用於商家在 App 應用中集成支付寶支付功能。 商家APP調用支付寶提供的 SDK,SDK 再調用支付寶APP內的支付模塊。如果用戶已安裝支付寶 APP,商家 APP 會跳轉到支付寶中完成支付,支付完后跳回到商家APP內,最后展示支付結果。如果用戶沒有安裝支付寶 APP,商家 APP 內會調起支付寶網頁支付收銀台,用戶登錄支付寶賬戶,支付完后展示支付結果。 目前支持手機系統有:iOS(蘋果)、Android(安卓)。
支付流程
1.用戶在商家 App 中選擇商品下單、確認購買,進入支付環節,選擇支付寶,用戶點擊確認支付,如圖1;
2.進入到支付寶頁面,調起支付寶支付,出現確認支付界面,如圖2;
3.用戶確認收款方和金額,點擊立即支付后出現輸入密碼界面,如圖3;
4.輸入正確密碼后,支付寶端顯示支付結果,如圖 4;
5.自動回跳到商家 App 中,商家根據付款結果個性化展示訂單處理結果,如圖 5。
核心API接口
app支付接口:alipay.trade.app.pay(app支付接口2.0)
場景:外部商戶APP喚起快捷SDK創建訂單並支付
接口返回值:一串帶很多參數的沒有域名的URL參數,例如,客戶端拿到這串參數后,會在參數拼接到URL, https://openapi.alipay.com/gateway.do中
charset=UTF-8&method=alipay.trade.app.pay&sign=k0w1DePFqNMQWyGBwOaEsZEJuaIEQufjoPLtwYBYgiX%2FRSkBFY38VuhrNumXpoPY9KgLKtm4nwWz4DEQpGXOOLaqRZg4nDOGOyCmwHmVSV5qWKDgWMiW%2BLC2f9Buil%2BEUdE8CFnWhM8uWBZLGUiCrAJA14hTjVt4BiEyiPrtrMZu0o6%2FXsBu%2Fi6y4xPR%2BvJ3KWU8gQe82dIQbowLYVBuebUMc79Iavr7XlhQEFf%2F7WQcWgdmo2pnF4tu0CieUS7Jb0FfCwV%2F8UyrqFXzmCzCdI2P5FlMIMJ4zQp%2BTBYsoTVK6tg12stpJQGa2u3%2BzZy1r0KNzxcGLHL%2BwWRTx%2FCU%2Fg%3D%3D¬ify_url=http%3A%2F%2F114.55.81.185%2Fopendevtools%2Fnotify%2Fdo%2Fbf70dcb4-13c9-4458-a547-3a5a1e8ead04&version=1.0&app_id=2014100900013222&sign_type=RSA×tamp=2021-02-02+14%3A11%3A40&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json
當面付
參考文檔鏈接
https://opendocs.alipay.com/open/194
使用場景(兩種,這里主要是介紹掃碼支付)
當面付包括付款碼支付和掃碼支付兩種收款方式。適用於線下實體店支付、面對面支付、自助售貨機等場景。
1.付款碼支付:商家使用掃碼槍或其他掃碼機具掃描用戶出示的付款碼,來實現收款。
2.掃碼支付:商家提供收款二維碼,由用戶通過支付寶掃碼支付,來實現收款。
支付流程
核心API接口
統一收單線下交易預創建: alipay.trade.precreate
場景:收銀員通過收銀台或商戶后台調用支付寶接口,生成二維碼后,展示給用戶,由用戶掃描二維碼完成訂單支付。
接口返回值:一串JSON數據,其中qr_code是支付寶鏈接,可以將改鏈接轉換為二維碼呈現給用戶,用戶支付支付寶掃碼完成支付
{ "alipay_trade_precreate_response": { "code": "10000", "msg": "Success", "out_trade_no": "6823789339978248", "qr_code": "https://qr.alipay.com/bavh4wjlxf12tper3a" }, "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" }
注意:
商戶如果有APP也可以使用這個返回的鏈接,跳轉到支付寶進行支付
那么同樣的,微信掃碼支付是否可以通過商戶的APP跳轉微信進行支付呢?
答案是不行的,因為微信使用的是自有的協議(Wx協議,例如:weixin://wxpay/bizpayurl?pr=p4lpSuKzz),不是標准的http協議
注意事項
1.無論是商戶介入當面付還是APP支付,都需要提前簽約
2.常見的錯誤,簽名錯誤,客戶端無法拉起支付,等等,可以參考支付寶支持,根據排查問題流程進行自查
https://opensupport.alipay.com/support/helpcenter/89?ant_source=zsearchant_source%3Dmanual&recommend=b40629faf04c437cab2dbb8a5e39a73d