您的位置:首页 > 移动开发 > IOS开发

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

2014-01-16 14:34 323 查看
今天接手一个外包项目,里面集成了支付宝付费功能,但是存在两个问题。

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,这两个问题解决了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息