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<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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,038评论 3 119
  • 完美的做法则是,任凭你如何攻击,我都无条件地爱你,那样你可能会在一瞬间放下所有的防御。 我们几乎总是将被爱的希望放...
    新月饭店大小姐阅读 1,618评论 0 0
  • 昨天检查了女儿的家庭作业,错了一些题目,我当时特别生气,一边教她一边凶她,女儿吓得直哆嗦,颤颤惊惊地边改作业边用眼...
    梁小翠阅读 4,417评论 0 0
  • 一.知识点:1.执行力2.企业管理活动的四项原则3.现场管理的十大内容4.基层管理者的三大职责5.班组长必须具备的...
    戏说乾隆阅读 1,579评论 0 0
  • 在这个注定无法成眠的晚上,午夜两点的医院里,人们还都睁着疲惫的眼睛,弟妹也慢慢进去了沉睡,我的小宝贝也在甜甜的梦乡...
    慕杨安溪阅读 1,937评论 0 0