h5支付不能打开支付宝 ios_ios端集成支付宝的手机网站支付转APP支付,无法调起H5...

本人最近在对接支付宝 SDK 实现移动支付功能。从官网下了最新的DEMO,配置好参数以后,运行正常。然后按照教程一步步集成到自己的项目中去,该注意的也都注意了,编译OK。因手机已经安装了支付宝客户端,因此需要在Appdelegate 中获取同步结果,代码如下(Swift):

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {

if (url.host! as String) == "safepay" {

// 支付跳转支付宝钱包进行支付,处理支付结果

AlipaySDK.defaultService().processOrderWithPaymentResult(url, standbyCallback: { (resultDic) in

print("result = \(resultDic)")

})

}

return true

}

// NOTE: 9.0以后使用新API接口

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {

if (url.host! as String) == "safepay" {

// 支付跳转支付宝钱包进行支付,处理支付结果

AlipaySDK.defaultService().processOrderWithPaymentResult(url, standbyCallback: { (resultDic: [NSObject : AnyObject]!) in

print("result = \(resultDic)")

})

}

return true

}

真机运行后,跳转到支付宝支付成功,再跳回到自己的 App 时,控制台能够打印出同步结果(状态是9000支付成功的),但程序直接 crash,停在 AlipaySDK.defaultService().processOrderWithPaymentResult 方法中,控制台就显示(lldb)。

随后我尝试将 AlipaySDK.defaultService().processOrderWithPaymentResult 方法屏蔽掉,运行就正常了,不会崩溃。我又在另外一台真机上测试,因这台真机没有安装支付宝客户端,所以在H5中完成支付后会在:

AlipaySDK.defaultService().payUrlOrder(orderString as String, fromScheme: appScheme, callback: { (resultDic) in

print(resultDic)

})

方法中获取同步结果,但这次控制台没有打印同步结果,直接 crash。

这说明只要我一调用获取同步结果的方法就会 crash。无奈我又新建一个测试的 Swift 项目,同样的方法集成支付宝 SDK,一样的代码,结果发现运行正常,压根不会有之前的崩溃现象!我怀疑会不会是和别的第三方库发生冲突了,但是之前也遇到过两个三方库冲突,一般都是重定义的问题,编译也不会通过。

实在找不出问题在哪,求这里的大大们有没有遇到过我这个问题,跪谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值