iOS UIWebView web调支付宝客户端进行支付
#import<AlipaySDK/AlipaySDK.h>// 前面要集成支付宝SDK,
AlipaySDK:
/**
* 从h5链接中获取订单串并支付接口(自版本15.4.0起,推荐使用该接口)
*
* @param urlStr 拦截的 url string
*
* @return YES为成功获取订单信息并发起支付流程;NO为无法获取订单信息,输入url是普通url
*/
- (BOOL)payInterceptorWithUrl:(NSString*)urlStr
fromScheme:(NSString*)schemeStr
callback:(CompletionBlock)completionBlock;
代码:
/**
* web 请求
*/
- (void)requestUrl:(NSString*)url {
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
}
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
OMGLog(@"拦截url==%@", [request.URL absoluteString]);
__weak PayViewController * wself = self;
BOOL isIntercepted = [[AlipaySDK defaultService] payInterceptorWithUrl:[request.URL absoluteString] fromScheme:@"XX" callback:^(NSDictionary *result) {//XX表示你自己的APP的标志在scheme设置下
// 处理支付结果
OMGLog(@"处理支付结果==%@", result);
// isProcessUrlPay 代表 支付宝已经处理该URL
if([result[@"isProcessUrlPay"]boolValue]) {
// returnUrl 代表 第三方App需要跳转的成功页URL
NSString* urlStr = result[@"returnUrl"];
OMGLog(@"%@",urlStr);
[wselfrequestUrl:urlStr];
}
}];
if(isIntercepted) {
returnNO;
}
return YES;
}