支付宝支付的几种实现方式

一.直接 H5方式支付, 用户需要输入账号, 手动返回App, 且有的无返回(需要杀死 App), 也无法拦截添加 , 体验最差, 苹果审核通过率最高
二.白名单方式, h5界面调用支付宝的客户端, 用户手动返回App, 且有的无返回(需要杀死 App), 但是可以拦截添加返回, 体验还好, 苹果审核通过率高
三.h5界面, 调用支付宝的客户端, 需要用到支付宝 SDK, 接入流程简单, 代码简单, 体验很好, 但是苹果机审和人工审核都过不了
四.原生的 App 调用支付宝的客户端, 需要用到支付宝 SDK, 接入流程简单, 代码简单, 体验完美, 但是苹果机审和人工审核都过不了, 体验最流畅的方式(本次未开发)

下面针对前三种实现方式进行总结:

1.后台给的 H5界面, url 传入, webView 加载, 大胆的跑吧, 能走到哪里就走到哪里
2.后台给的 H5界面, url 传入, webView 加载 2.1加入白名单,

LSApplicationQueriesSchemes : alipay

if ([request.URL.absoluteString containsString:@"//mclient.alipay.com/cashier/mobilepay.htm?alipay_exterface_invoke_assign_target"]){

    //返回按钮
    UIWindow *window= [UIApplication sharedApplication].keyWindow;

    _window = window;
    UIImageView *topimageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 80*KPhoneHeightScale)];
    _topimageView = topimageView;
    topimageView.image=[UIImage imageNamed:@"背景"];
    [self.view insertSubview:topimageView atIndex:1];

    UIButton *btn2 = [[UIButton alloc] initWithFrame:CGRectMake(kScreenWidth/2-50*KPhoneWidthScale, 30*KPhoneHeightScale, 100*KPhoneWidthScale, 40*KPhoneHeightScale)];
    [btn2 setTitle:@"返回91好课" forState:UIControlStateNormal];
    [btn2 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    btn2.titleLabel.font = [UIFont systemFontOfSize:16];
    _btn2 = btn2;
    [self.view addSubview:btn2];

    UIButton *failPlaybackbtn = [[UIButton alloc] initWithFrame:CGRectMake(10*KPhoneWidthScale, 35*KPhoneHeightScale, 30*KPhoneWidthScale, 30*KPhoneHeightScale)];
    _failPlaybackbtn = failPlaybackbtn;
    [failPlaybackbtn setImage:[UIImage imageNamed:@"返回"] forState:UIControlStateNormal];
    [self.view addSubview:failPlaybackbtn];
    [failPlaybackbtn addTarget:self action:@selector(failPlaybackbtnAct) forControlEvents:UIControlEventTouchUpInside];

    return YES;
}

AlipaySDK.bundle
AlipaySDK.framework

你可能感兴趣的:(支付宝支付的几种实现方式)