一、前言
-
用过支付宝支付的都知道,支付宝支付有两个回调,一个是wap支付回调,一个是支付宝钱包回调,简单来说就是,一个是有支付宝app的回调,一个是没有安装支付宝的回调
/**
* 处理钱包或者独立快捷app支付跳回商户app携带的支付结果Url
*
* @param resultUrl 支付结果url
* @param completionBlock 支付结果回调
*/
- (void)processOrderWithPaymentResult:(NSURL *)resultUrl
standbyCallback:(CompletionBlock)completionBlock;
/**
* 支付接口
*
* @param orderStr 订单信息
* @param schemeStr 调用支付的app注册在info.plist中的scheme
* @param compltionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
二、问题
-
wap支付回调是在发起支付的方法里面,而支付宝钱包的回调是在AppDelegate里面实现的,那么问题就来了,如果我有支付宝app~我在当前的页面上发起支付,但回调却不在当前页面
三、解决方案
-
使用通知,在appDelegate的支付回调中发起一个通知,然后任意页面监听这个通知就可以处理
- 优点: