在共享盛行的今天,我們在很多場景下,如果我們要享受某些共享紅利,必須支付一定的押金。支付寶作為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?,推出來預(yù)授權(quán)功能,用戶在支付寶上的信用分滿足一定條件的要求下,信用分可以抵扣全部或者部分的押金,超出的金額,可以從花唄/余額/余額寶扣除,用戶享受完共享產(chǎn)品后,金額會進(jìn)行解凍。
一.準(zhǔn)備工作:
1.閱讀螞蟻金服開發(fā)文檔以及教程:
https://docs.open.alipay.com/20180417160701241302里面包含了參數(shù)的說明。
2.預(yù)授權(quán)流程簡介:

2.1.圖上1開頭的步驟,主要是實現(xiàn)了app到商戶后臺,請求支付寶預(yù)授權(quán)簽名;
2.2.圖上2開頭的步驟,將支付寶簽名和必要的參數(shù),通過支付寶sdk接口,調(diào)起支付寶app;
2.3.圖上3開頭的步驟,用戶在支付寶上進(jìn)行預(yù)授權(quán)操作;
2.4.圖上4和5開頭的步驟,用戶從支付寶app返回到商戶app,支付寶把支付結(jié)果返回給商戶的前后臺;
2.5.圖6,7和8的步驟,是結(jié)束預(yù)授權(quán),解凍的過程。
注意:在生成簽名的時候,可能需要傳一些預(yù)授權(quán)的特殊參數(shù):extra_Param={"category":"xxx","outStoreCode":"code0011","outStoreAlias":"codeName"}擴(kuò)展參數(shù),category為業(yè)務(wù)分類,outStoreCode選填參數(shù),outStoreAlias選填參數(shù),outStoreAlias將在用戶端信用守護(hù)、支付信息、賬單詳情頁展示;enablePayChannels為選填字段,可以指定支付渠道,若需要指定渠道,可以傳入具體的某個渠道參數(shù),目前僅支持余額寶(MONEY_FUND)、花唄(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)
3.客戶端開發(fā)步驟:
3.1.導(dǎo)入支付寶SDK,具體可以參考https://docs.open.alipay.com/204/105295/;
3.2.支付寶預(yù)授權(quán)接口
-(void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock
- orderStr:商戶后臺返回的支付寶簽名;
- schemeStr:用于跳轉(zhuǎn)的urlScheme;
- completionBlock:結(jié)果回調(diào)。
4.客戶端獲取支付結(jié)果:
4.1.通過urlSchem返回走appDelegate中application(這里要區(qū)分iOS9之前和之后的方法);返回9000為成功,8000位在支付中,6001為用戶取消。
4.2.用戶從后臺返回,這里就需要查詢商戶后臺,獲取支付結(jié)果。
5.架構(gòu)設(shè)計
與云閃付存在異曲同工之處,可以參考http://www.itdecent.cn/p/16f609c70a01。