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

来源:互联网 发布:新东方烹饪 知乎 编辑:程序博客网 时间:2024/05/18 03:20

今天接手一个外包项目,里面集成了支付宝付费功能,但是存在两个问题。

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

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

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


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

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


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


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

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

 WCHomeViewController* homeController = [[WCHomeViewControlleralloc] init];

   self.window.rootViewController = homeController;

    [homeControllerrelease];


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

AppDelegate.h:

@property (strong,nonatomic) WCHomeViewController * homeController;

AppDelegate.m:

  _homeController = [[WCHomeViewController allocinit];

    self.window.rootViewController = _homeController;



OK,这两个问题解决了!


0 0
原创粉丝点击