IOS集成支付宝所遇到的两个问题

1.当程序调用支付宝/快捷支付客户端后,完成订单或者取消订单后无法回到APP页面。

这个问题比较好解决,首先代码调用支付宝提交订单的方法里有一个Scheme的参数,这个是应用程序的Scheme。我这里是"WeCast.iHouse":

[AlixLibService payOrder:orderString AndScheme:@"WeCast.iHouse" seletor:@selector(paymentResult:) target:self];

并且,在程序的Info.plist的URL Schemes也要写入相同的名称:

这样支付宝在回调时就知道是哪个应用程序打开的,再重定向到这个应用程序。

2.当没有安装支付宝/快捷支付客户端的情况下,如果“取消”下载支付宝客户端,那程序会调用网页的形式进行交付操作。但出现一个致命的bug。就是当点击“返回”按钮时,程序会闪退。

这个问题太怪异了,错误的地方在UIWindow setRootViewController的时候。

我看了一下AppDelegate文件,是这样的:

 WCHomeViewController* homeController = [[WCHomeViewController alloc] init];

    self.window.rootViewController = homeController;

    [homeController release];


解决方案是将homeController声明为属性,所以我改为:

AppDelegate.h:

@property (strong, nonatomic) WCHomeViewController * homeController;

AppDelegate.m:

  _homeController = [[WCHomeViewController alloc] init];

    self.window.rootViewController = _homeController;


OK,这两个问题解决了!

原文地址:https://www.cnblogs.com/jiqiaochun/p/4906429.html