一提起支付,很多人都會以為是一件很高大上的技能,逼格瞬間就提升了幾個檔次。下面為大家推薦一款支付的SDK,瞬間解決iOS各種平臺上支付的問題,且簡單易用。因為Ping++官網上面的介紹不夠完善,集成過程中可能會遇到很多坑,所以整理了下,希望能對大家有所幫助。
安裝
Ping++如果使用 CocoaPods導入,那么直接pod 'Pingpp', '~> 2.1.0'
即可。手動導入請看下文:
1.在github相應地址下載Ping++SDK
2.導入所需文件(微信,支付寶,銀聯只需要導入以上幾個文件夾即可,其他的刪掉。另外,Ping++里面有一個SDWebImage,不需要刪掉即可)
3.分別導入微信,支付寶,銀聯所需依賴庫(本文尚不介紹百度錢包支付)
必需:
CFNetwork.framework
SystemConfiguration.framework
Security.framework
libc++.dylib
libz.dylib
libsqlite3.0.dylib
4.添加 URL Schemes:在 Xcode 中,選擇你的工程設置項,選中 TARGETS 一欄,在 Info 標簽欄的 URL Types 添加 URL Schemes,如果使用微信,填入微信平臺上注冊的應用程序 id(為 wx 開頭的字符串),如果不使用微信,則自定義,建議起名稍復雜一些,盡量避免與其他程序沖突。允許英文字母和數字,首字母必須是英文字母,不允許特殊字符。
5.添加 Other Linker Flags:在 Build Settings 搜索 Other Linker Flags,添加
-ObjC
。附:如果Other Linker Flags不能添加
-ObjC
,則按一下方法導入
接入支付
后臺集成Ping++成功之后,會給前端一個接口,調用此接口就會返回charge 對象,然后根據此方法就可以調用支付控件進行支付
[Pingpp createPayment:charge
viewController:viewController
appURLScheme:kUrlScheme
withCompletion:^(NSString *result, PingppError *error) {
if ([result isEqualToString:@"success"]) {
// 支付成功
} else {
// 支付失敗或取消
NSLog(@"Error: code=%lu msg=%@", error.code, [error getMsg]);
}
}];
關于渠道
關于iOS9系統,需要注意的一些事項
1.針對 iOS 9 系統更新, 為了使你接入的微信支付與支付寶支付兼容 iOS 9 ,請按照以下引導進行操作: 應用需要在 Info.plist 中將要使用的 URL Schemes 列為白名單,才可正常檢查其他應用是否安裝。受此影響,當你使用 Xcode 7 及 iOS 9 編譯發布新版本 App,并且用到了判斷是否安裝相應的 App (支付寶錢包、微信)的接口時,需要在 Info.plist 里添加如下代碼:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>wechat</string>
<string>alipay</string>
</array>
2.針對 iOS 9 限制 http 協議的訪問,如果 App 需要訪問 http://, 則需要在 Info.plist 添加如下代碼:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
3.針對使用 Xcode 7 編譯失敗,遇到錯誤信息為:
XXXXXXX does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target.
請到 Xcode 項目的 Build Settings 標簽頁搜索 bitcode,將 Enable Bitcode 設置為 NO 即可。
附:如果使用過程當中還有其他問題,可以進入Ping++幫助中心,同時歡迎留言與我交流。
因有所獲,故筆而記之,分享之。