美文网首页
Stripe集成 iOS 端

Stripe集成 iOS 端

作者: 好多余先生丶 | 来源:发表于2019-03-28 18:07 被阅读0次
    Stripe集成 iOS 端

    因为项目中有遇到需要针对海外用户集成银行卡支付功能,经过考虑选择了Stripe。官方文档地址:https://stripe.com/docs/mobile

    因为是海外的,所以文档暂时没有中文的,可以下载demo看代码理解。下面仅给出吊起SDK界面的案例,后面如有需求更改成自己的界面,在做相关介绍。

    /*
    这里是吊起银行卡列表的界面,可以有选择,添加,编辑删除等选项,因为是原生SDK界面,所有的操作也都SDK内部实现
    */
    STPPaymentConfiguration *config = [STPPaymentConfiguration sharedConfiguration];
    config.additionalPaymentMethods = STPPaymentMethodTypeNone;     //支持的卡支付类型(银行卡或者Apple Pay等)
    config.requiredBillingAddressFields = STPBillingAddressFieldsNone;//账单地址等内容
          
    /*
    这里就是比较重要的一步,需要和后端配合。StripeAPIClient是我自己创建的一个类,需要遵循<STPEphemeralKeyProvider>协议,详见StripeAPIClient.m文件
    
    init方法可以忽略,自己定义就好,因为后台需要知道当前用户的ID,才能创建一个秘钥
    */
    StripeAPIClient *manager = [StripeAPIClient sharedAPIClientWithMemberId:memberId
                                                                            token:token];
    STPCustomerContext *customerContext = [[STPCustomerContext alloc] initWithKeyProvider:manager];
          
    /*
    设置下代理就可以监听方法了,具体代理方法可以查看<STPPaymentMethodsViewControllerDelegate>
    */
    STPPaymentMethodsViewController *viewController = [[STPPaymentMethodsViewController alloc] initWithConfiguration:config theme:STPTheme.defaultTheme customerContext:customerContext delegate:self];
    
    //下面是跳转方法,可以忽略
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
    [self presentViewController:nav animated:YES completion:nil];
    
    //  StripeAPIClient.m
    //  Stripe
    //  用于获取用户密令
    //
    //  Created by yuyang on 2019/3/6.
    //
    
    #import "StripeAPIClient.h"
    #import <Stripe/Stripe.h>
    
    static StripeAPIClient *_manager = nil;
    
    @interface StripeAPIClient()
    
    @property (nonatomic, copy) NSString *memberId;
    @property (nonatomic, copy) NSString *token;
    
    @end
    
    @implementation StripeAPIClient
    
    + (instancetype)sharedAPIClientWithMemberId:(NSString *)member token:(NSString *)token {
      if (!_manager) {
        _manager = [[StripeAPIClient alloc] init];
        _manager.memberId = member;
        _manager.token = token;
      }
      return _manager;
    }
    
    - (void)createCustomerKeyWithAPIVersion:(NSString *)apiVersion completion:(STPJSONResponseCompletionBlock)completion{
      
      /*发起网络请求,拿到后端返给你的信息直接  completion(json,nil);就可以了
        主要后台返回的json格式,因为Stripe只接收json格式,如果遇到不成功,就检查下
      */
    }
    
    @end
    
    

    也没有什么东西,主要就是官方给的Demo不够明确,有什么问题再讨论,代码放在https://github.com/YuStephen/Stripe-Manager

    相关文章

      网友评论

          本文标题:Stripe集成 iOS 端

          本文链接:https://www.haomeiwen.com/subject/heucbqtx.html