iOS 集成Ping++支付,繞過(guò)一些坑

前言

這一段時(shí)間比較忙作儿,主要公司的產(chǎn)品需要重構(gòu)與加多一個(gè)貨幣支付系統(tǒng)洛二。說(shuō)到移動(dòng)端的支付,自然會(huì)牽扯到支付這一塊攻锰。支付這一塊主流的目前就微信晾嘶、支付寶、銀聯(lián)娶吞。做過(guò)這些SDK集成的開(kāi)發(fā)者都知道垒迂,集成相對(duì)復(fù)雜,而且要花大量的時(shí)間去閱讀他們提供的開(kāi)發(fā)文檔妒蛇,不過(guò)還好現(xiàn)在有很多開(kāi)發(fā)者都分享了他們的集成心得机断,使這件事越發(fā)簡(jiǎn)單,比如:iOS支付[支付寶绣夺、銀聯(lián)吏奸、微信]10分鐘搞定支付寶和微信支付 的 各種填坑等等陶耍,但是呢奋蔚,其實(shí)還有更加簡(jiǎn)單的,Ping++

Ping++能干嘛烈钞?

Ping++ 是為移動(dòng)端應(yīng)用以及 PC 網(wǎng)頁(yè)量身打造的下一代支付系統(tǒng)泊碑,通過(guò)一個(gè) SDK 便可以同時(shí)支持移動(dòng)端以及 PC 端網(wǎng)頁(yè)的多種主流支付渠道,你只需要一次接入即可完成多個(gè)渠道的接入棵磷。 Ping++ SDK 包括 Client SDK 和 Server SDK 兩部分蛾狗,支持主流的七種后端開(kāi)發(fā)語(yǔ)言,適配了 Android仪媒,iOS 和 HTML5 三種移動(dòng)端平臺(tái)以及 PC 端網(wǎng)頁(yè)。ps:官方原話谢鹊。

說(shuō)說(shuō)我的理解:
我覺(jué)得最方便的是算吩,不需要移動(dòng)端填寫各種appkey,各種秘鑰佃扼,像支付寶支付有秘鑰特別麻煩偎巢,這一些繁瑣的事情Ping++都幫你做了,你只要把這些申請(qǐng)下來(lái)的key保存在Ping++的配置信息系統(tǒng)就可以了兼耀。還要申請(qǐng)開(kāi)通一些權(quán)限压昼,不過(guò)這些操作都是我老大弄的求冷,不過(guò)很方便就是了。
還有就是一行代碼就可以調(diào)起各種支付這個(gè)對(duì)做過(guò)各種原生支付SDK的我窍霞,感覺(jué)很清爽匠题,貼下代碼,感受下:

 [Pingpp createPayment:charge
                   viewController:weakSelf
                     appURLScheme:kUrlScheme
                   withCompletion:^(NSString *result, PingppError *error) {
                     NSLog(@"completion block: %@", result);
                     if (error == nil) {
                       NSLog(@"PingppError is nil");
                     } else {
                       NSLog(@"PingppError: code=%lu msg=%@",
                             (unsigned long)error.code, [error getMsg]);
                     }
                     [weakSelf showAlertMessage:result];
                   }];

使用方法:

1但金、使用 CocoaPods
在 Podfile 添加:

pod 'Pingpp', '~> 2.2.6'

2韭山、手動(dòng)引入
下載 iOS SDK 到本地,里面包含 lib 和 example 兩個(gè)目錄冷溃。example 目錄下的是示例項(xiàng)目钱磅,你需要將 lib 目錄下的文件添加到你的項(xiàng)目。
具體可以看Ping++的iOS SDK 接入指南似枕。

說(shuō)說(shuō)我遇到的坑:

首先說(shuō)下微信支付的SDK再Ping++的Channels是顯示Mmdpay的盖淡,剛開(kāi)始害我找半天...有點(diǎn)夸張哈


我這里由于暫時(shí)只用到這兩種支付,所以我把其它的都刪除掉了凿歼,現(xiàn)在app都提倡瘦身嘛禁舷。

還有一點(diǎn):
為了能正確獲得結(jié)果回調(diào)請(qǐng)?jiān)诠こ?AppDelegate 文件中調(diào)用[Pingpp handleOpenURL:url withCompletion:nil]
如果該方法的第二個(gè)參數(shù)傳 nil毅往,請(qǐng)?jiān)谠?createPayment 方法的 Completion 中處理回調(diào)結(jié)果牵咙。否則,在這里處理結(jié)果攀唯。
如果你使用了微信分享洁桌、登錄等一些看起來(lái)在這里“沖突”的模塊,你可以先判斷 url 的 host 來(lái)決定調(diào)用哪一方的方法侯嘀。
也可以先調(diào)用 Ping++ 的方法另凌,如果 return 的值為 false,表示這個(gè) url 不是支付相關(guān)的戒幔,你再調(diào)用模塊的方法吠谢。
貼上我解決這個(gè)問(wèn)題的代碼:

// iOS 8 及以下請(qǐng)用這個(gè)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    BOOL isPay = [Pingpp handleOpenURL:url withCompletion:nil];
    if(isPay){
        return isPay;
    }else{
        return  [UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];
    } 
}

這里值得注意一下,每次調(diào)用[Pingpp handleOpenURL:url withCompletion:nil]就會(huì)執(zhí)行一次[Pingpp createPayment:(NSObject *) appURLScheme:<#(NSString *)#> withCompletion:<#^(NSString *result, PingppError *error)completion#>]方法里的回調(diào)诗茎。
大概就是這一些了工坊,后續(xù)可能還會(huì)繼續(xù)添加更多的支付功能,如果遇到坑敢订,我還會(huì)繼續(xù)更新此文章王污。

參考文章

iOS SDK 接入指南
iOS應(yīng)用之 "Ping++" 支付集成
Ping++ SDK,引入iOS配置說(shuō)明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末楚午,一起剝皮案震驚了整個(gè)濱河市昭齐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矾柜,老刑警劉巖阱驾,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件就谜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡里覆,警方通過(guò)查閱死者的電腦和手機(jī)丧荐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)租谈,“玉大人篮奄,你說(shuō)我怎么就攤上這事「钊ィ” “怎么了窟却?”我有些...
    開(kāi)封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)呻逆。 經(jīng)常有香客問(wèn)我夸赫,道長(zhǎng),這世上最難降的妖魔是什么咖城? 我笑而不...
    開(kāi)封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任茬腿,我火速辦了婚禮,結(jié)果婚禮上宜雀,老公的妹妹穿的比我還像新娘切平。我一直安慰自己,他們只是感情好辐董,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布悴品。 她就那樣靜靜地躺著,像睡著了一般简烘。 火紅的嫁衣襯著肌膚如雪苔严。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天孤澎,我揣著相機(jī)與錄音届氢,去河邊找鬼。 笑死覆旭,一個(gè)胖子當(dāng)著我的面吹牛退子,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姐扮,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼絮供,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了茶敏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缚俏,失蹤者是張志新(化名)和其女友劉穎惊搏,沒(méi)想到半個(gè)月后贮乳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恬惯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年向拆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酪耳。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浓恳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碗暗,到底是詐尸還是另有隱情颈将,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布言疗,位于F島的核電站晴圾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏噪奄。R本人自食惡果不足惜死姚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勤篮。 院中可真熱鬧都毒,春花似錦、人聲如沸碰缔。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)手负。三九已至涤垫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竟终,已是汗流浹背蝠猬。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留统捶,地道東北人榆芦。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像喘鸟,于是被迫代替她去往敵國(guó)和親匆绣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容