我給你一顆糖,你看到我給他兩顆,你就對我有看法了.
但你不知道他也曾給我兩顆糖,而你什么都沒給過我.
較之微信支付的SDK,阿里支付的集成確實是步驟多了些,集成過程中稍不注意就可能出現(xiàn)錯誤.
一般建議是,如果一個SDK提供有cocoPod的集成通道,那么優(yōu)先選擇使用cocopod. 一來是項目結構不會變的凌亂,二來,也不需要再額外的配置諸多環(huán)境,當前微信支付已經(jīng)提供了cocopod集成,而在alipay文檔中,暫還沒有發(fā)現(xiàn)提供cocopod支持. 故,阿里支付仍然使用直接拖入SDK的方式. 根據(jù)其提供的API,也可以順利集成.
簽名&流程
需要注意的是,支付寶的簽名生成步驟必須在服務端完成,生成簽名的方式按照官方提供說明即可. 一個大致的流程就是,先用工具生成一個商戶公鑰和私鑰,將商戶公鑰上傳到支付寶后會生成一個支付寶公鑰,后臺拿到支付寶公鑰并加上商戶私鑰就可以生成簽名sign.
錯誤碼
在調試的過程中,可能出現(xiàn)一些問題. APP端SDK所需參數(shù)均需要從服務器提供(如appid、訂單號...),APP僅需要接受服務器數(shù)據(jù)并傳給SDK即可. 此時會喚起本地的支付寶APP. 但可能出現(xiàn)一些參數(shù)錯誤,會提示不同的錯誤碼(導致支付失敗). 具體對照螞蟻金服FAQ即可解決.
后臺事項
后臺集成SDK只需要參照API文檔封裝必要的參數(shù),非必須的參數(shù)則視需求而定就好. 要注意的是,只需要將SDK生成的請求參數(shù)發(fā)給客戶端就行,不需要對結果再進行一次單獨的編碼(如UIF-8encode). 如果后臺人員對SDK生成的請求參數(shù)再進行一次編碼,那么會導致客戶端SDK請求參數(shù)錯誤,出現(xiàn)一些未知的支付失敗異常.
結語
最后,要說明的是支付失敗的99%原因都是服務器返回的參數(shù)不正確. 可以與后臺聯(lián)調.