iOS開發(fā) 國外支付 Braintree 相關(guān)集成

前言:APP更新迭代問題,對接國外支付。畢竟國外不像咱們天朝有支付寶,微信這么方便普及的工具。
今天我們來集成一下Braintree這個Paypal旗下的服務(wù),Paypal相當(dāng)于咱天朝的支付寶。它的SDK適用 Java, Android,iOS等等服務(wù)端以及客戶端。文章主要談?wù)刬OS端的集成。

申請賬號

這個是公司領(lǐng)導(dǎo)注冊的,香港的公司。聽說國內(nèi)的賬號不能用或者限制很多

Braintree 工作流程原理

Braintree支付流程.png

移動端其實很簡單。進入支付頁面像服務(wù)器發(fā)送一個請求,服務(wù)器給你返回client token 我們拿著這個client token 去像braintree拿支付的隨機數(shù). 這個隨機數(shù)返回給后臺 后臺拿著這個支付隨機數(shù)付款 然后告訴我們。具體實現(xiàn)代碼下方有貼出來。

客戶端集成

官方文檔其實很詳細了,這里把步驟在列一下.客戶端集成我們依賴cocoaPods 首先根據(jù)需求,你的支付方式有多種選擇。這里我們只是先做了信用卡和paypal。其實還有很多,還有Venmo,像蘋果還有Apple Pay.
Podfile文件

#國外支付
pod 'BraintreeDropIn'
pod 'Braintree/PayPal'
pod 'Braintree/Apple-Pay'

這里只集成了3種。

注意
image.png

這里如果使用了最新官方的Drop-in的UI,iOS版本要從iOS9開始了。

paypal

因為涉及到H5頁面支付或者應(yīng)用跳轉(zhuǎn),需要設(shè)注冊一個URL類型
1.在Xcode中,在Project Navigator中點擊您的項目,然后導(dǎo)航到App Target > Info > URL Types
2.點擊[+]添加新的URL類型
3.在URL Schemes下,輸入您的應(yīng)用切換返回URL方案。該方案必須以您的應(yīng)用程序的Bundle ID開始,并致力于Braintree應(yīng)用程序切換返回。例如,如果應(yīng)用程序包ID是com.your-company.Your-App,那么您的URL方案可能是com.your-company.Your-App.payments。


URL Types

比如在我項目中 .payments前面就是我項目的Bundle ID

設(shè)置好了之后 在AppDelegate導(dǎo)入

#import "BraintreeCore.h" //國外支付

之后再在AppDelegate中的application:didFinishLaunchingWithOptions:實現(xiàn),使用setReturnURLScheme:與您在上面設(shè)置的值

[BTAppSwitch setReturnURLScheme:@"DiDaWatchEBiaoPing-en.com.payments"];

然后在您的應(yīng)用程序委托中,將支付授權(quán)URL傳遞給Braintree進行最終確認:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    if ([url.scheme localizedCaseInsensitiveCompare:@"com.your-company.Your-App.payments"] == NSOrderedSame) {
        return [BTAppSwitch handleOpenURL:url options:options];
    }
    return NO;
}

// If you support iOS 7 or 8, add the following method.
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    if ([url.scheme localizedCaseInsensitiveCompare:@"com.your-company.Your-App.payments"] == NSOrderedSame) {
        return [BTAppSwitch handleOpenURL:url sourceApplication:sourceApplication];
    }
    return NO;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,203評論 3 119
  • 完美的做法則是,任憑你如何攻擊,我都無條件地愛你,那樣你可能會在一瞬間放下所有的防御。 我們幾乎總是將被愛的希望放...
    新月飯店大小姐閱讀 258評論 0 0
  • 昨天檢查了女兒的家庭作業(yè),錯了一些題目,我當(dāng)時特別生氣,一邊教她一邊兇她,女兒嚇得直哆嗦,顫顫驚驚地邊改作業(yè)邊用眼...
    梁小翠閱讀 960評論 0 0
  • 一.知識點:1.執(zhí)行力2.企業(yè)管理活動的四項原則3.現(xiàn)場管理的十大內(nèi)容4.基層管理者的三大職責(zé)5.班組長必須具備的...
    戲說乾隆閱讀 256評論 0 0
  • 在這個注定無法成眠的晚上,午夜兩點的醫(yī)院里,人們還都睜著疲憊的眼睛,弟妹也慢慢進去了沉睡,我的小寶貝也在甜甜的夢鄉(xiāng)...
    慕楊安溪閱讀 323評論 0 0

友情鏈接更多精彩內(nèi)容