iOS开发 国外支付 Braintree 相关集成

前言:APP更新迭代问题,对接国外支付。毕竟国外不像咱们天朝有支付宝,微信这么方便普及的工具。
今天我们来集成一下Braintree这个Paypal旗下的服务,Paypal相当于咱天朝的支付宝。它的SDK适用 Java, Android,iOS等等服务端以及客户端。文章主要谈谈iOS端的集成。

申请账号

这个是公司领导注册的,香港的公司。听说国内的账号不能用或者限制很多

Braintree 工作流程原理

Braintree支付流程.png

移动端其实很简单。进入支付页面像服务器发送一个请求,服务器给你返回client token 我们拿着这个client token 去像braintree拿支付的随机数. 这个随机数返回给后台 后台拿着这个支付随机数付款 然后告诉我们。具体实现代码下方有贴出来。

客户端集成

官方文档其实很详细了,这里把步骤在列一下.客户端集成我们依赖cocoaPods 首先根据需求,你的支付方式有多种选择。这里我们只是先做了信用卡和paypal。其实还有很多,还有Venmo,像苹果还有Apple Pay.
Podfile文件

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

这里只集成了3种。

注意
image.png

这里如果使用了最新官方的Drop-in的UI,iOS版本要从iOS9开始了。

paypal

因为涉及到H5页面支付或者应用跳转,需要设注册一个URL类型
1.在Xcode中,在Project Navigator中点击您的项目,然后导航到App Target > Info > URL Types
2.点击[+]添加新的URL类型
3.在URL Schemes下,输入您的应用切换返回URL方案。该方案必须以您的应用程序的Bundle ID开始,并致力于Braintree应用程序切换返回。例如,如果应用程序包ID是com.your-company.Your-App,那么您的URL方案可能是com.your-company.Your-App.payments。


URL Types

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

设置好了之后 在AppDelegate导入

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

之后再在AppDelegate中的application:didFinishLaunchingWithOptions:实现,使用setReturnURLScheme:与您在上面设置的值

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

然后在您的应用程序委托中,将支付授权URL传递给Braintree进行最终确认:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary *)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;
}

你可能感兴趣的:(iOS开发 国外支付 Braintree 相关集成)