世界上最可愛的人是誰?當然是毛爺爺鴨!坦白講,大家辛辛苦苦兢兢業業的開發小程式,還不就是為了使用者付款的高光時刻(看著?進了老闆的口袋,忍不住幻想自己今天一定!可以!加!雞腿!!)。所以今天我們就給大家來點實在的,講一講智慧小程式的支付能力。
小程式支付
有位偉人曾經說過:“錢就是要多多益善。”所以我們的智慧小程式不僅支援百度支付,還支援微信支付和支付寶這兩個當下主流的支付方式。
接下來看看為了?,我們都要幹些什麼?
具體的接入方式
首先來談一談百度小程式支付的接入方式。
文件傳送門:https://smartprogram.baidu.com/docs/develop/api/open_payment/
⬆️連結是百度收銀臺支付的API介面文件。
先自我膨脹一下:從這個文件可以看出想要接入百度小程式支付,就需要在百度開放平臺上註冊賬號才行。可以猜想未來這個註冊賬號應該可以在百度全系產品中通用才對,小程式是其中一個渠道。這種做法在平臺級別的產品上還是比較通用的。遙想百度小程式宣稱未來將要開源,支付賬號在其他宿主app上是否通用還未可知,如果可以通用那就有更廣闊的空間了。
言歸正傳,接入流程還是比較主流的:
上傳資訊–>
資質稽核–>
上傳RSA公鑰–>
設定服務端地址–>
建立服務。
剩下的就是等待稽核人員點選Ok啦(個人經驗稽核流程還是很快噠)。不過目前支付流程中只有線上環境,並沒有提供沙盒環境,所以測試的話只能用線上的測試單進行測試,但是請放心,這點我們一定會盡量完善噠。
關於呼叫流程
支付流程我認為可以主要分為兩大塊: 1. 支付流程 2. 退款流程
1.支付流程
支付流程首先是呼叫支付,發起支付請求。
呼叫requestAPI向自己的服務端請求引數,服務端按照要求拼接好引數,然後將引數資訊通過呼叫requestPolymerPaymentAPI傳遞進去,支付完成以後會有回撥結果傳遞回來。同時服務端會發起一個請求,回撥支付的狀態。具體流程和各模組職責可以如上圖所示,感興趣的同學可以瞭解一下。
2.退款流程
敲黑板,劃重點——重要的事情,我們會在另一篇文章中,詳細為您講解~
發起請求的引數拼接
“>
引數拼接中主要講的是bizinfo欄位,這個欄位看著感覺很奇怪,內部需要傳的欄位和外部是很相似的。需要的引數在外層的orderInfo是完全一致的。看了我們的官方文件是這樣寫的:
bizInfo引數是為了給業務方透傳資訊使用的,屬於選填屬性。 其中封裝了部分核心引數,是為了在下游展示環節做冗餘備份處理,推薦開發者按下表封裝這些核心引數。
雖然推薦填寫,但是親測是可以不填的哈。在bizinfo中還提供了一個欄位returnData,這個欄位可以幫助我們透傳一些需要的引數,並且對可以自由定製,這點還是很好用的。
~~彩蛋~~
根據自己的開發經驗,總結了一些可能會常常遇到的問題,一起分享給大家⬇️
1.支付成功回撥兩次都失敗,如何避免正常支付訂單退款?
答:支付回撥超時時間是2s,目前會重試一次,再超時會觸發異常退款 異常退款,異常退款會主動呼叫開發者退款稽核介面,如果退款稽核介面返回auditStatus:2,表示退款稽核失敗,此時訂單不再變化,停止在已支付狀態,不會再進行支付回撥 業務方可以通過查單介面檢視訂單狀態。
2. 請求介面的URL是http的還是https?
答:https
3.百度的標記的使用者ID全都是數字吧,業務方用long型別接收可以嗎?
答:百度的使用者id現在是數字,引數型別建議用String 。
4. 如果業務方針對某個訂單連續多次申請退款,百度會重複退款嗎?
答:不會