一、Paytm移動(dòng)支付
在此之前我接入過PayUmoney,感覺Paytm與PayUmoney還是差不多的。
Paytm的接入指引(iOS端)不得不得讓我吐槽一下,就一個(gè)git的demo,別的什么都沒。關(guān)鍵是這個(gè)demo還不能直接測試支付?。?!
PayUmoney的接入指引(iOS端)還算可以,但是SDK里面的注釋,少得可憐啊?。。?/span>
二、移動(dòng)端(iOS端)接入Paytm
下載demo,將SDK拖入工程就可以了。
靜態(tài)庫+五個(gè).h文件
注意:拖入之后,后續(xù)可能會(huì)有l(wèi)ink的一些報(bào)錯(cuò),請(qǐng)自行百度。
三、代碼實(shí)現(xiàn)
請(qǐng)先認(rèn)真仔細(xì)閱讀官方demo里面的代碼。
請(qǐng)先認(rèn)真仔細(xì)閱讀官方demo里面的代碼。
請(qǐng)先認(rèn)真仔細(xì)閱讀官方demo里面的代碼。
PGMerchantConfiguration,設(shè)置商家信息
PGOrder,設(shè)置訂單
PGTransactionViewController,拉起支付頁面的VC
PGServerEnvironment,檢查支付環(huán)境和狀態(tài)
注意:
1、官方demo里面設(shè)置商家支付證書相關(guān)的可忽略。
demo設(shè)置證書相關(guān)代碼
我感覺這是Paytm自己在“假裝自己很專業(yè)”,最初我也被這個(gè)坑到了。但是最后接好之后,發(fā)現(xiàn)并沒有用到。
2、設(shè)置order的時(shí)候,WEBSITE的值不要用demo里面的,用官方文檔里面的值(APPSTAGING)
四、錯(cuò)誤信息
1、delegate走error方法,輸出error,錯(cuò)誤信息:MissingKeys。
檢查order的parmas,應(yīng)該少了鍵值對(duì),我接入的時(shí)候是少了CALLBACK_URL。
2、You are lost in space。
請(qǐng)跟后端一起查看,他生成CHECKSUMHASH時(shí)傳的值是否跟你在設(shè)置order時(shí)傳的值一樣,dictionary里面的鍵值對(duì)不要多也不要少,保證一致。
3、支付完成,但是訂單狀態(tài)未改變。
在接入的時(shí)候,我們的service端并未接到Paytm的回調(diào)。再次查看文檔之后,發(fā)現(xiàn)他們的接入流程是需要移動(dòng)端(iOS端)告訴自己的service端。。。
我們可以用PGServerEnvironment里面的API+(void)statusForOrderID:(NSString*)orderID responseHandler:(void(^)(NSDictionary*response,NSError*error))handler;檢查訂單的支付狀態(tài),如果支付成功就告訴service端。